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.
Autolander is a bot which integrations github and bugzilla workflows. Opt-into new features by adding +autolander to your pull request title.
Features available:
- Automatic pull request to bugzilla attachment linking.
- Automatic landing, on green integration run, with a R+ from a suggested reviewer and checkin-needed keyword.
- Comments in the bug with the landed commit, and marks the bug as fixed.
- Validates pull request title and commit message formats.
- Currently only runs a subset of the gaia CI tests which are stable on taskcluster. Ensure you have a green gaia-try run before adding checkin-needed.
- See more at: https://github.com/mozilla/autolander
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
Gaia uses marionette-js-runner to run the tests with a custom builder for gaia. Tests should live with the rest of your apps code (in apps/my_app/test/marionette) and test files should end in _test.js.
All integration tests run under a node environment. You need node >= 0.10 for this to work predictably.
Shared code for tests lives under shared/test/integration.
NOTE: unless your tests end in _test.js they will not be
automatically picked up by make test-integration
.
make test-integration
make test-integration TEST_FILES=<test>
For example, we could run the day_view_test.js
test in calendar app with the below command.
make test-integration TEST_FILES=apps/calendar/test/marionette/day_view_test.js
If you would like to run more than one test, we could do the below command.
make test-integration TEST_FILES="apps/calendar/test/marionette/day_view_test.js apps/calendar/test/marionette/today_test.js"
make test-integration APP=<APP>
For example, we could run all tests for the calendar app with make test-integration APP=calendar
.
make test-integration SKIP_TEST_FILES=<test>
For example, we could skip the day_view_test.js
test in calendar app with the below command.
make test-integration SKIP_TEST_FILES=apps/calendar/test/marionette/day_view_test.js
If you would like to skip more than one test, we could do the below command.
make test-integration SKIP_TEST_FILES="apps/calendar/test/marionette/day_view_test.js apps/calendar/test/marionette/today_test.js"
Notice that we could not use the TEST_FILES
and SKIP_TEST_FILES
parameters at the same time.
If you wish to run many tests in background you might not want to be disturbed by the b2g-desktop window popping everytime, or the sound. One solution for the first issue is to use Xvfb:
xvfb-run make test-integration
If you are using PulseAudio and want to keep the tests quied, then just force an invalid server:
PULSE_SERVER=":" make test-integration
You can of course combine both:
PULSE_SERVER=":" xvfb-run make test-integration
if you would like to run tests without building profile, use make test-integration-test
:
PROFILE_FOLDER=profile-test make # generate profile directory in first time
make test-integration-test
To view log out from a test
make test-integration VERBOSE=1
To run tests in OOP mode
make test-integration OOP=1