Merge mozilla-central to mozilla-inbound

This commit is contained in:
Carsten "Tomcat" Book 2014-05-20 16:15:15 +02:00
commit b21c696b0c
13 changed files with 113 additions and 353 deletions

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="8a4baf82a131a7853cf7e7f9cf74253927b2f355"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="65fba428f8d76336b33ddd9e15900357953600ba">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/>

View File

@ -18,7 +18,7 @@
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="8a4baf82a131a7853cf7e7f9cf74253927b2f355"/>

View File

@ -4,6 +4,6 @@
"remote": "",
"branch": ""
},
"revision": "3440b8cab407aef69dd7be247efd40447b5da577",
"revision": "6b51afcf6d39fc4b30dc0d9b5d9f5739b2a6fd60",
"repo_path": "/integration/gaia-central"
}

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -15,7 +15,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="8a4baf82a131a7853cf7e7f9cf74253927b2f355"/>

View File

@ -17,7 +17,7 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="8a2352d5b7be27ec4b1ea18c680ebcd0b6d34348"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="9ad117d9d7f4d9e76ca235b168a3ac79f870f4c1"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="3b2aeeb5af3083c2f6f4b44beae0b4802566d482"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>

View File

@ -2,350 +2,110 @@
* http://creativecommons.org/publicdomain/zero/1.0/ */
MARIONETTE_TIMEOUT = 60000;
MARIONETTE_HEAD_JS = "head.js";
const DATA_KEY = "ril.data.enabled";
const DATA_ROAMING_KEY = "ril.data.roaming_enabled";
const APN_KEY = "ril.data.apnSettings";
SpecialPowers.setBoolPref("dom.mozSettings.enabled", true);
SpecialPowers.addPermission("mobileconnection", true, document);
SpecialPowers.addPermission("settings-read", true, document);
SpecialPowers.addPermission("settings-write", true, document);
let settings = window.navigator.mozSettings;
let connection = window.navigator.mozMobileConnections[0];
ok(connection instanceof MozMobileConnection,
"connection is instanceof " + connection.constructor);
let pendingEmulatorCmdCount = 0;
function sendCmdToEmulator(cmd, callback) {
++pendingEmulatorCmdCount;
runEmulatorCmd(cmd, function(result) {
--pendingEmulatorCmdCount;
is(result[0], "OK", "Emulator response");
if (callback) {
callback();
}
});
}
let tasks = {
// List of test fuctions. Each of them should call |tasks.next()| when
// completed or |tasks.finish()| to jump to the last one.
_tasks: [],
_nextTaskIndex: 0,
push: function(func) {
this._tasks.push(func);
},
next: function() {
let index = this._nextTaskIndex++;
let task = this._tasks[index];
try {
task();
} catch (ex) {
ok(false, "test task[" + index + "] throws: " + ex);
// Run last task as clean up if possible.
if (index != this._tasks.length - 1) {
this.finish();
}
}
},
finish: function() {
this._tasks[this._tasks.length - 1]();
},
run: function() {
this.next();
}
};
function setSetting(key, value, callback) {
let setLock = settings.createLock();
let obj = {};
obj[key] = value;
let setReq = setLock.set(obj);
setReq.addEventListener("success", function onSetSuccess() {
ok(true, "set '" + key + "' to " + obj[key]);
if (callback) {
callback();
}
});
setReq.addEventListener("error", function onSetError() {
ok(false, "cannot set '" + key + "'");
tasks.finish();
});
}
function getSetting(key, callback) {
let getLock = settings.createLock();
let getReq = getLock.get(key);
getReq.addEventListener("success", function onGetSuccess() {
ok(true, "get " + key + " setting okay");
let value = getReq.result[key];
callback(value);
});
getReq.addEventListener("error", function onGetError() {
ok(false, "cannot get '" + key + "'");
tasks.finish();
});
}
function setEmulatorAPN(callback) {
let apn =
[
[
{"carrier":"T-Mobile US",
"apn":"epc.tmobile.com",
"mmsc":"http://mms.msg.eng.t-mobile.com/mms/wapenc",
"types":["default","supl","mms"]}
]
];
setSetting(APN_KEY, apn, callback);
}
function setEmulatorRoaming(roaming, callback) {
log("Setting emulator roaming state: " + roaming + ".");
// Set voice registration state first and then data registration state.
let cmd = "gsm voice " + (roaming ? "roaming" : "home");
sendCmdToEmulator(cmd, function() {
connection.addEventListener("voicechange", function onvoicechange() {
connection.removeEventListener("voicechange", onvoicechange);
log("mobileConnection.voice.roaming is now '"
+ connection.voice.roaming + "'.");
is(connection.voice.roaming, roaming, "voice.roaming");
let cmd = "gsm data " + (roaming ? "roaming" : "home");
sendCmdToEmulator(cmd, function() {
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.roaming is now '"
+ connection.data.roaming + "'.");
is(connection.data.roaming, roaming, "data.roaming");
if (callback) {
callback();
}
});
});
});
});
}
function setEmulatorHome(callback) {
let voiceRegistration = false;
let dataRegistration = false;
if (connection.voice.state != "registered") {
sendCmdToEmulator("gsm voice home", function() {
connection.addEventListener("voicechange", function onvoicechange() {
connection.removeEventListener("voicechange", onvoicechange);
log("mobileConnection.voice.state is now '"
+ connection.voice.state + "'.");
is(connection.voice.state, "registered", "voice.state");
voiceRegistration = true;
});
});
} else {
voiceRegistration = true;
}
if (connection.data.state != "registered") {
sendCmdToEmulator("gsm data home", function() {
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.state is now '"
+ connection.data.state + "'.");
is(connection.data.state, "registered", "data.state");
dataRegistration = true;
});
});
} else {
dataRegistration = true;
}
waitFor(callback, function() {
return (voiceRegistration && dataRegistration);
});
}
tasks.push(function verifyInitialState() {
log("Verifying initial state.");
// Want to start test with mobileConnection.data.state 'registered',
// This is the default state; if it is not currently this value then set it.
setEmulatorHome(function() {
// Want to start test with data off,
// This is the default state; if it is not currently this value then set it.
getSetting(DATA_KEY, function(result) {
let value = result;
log("Starting data enabled: " + value);
if (value) {
setSetting(DATA_KEY, false);
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, false, "data.connected");
setEmulatorAPN(function() {
tasks.next();
});
});
} else {
setEmulatorAPN(function() {
tasks.next();
});
}
});
});
});
tasks.push(function testEnableData() {
log("Turn data on.");
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, true, "data.connected");
tasks.next();
});
setSetting(DATA_KEY, true);
});
tasks.push(function testUnregisterDataWhileDataEnabled() {
log("Set data registration unregistered while data enabled.");
// When data registration is unregistered, all data calls
// will be automatically deactivated.
sendCmdToEmulator("gsm data unregistered", function() {
connection.addEventListener("datachange", function ondatachange() {
log("mobileConnection.data.state is now '"
+ connection.data.state + "'.");
if (connection.data.state == "notSearching") {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, false, "data.connected");
tasks.next();
}
});
});
});
tasks.push(function testRegisterDataWhileDataEnabled() {
log("Set data registration home while data enabled.");
// When data registration is registered, data call will be
// (re)activated by gecko if ril.data.enabled is set to true.
sendCmdToEmulator("gsm data home", function() {
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.state is now '"
+ connection.data.state + "'.");
is(connection.data.state, "registered", "data.state");
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, true, "data.connected");
tasks.next();
});
});
});
});
tasks.push(function testDisableDataRoamingWhileRoaming() {
log("Disable data roaming while roaming.");
setSetting(DATA_ROAMING_KEY, false);
// Wait for roaming state to change, then data connection should
// be disconnected due to data roaming set to off.
setEmulatorRoaming(true, function() {
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, false, "data.connected");
tasks.next();
});
});
});
tasks.push(function testEnableDataRoamingWhileRoaming() {
log("Enable data roaming while roaming.");
// Data should be re-connected as we enabled data roaming.
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, true, "data.connected");
tasks.next();
});
setSetting(DATA_ROAMING_KEY, true);
});
tasks.push(function testDisableDataRoamingWhileNotRoaming() {
log("Disable data roaming while not roaming.");
// Wait for roaming state to change then set data roaming back
// to off.
setEmulatorRoaming(false, function() {
setSetting(DATA_ROAMING_KEY, false);
// No change event will be received cause data connection state
// remains the same.
window.setTimeout(function() {
is(connection.data.connected, true, "data.connected");
tasks.next();
}, 1000);
});
});
tasks.push(function testDisableData() {
log("Turn data off.");
connection.addEventListener("datachange", function ondatachange() {
connection.removeEventListener("datachange", ondatachange);
log("mobileConnection.data.connected is now '"
+ connection.data.connected + "'.");
is(connection.data.connected, false, "data.connected");
tasks.next();
});
setSetting(DATA_KEY, false);
});
// WARNING: All tasks should be pushed before this!!!
tasks.push(function cleanUp() {
if (pendingEmulatorCmdCount) {
window.setTimeout(cleanUp, 100);
function checkOrWaitForDataState(connected) {
if (mobileConnection.data.connected == connected) {
log("data.connected is now " + mobileConnection.data.connected);
return;
}
SpecialPowers.removePermission("mobileconnection", document);
SpecialPowers.removePermission("settings-write", document);
SpecialPowers.removePermission("settings-read", document);
SpecialPowers.clearUserPref("dom.mozSettings.enabled");
finish();
});
return waitForManagerEvent("datachange")
.then(() => checkOrWaitForDataState(connected));
}
tasks.run();
function verifyInitialState() {
log("Verifying initial state.");
// Data should be off and registration home before starting any test.
return Promise.resolve()
.then(function() {
is(mobileConnection.voice.state, "registered", "voice.state");
is(mobileConnection.data.state, "registered", "data.state");
is(mobileConnection.voice.roaming, false, "voice.roaming");
is(mobileConnection.data.roaming, false, "data.roaming");
})
.then(getDataEnabled)
.then(function(aResult) {
is(aResult, false, "Data must be off.")
});
}
function testEnableData() {
log("Turn data on.");
return setDataEnabledAndWait(true);
}
function testUnregisterDataWhileDataEnabled() {
log("Set data registration unregistered while data enabled.");
// When data registration is unregistered, all data calls will be
// automatically deactivated.
return setEmulatorVoiceDataStateAndWait("data", "unregistered")
.then(() => checkOrWaitForDataState(false));
}
function testRegisterDataWhileDataEnabled() {
log("Set data registration home while data enabled.");
// When data registration is registered, data call will be (re)activated by
// gecko if ril.data.enabled is set to true.
return setEmulatorVoiceDataStateAndWait("data", "home")
.then(() => checkOrWaitForDataState(true));
}
function testDisableDataRoamingWhileRoaming() {
log("Disable data roaming while roaming.");
// After setting emulator state to roaming, data connection should be
// disconnected due to data roaming setting set to off.
return setEmulatorRoamingAndWait(true)
.then(() => checkOrWaitForDataState(false));
}
function testEnableDataRoamingWhileRoaming() {
log("Enable data roaming while roaming.");
// Data should be re-connected as we enabled data roaming.
return setDataRoamingEnabled(true)
.then(() => checkOrWaitForDataState(true));
}
function testDisableData() {
log("Turn data off.");
return setDataEnabledAndWait(false);
}
startTestCommon(function() {
let origApnSettings;
return verifyInitialState()
.then(() => getDataApnSettings())
.then(value => {
origApnSettings = value;
})
.then(() => {
let apnSettings = [[{ "carrier": "T-Mobile US",
"apn": "epc.tmobile.com",
"mmsc": "http://mms.msg.eng.t-mobile.com/mms/wapenc",
"types": ["default","supl","mms"] }]];
return setDataApnSettings(apnSettings);
})
.then(() => testEnableData())
.then(() => testUnregisterDataWhileDataEnabled())
.then(() => testRegisterDataWhileDataEnabled())
.then(() => testDisableDataRoamingWhileRoaming())
.then(() => testEnableDataRoamingWhileRoaming())
.then(() => testDisableData())
// Restore test environment.
.then(() => {
if (origApnSettings) {
return setDataApnSettings(origApnSettings);
}
})
.then(() => setEmulatorRoamingAndWait(false))
.then(() => setDataRoamingEnabled(false));
}, ["settings-read", "settings-write"]);