Gaia is Mozilla's Phone UX for the Boot to Gecko (B2G) project.
Boot to Gecko aims to create a complete, standalone operating system for the open web.
You can read more about B2G here:
follow us on twitter: @Boot2Gecko
join the Gaia mailing list:
and talk to us on IRC:
#gaia on irc.mozilla.org
The Gaia/Hacking page on MDN has all the information that you need to start working on Gaia, including building and running Gaia on a compatible device or desktop computer.
Unit tests for an app go in apps/<APP>/test/unit/
.
To run all the unit tests with B2G Desktop:
-
Run
DEBUG=1 make
-
Run
make test-agent-server &
-
Run B2G Desktop and open the Test Agent app
-
Run
make test-agent-test
or
make test-agent-test APP=<APP>
to run unit tests for a specific app
More importantly, you can use test-agent-server to watch the files on the filesystem and execute relevant tests when they change:
- Run
DEBUG=1 make
- Run
make test-agent-server &
- Run B2G Desktop and open the Test Agent app
- Edit files and when you save them, glance at the console with test-agent-server running
Note: If you add new files, you will need to restart test-agent-server.
As a convenience, you can also use the gaia-test
script to launch the
test-agent-server and open the Test Agent app in firefox:
- Add firefox to your
$PATH
or set$FIREFOX
to your preferred firefox/aurora/nightly binary. - Run
./bin/gaia-test
to run the test-agent-server and launch firefox. - Run
make test-agent-test
or modify files as described above.
For more details on writing tests, see: https://developer.mozilla.org/en/Mozilla/Boot_to_Gecko/Gaia_Unit_Tests
Integration tests for an app are located in
apps/<APP>/test/integration/
.
Prerequisites:
- adb
- FirefoxOS Device / Emulator / B2G Desktop
To run integration tests:
-
In your gaia/ directory, run
make
to build the profile -
Run B2G Desktop
or forward port 2828 from your device / emulator using
adb forward tcp:2828 tcp:2828
-
Run
make test-integration
from the gaia/ directoryor
make test-integration APP=<APP>
to run unit tests for a specified appor
make test-integration TESTS=<PATH/TO/TESTFILE.js>
to run unit tests in a specific fileor
make test-integration REPORTER=<REPORTER>
to run integration tests with the specified reporter, for exampleXUnit
or
make test-integration TESTVARS=<PATH/TO/TESTVARS.json>
to run tests with variables in the testvars file (this defaults to testvars.json)
Note: If you're using a FirefoxOS Device, it must have been flashed
with a build with marionette enabled. If it doesn't have marionette
enabled, then running make test-integration
will time out.
The testvars file is a JSON file that maps app names to objects holding key/values as required by that app's integration tests. See that app's integration test code and/or README for which key/values are required.