B2G/QA/WebAPI Test Plan/Geolocation: Difference between revisions
< B2G | QA | WebAPI Test Plan
Jump to navigation
Jump to search
(12 intermediate revisions by the same user not shown) | |||
Line 32: | Line 32: | ||
== Strategy == | == Strategy == | ||
* There are already mochitests for the Geolocation API here: http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/ | * There are already mochitests for the Geolocation API here: http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/ | ||
* A test app should be created to verify the API on-device. | * A test app should be created to verify the API on-device. | ||
Line 42: | Line 41: | ||
** Full screen | ** Full screen | ||
** Private browsing mode | ** Private browsing mode | ||
** related prefs: | ** related prefs: geolocation.enabled, geo.enabled , browser.geolocation.warning.infoURL , geo.wifi.uri , geo.wifi.access_token. , geo.gps.apn.name , geo.gps.apn.user , geo.gps.apn.password , geo.default.update , geo.gps.supl_server , geo.gps.supl_port , geo.wifi.logging.enabled, geo.wifi.access_token.recycle_interval , geo.prompt.testing, geo.prompt.testing.allow , geo.request.remember. | ||
== API == | == API == | ||
Line 56: | Line 55: | ||
==== Methods ==== | ==== Methods ==== | ||
* <tt>void getCurrentPosition(in nsIDOMGeoPositionCallback successCallback, | * <tt><nowiki>void getCurrentPosition(in nsIDOMGeoPositionCallback successCallback, | ||
[optional] in nsIDOMGeoPositionErrorCallback errorCallback, | [optional] in nsIDOMGeoPositionErrorCallback errorCallback, | ||
/* GeoPositionOptions */ | /* GeoPositionOptions */ | ||
[optional] in jsval options);</tt> | [optional] in jsval options);</nowiki></tt> | ||
* <tt>long watchPosition(in nsIDOMGeoPositionCallback successCallback, | * <tt><nowiki>long watchPosition(in nsIDOMGeoPositionCallback successCallback, | ||
[optional] in nsIDOMGeoPositionErrorCallback errorCallback, | [optional] in nsIDOMGeoPositionErrorCallback errorCallback, | ||
/* GeoPositionOptions */ | /* GeoPositionOptions */ | ||
[optional] in jsval options);</tt> | [optional] in jsval options);</nowiki></tt> | ||
* <tt>void clearWatch(in long watchId);</tt> | * <tt>void clearWatch(in long watchId);</tt> | ||
== Tests == | == Tests == | ||
=== Marionette/JS === | === Marionette/JS === | ||
* https://bugzilla.mozilla.org/show_bug.cgi?id=777983 for writing a Marionette test for normal gps geolocation. | |||
==== Basic Positive Tests ==== | ==== Basic Positive Tests ==== | ||
Line 73: | Line 73: | ||
* http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/ | * http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/ | ||
* http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/chrome/test_geolocation.xul | * http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/chrome/test_geolocation.xul | ||
* http://mxr.mozilla.org/mozilla-central/source/browser/components/privatebrowsing/test/unit/test_geoClearCookie.js | |||
==== Sanity Tests ==== | ==== Sanity Tests ==== | ||
==== Basic Negative Tests ==== | ==== Basic Negative Tests ==== | ||
=== Test App Design === | === Test App Design === | ||
Line 89: | Line 89: | ||
---- | ---- | ||
<small>This page is based on the [[B2G/QA/WebAPI Test Plan/Template|WebAPI Test Plan Template]]</small> | <small>This page is based on the [[B2G/QA/WebAPI Test Plan/Template|WebAPI Test Plan Template]]</small> | ||
=== TBD === | |||
* {{bug|715788}} - A-GPS for Gonk, what kind of testing needed for this? | |||
* UI testing related to the Geolocation API - tbd - john Hammink, Matt Brandt | |||
* Comments from Kanru for A-GPS testing: | |||
** I filed https://bugzilla.mozilla.org/show_bug.cgi?id=777983 for writing a Marionette test to test normal GPS on emulator. The emulator could inject fake locations so we could test the basic GPS functionality. | |||
** But the A-GPS is a bit hard to test because it needs real hardware and server support, and when it fails the GPS engine usually fallback to normal GPS silently. ** Several ways to do automated test that I can think of are (1) extend the emulator to support A-GPS callbacks (2) monitor if the GPS engine is requesting data connection or not (3) use a fake/proxy A-GPS server | |||
** To turn it on you have to add these prefs: | |||
pref("geo.gps.supl_server", "supl.google.com"); | |||
pref("geo.gps.supl_port", 7276); | |||
pref("geo.gps.apn.name", "internet"); | |||
pref("geo.gps.apn.user", ""); | |||
pref("geo.gps.apn.password", ""); | |||
** where the "geo.gps.apn.name" is the APN for data connection. |
Latest revision as of 22:32, 6 August 2012
Geolocation API Test Plan
Summary
Lead | Martijn Wargers (irc: mw22) |
Contributors | Xiao Meng Wei (irc: xwei) |
API Description | Allows access to the geographical location of the device |
API Developer | Doug Turner |
API Project Page | Geolocation |
API Tracking Bugs | bug 437948 |
API Status | Delivered and ready for test |
Scope
This test plan covers functional testing of the Geolocation API as delivered for Boot2Gecko. It does not attempt to cover performance, security, or other kinds of testing at this time.
Strategy
- There are already mochitests for the Geolocation API here: http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/
- A test app should be created to verify the API on-device.
- Some other areas that could be tested:
- inside (hidden and multiple) iframes
- while in the background/background tab
- on a deleted window/iframe
- when screen turned off
- Full screen
- Private browsing mode
- related prefs: geolocation.enabled, geo.enabled , browser.geolocation.warning.infoURL , geo.wifi.uri , geo.wifi.access_token. , geo.gps.apn.name , geo.gps.apn.user , geo.gps.apn.password , geo.default.update , geo.gps.supl_server , geo.gps.supl_port , geo.wifi.logging.enabled, geo.wifi.access_token.recycle_interval , geo.prompt.testing, geo.prompt.testing.allow , geo.request.remember.
API
Geolocation API is defined as part of the nsIDOMNavigator interface. It includes:
- getCurrentPosition() to get a single position
- watchPosition() to get an update when the position has changed
- clearWatch() to clear the listener that is calling when watchPosition()
devmo article
Geolocation API Specification
Methods
- void getCurrentPosition(in nsIDOMGeoPositionCallback successCallback, [optional] in nsIDOMGeoPositionErrorCallback errorCallback, /* GeoPositionOptions */ [optional] in jsval options);
- long watchPosition(in nsIDOMGeoPositionCallback successCallback, [optional] in nsIDOMGeoPositionErrorCallback errorCallback, /* GeoPositionOptions */ [optional] in jsval options);
- void clearWatch(in long watchId);
Tests
Marionette/JS
- https://bugzilla.mozilla.org/show_bug.cgi?id=777983 for writing a Marionette test for normal gps geolocation.
Basic Positive Tests
mochitest-plain
- http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/geolocation/
- http://mxr.mozilla.org/mozilla-central/source/dom/tests/mochitest/chrome/test_geolocation.xul
- http://mxr.mozilla.org/mozilla-central/source/browser/components/privatebrowsing/test/unit/test_geoClearCookie.js
Sanity Tests
Basic Negative Tests
Test App Design
Basic test application can be found here.
URLS
- http://mozqa.com/data/firefox/geolocation/
- http://www.w3.org/TR/geolocation-API/
- https://developer.mozilla.org/en/Using_geolocation
This page is based on the WebAPI Test Plan Template
TBD
- bug 715788 - A-GPS for Gonk, what kind of testing needed for this?
- UI testing related to the Geolocation API - tbd - john Hammink, Matt Brandt
- Comments from Kanru for A-GPS testing:
- I filed https://bugzilla.mozilla.org/show_bug.cgi?id=777983 for writing a Marionette test to test normal GPS on emulator. The emulator could inject fake locations so we could test the basic GPS functionality.
- But the A-GPS is a bit hard to test because it needs real hardware and server support, and when it fails the GPS engine usually fallback to normal GPS silently. ** Several ways to do automated test that I can think of are (1) extend the emulator to support A-GPS callbacks (2) monitor if the GPS engine is requesting data connection or not (3) use a fake/proxy A-GPS server
- To turn it on you have to add these prefs:
pref("geo.gps.supl_server", "supl.google.com"); pref("geo.gps.supl_port", 7276); pref("geo.gps.apn.name", "internet"); pref("geo.gps.apn.user", ""); pref("geo.gps.apn.password", "");
- where the "geo.gps.apn.name" is the APN for data connection.