Is there a tool for helping to automate integration tests for Gnome Shell extensions?
In web development, it's common to use tools like Selenium to simulate a human interaction by programmatically interacting with a web browser and confirming functionality.
Is there anything similar for scripting interactions in Gnome and Gnome Shell?
I maintain an open source Gnome Shell extension, where most of the functionality is in the form of GUI elements exposed in the panel. Unfortunately, it's common for user-submitted bug fixes to contain regressions. A major pain point are new Gnome releases, which are frequent and often contain backwards incompatible changes whose effects can be subtle.
I currently have some minimal automated testing to confirm the installation process works, but it doesn't catch many feature bugs. All real testing has to be done manually, which is very tedious and time consuming, even though the nature of the tests isn't complicated. It's also difficult to test a new version of Gnome, as that requires installing it system wide, which often isn't practical.
To speed up development and reduce the workload of myself and other volunteer testers, I'd like to write some automated tests in something like Docker that install the extension in a specific version of Gnome, restart Gnome Shell, confirm the GUI elements are present, click a button, confirm a preference dialog appears, etc.
Is this possible?