The Test Agent


I’ve been looking at what would be needed to get Gaia unit testing operational again, which has lead me to the Test Agent codebase (currently not functional). I’ve had some success getting the agent to start up and display a list of tests from the config.json file, but actually running the tests requires something called the MultiDomainDriver (just called Driver in that link), which I think is creating iframes with dummy sub-domains in order to sandbox the JS code.

Is anyone who is familiar with the Test Agent able to help me understand this sandboxing process, and advise on whether something equivalent can be accomplished using chrome:// instead, given that there are no domains there (are there)?

I would also like to know what those in the know believe is the best way to test those apps that end up becoming plain webapps. Should they be tested in the same way as browser chrome, or should we test them separately? Related to this is the question of whether those gaia apps that become ordinary webapps should continue to live in the gaia repo or not …


1 Like

As I understand it a DEBUG build is used by the test agent and runs Gaia content over a local HTTP server. This will no longer work because Gaia’s system UI has become chrome:// rather than http:// - which is why the unit tests don’t work any more.

We need an alternative solution for unit tests, preferably using one of the existing solutions used by Firefox. I know Jamie/@charja13 has been looking into this but discovered lots of dependencies on Marionette.

Thanks for the info - so basically you are saying that the Test Agent should be replaced?

As for Marionette, is it no longer considered a good way to run tests, or is it not suitable for chrome:// testing?

ALL test agents are dependant upon marionette. Currently I’ve been uber busy, I haven’t made much progress. Currently I’m looking into it too see if we can get it back working and get it compatible with chrome. I’m gonna reach out to the selenium people and see if they know if it’s compatible. If so the best option will be too fix marionette seeing as if we don’t we have to implement a whole new texting harness.