QA/Automation/Projects/WebAPI
Contents
Overview
As an essential part of Boot2Gecko (Mozilla Firefox OS), the WebAPIs provide access to the device OS, thus allowing html applications to use mobile phone features. For example, a B2G html application can send SMS messages via javascript using the WebSMS WebAPI.
In order to ensure the functionality of the WebAPIs, an extensive WebAPI test suite must be developed. Both the Mochitest and Marionette automation frameworks will be used in the development and execution of the WebAPI tests, which ultimately will be executed on the B2G device emulator on a per-check-in basis.
Name: | WebAPI tests |
Leads: | Rob Wood, Henrik Skupin, Dave Hunt |
Contributors: | n/a |
Repository: | http://mxr.mozilla.org/mozilla-central/source/dom/ |
API specs: | https://wiki.mozilla.org/WebAPI#APIs |
Etherpad: | https://etherpad.mozilla.org/automation-webapi |
Sub Projects
Priority | Feature | Status | Owner | QA testplan |
P1 | WebTelephony | Active | Rob Wood | B2G/QA/WebAPI_Test_Plan/WebTelephony |
P1 | WebSMS | Active | Rob Wood | B2G/QA/WebAPI_Test_Plan/WebSMS |
P1 | Screen Orientation | Active | Henrik Skupin | B2G/QA/WebAPI_Test_Plan/Screen_Orientation |
P1 | Battery Status | No started | TBD | B2G/QA/WebAPI_Test_Plan/Battery_Status |
Tasks
For each of the WebAPIs that are testable on the B2G device emulator:
- Review the implementation details
- Review existing tests
- Identify new test cases to be developed, in order to ensure full API test coverage
- When reviewing existing mochitests, determine if additional test coverage can be achieved by adding marionette tests that access emulator features
- Develop new tests using the appropriate automation framework:
- Default to using mochitest; unless:
- If direct access to the B2G device emulator 'hardware' commands is required, use the marionette framework.
Details
For more information about the B2G WebAPI, building B2G, running the tests, etc. please see the links mentioned below.
Specifications and Architecture
General Firefox OS announcement: http://www.mozilla.org/en-US/firefoxos/
Firefox OS on MDN: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS
B2G Wiki: https://wiki.mozilla.org/B2G
B2G architecture overview: https://wiki.mozilla.org/B2G/Architecture
Details and specifications for the WebAPIs planned for B2G V1: https://wiki.mozilla.org/Webapi
Building B2G
Building and installing B2G: https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko
Running the WebAPI Tests
Using the B2G device emulator: https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators
Mochitest overview: https://developer.mozilla.org/en-US/docs/Mochitest
B2G Mochitest: https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/B2G_Mochitests
Marionette overview: https://developer.mozilla.org/en-US/docs/Marionette
B2G Marionette: https://developer.mozilla.org/en-US/docs/Mozilla/Boot_to_Gecko/Setting_Up_Marionette_for_B2G
Running B2G Marionette tests: https://developer.mozilla.org/en-US/docs/Marionette/Running_Tests
Marionette Command Line
You may want to create a shell script to quickly launch your WebAPI Marionette test right from your workspace folder. Create a new shell script and copy/paste the line of code below, and put the script in your path. Then with the emulator already running, you can use the script to easily execute your WebAPI test.
python $B2G_HOME/gecko/testing/marionette/client/marionette/runtests.py --emulator arm --address localhost:2828 --homedir $B2G_HOME $1
Emulator (Android Console) Commands
Emulator commands: http://developer.android.com/tools/devices/emulator.html
General emulator info: http://developer.android.com/tools/help/emulator.html