summaryrefslogtreecommitdiffstats
path: root/dom/system/gonk/tests/marionette/test_multiple_data_connection.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/system/gonk/tests/marionette/test_multiple_data_connection.js')
-rw-r--r--dom/system/gonk/tests/marionette/test_multiple_data_connection.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/dom/system/gonk/tests/marionette/test_multiple_data_connection.js b/dom/system/gonk/tests/marionette/test_multiple_data_connection.js
new file mode 100644
index 000000000..24abd4451
--- /dev/null
+++ b/dom/system/gonk/tests/marionette/test_multiple_data_connection.js
@@ -0,0 +1,89 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+MARIONETTE_TIMEOUT = 60000;
+MARIONETTE_HEAD_JS = "head.js";
+
+// Must sync with hardware/ril/reference-ril/reference-ril.c
+const MAX_DATA_CONTEXTS = 4;
+
+function setEmulatorAPN() {
+ // Use different apn for each network type.
+ let apn = [[ { "carrier":"T-Mobile US",
+ "apn":"epc1.tmobile.com",
+ "types":["default"] },
+ { "carrier":"T-Mobile US",
+ "apn":"epc2.tmobile.com",
+ "mmsc":"http://mms.msg.eng.t-mobile.com/mms/wapenc",
+ "types":["mms"] },
+ { "carrier":"T-Mobile US",
+ "apn":"epc3.tmobile.com",
+ "types":["supl"] },
+ { "carrier":"T-Mobile US",
+ "apn":"epc4.tmobile.com",
+ "types":["ims"] },
+ { "carrier":"T-Mobile US",
+ "apn":"epc5.tmobile.com",
+ "types":["dun"] },
+ { "carrier":"T-Mobile US",
+ "apn":"epc6.tmobile.com",
+ "types":["fota"] }]];
+
+ return setSettings(SETTINGS_KEY_DATA_APN_SETTINGS, apn);
+}
+
+// Test initial State
+function testInitialState() {
+ log("= testInitialState =");
+
+ // Data should be off before starting any test.
+ return getSettings(SETTINGS_KEY_DATA_ENABLED)
+ .then(value => {
+ is(value, false, "Data must be off");
+ });
+}
+
+function testSetupConcurrentDataCalls() {
+ log("= testSetupConcurrentDataCalls =");
+
+ let promise = Promise.resolve();
+ // Skip default mobile type.
+ for (let i = 1; i < MAX_DATA_CONTEXTS; i++) {
+ let type = networkTypes[i];
+ promise = promise.then(() => setupDataCallAndWait(type));
+ }
+ return promise;
+}
+
+function testDeactivateConcurrentDataCalls() {
+ log("= testDeactivateConcurrentDataCalls =");
+
+ let promise = Promise.resolve();
+ // Skip default mobile type.
+ for (let i = 1; i < MAX_DATA_CONTEXTS; i++) {
+ let type = networkTypes[i];
+ promise = promise.then(() => deactivateDataCallAndWait(type));
+ }
+ return promise;
+}
+
+// Start test
+startTestBase(function() {
+
+ let origApnSettings;
+ return testInitialState()
+ .then(() => getSettings(SETTINGS_KEY_DATA_APN_SETTINGS))
+ .then(value => {
+ origApnSettings = value;
+ })
+ .then(() => setEmulatorAPN())
+ .then(() => setDataEnabledAndWait(true))
+ .then(() => testSetupConcurrentDataCalls())
+ .then(() => testDeactivateConcurrentDataCalls())
+ .then(() => setDataEnabledAndWait(false))
+ .then(() => {
+ if (origApnSettings) {
+ return setSettings(SETTINGS_KEY_DATA_APN_SETTINGS, origApnSettings);
+ }
+ });
+});