|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
https://bugzilla.mozilla.org/show_bug.cgi?id=715041
|
|
Packit |
f0b94e |
-->
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
Packit |
f0b94e |
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
target="_blank">Mozilla Bug 715041
|
|
Packit |
f0b94e |
</body>
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
<script type="application/javascript">
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/** Mock Idle Service Test for Bug 715041 **/
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var idleServiceCID = Components.ID("6f95d965-4322-4829-8a3c-5dc8a4587f4d");
|
|
Packit |
f0b94e |
var idleServiceContractID = "@mozilla.org/widget/idleservice;1";
|
|
Packit |
f0b94e |
var oldIdleService = Cc[idleServiceContractID].getService(Ci.nsIIdleService);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch (ex) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: failed to get old idle service 1.");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//class mock javascript idle service
|
|
Packit |
f0b94e |
var idleServiceObj = {
|
|
Packit |
f0b94e |
observers: [],
|
|
Packit |
f0b94e |
windowObservers: [],
|
|
Packit |
f0b94e |
idleTimeInMS: 5000, //in milli seconds
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// takes note of the idle observers added as the minimum idle observer
|
|
Packit |
f0b94e |
//with the idle service
|
|
Packit |
f0b94e |
timesAdded: [],
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
QueryInterface: function(iid) {
|
|
Packit |
f0b94e |
if (iid.equals(Ci.nsISupports) ||
|
|
Packit |
f0b94e |
iid.equals(Ci.nsIFactory) ||
|
|
Packit |
f0b94e |
iid.equals(Ci.nsIIdleService)) {
|
|
Packit |
f0b94e |
return this;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
throw Cr.NS_ERROR_NO_INTERFACE;
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
createInstance: function(outer, iid) {
|
|
Packit |
f0b94e |
return this.QueryInterface(iid);
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
get idleTime() {
|
|
Packit |
f0b94e |
return this.idleTimeInMS; //in milli seconds
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
set idleTime(timeInMS) {
|
|
Packit |
f0b94e |
this.idleTimeInMS = timeInMS;
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
getWindowFromObserver: function(observer) {
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var interfaceRequestor = observer.QueryInterface(Ci.nsIInterfaceRequestor);
|
|
Packit |
f0b94e |
var window = interfaceRequestor.getInterface(Ci.nsIDOMWindow);
|
|
Packit |
f0b94e |
return window;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch (e) {}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
return null;
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
testIdleBackService: function(observer, topic) {
|
|
Packit |
f0b94e |
dump("\nJS FAKE IDLE SERVICE\n");
|
|
Packit |
f0b94e |
dump("JS NUM OBSERVERS: " + this.observers.length + "\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (this.observers.length > 1) {
|
|
Packit |
f0b94e |
this.observers[1].observer.observe(observer, topic, '\0');
|
|
Packit |
f0b94e |
dump("JS CALLED OBSERVE FUNCTION!!!\n\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
addIdleObserver: function(observer, time) {
|
|
Packit |
f0b94e |
dump("\nJS FAKE IDLE SERVICE add idle observer before\n");
|
|
Packit |
f0b94e |
dump("JS NUM OBSERVERS: " + this.observers.length + "\n");
|
|
Packit |
f0b94e |
var window = this.getWindowFromObserver(observer);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (window) {
|
|
Packit |
f0b94e |
this.observers.push({ observer: observer, time: time, });
|
|
Packit |
f0b94e |
addedIdleObserver = true;
|
|
Packit |
f0b94e |
numIdleObserversAdded++;
|
|
Packit |
f0b94e |
this.timesAdded.push(time);
|
|
Packit |
f0b94e |
dump ("\nMOCK IDLE SERVICE ADDING idle observer with time: " + time + "\n");
|
|
Packit |
f0b94e |
dump("MOCK IDLE SERVICE: num idle observers added: " + numIdleObserversAdded + "\n\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("SHOULD NEVER GET HERE!");
|
|
Packit |
f0b94e |
oldIdleService.addIdleObserver(observer, time);
|
|
Packit |
f0b94e |
addedIdleObserver = false;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("\nJS FAKE IDLE SERVICE end of add idle observer\n");
|
|
Packit |
f0b94e |
dump("JS NUM OBSERVERS: " + this.observers.length + "\n");
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
removeIdleObserver: function(observer, time) {
|
|
Packit |
f0b94e |
dump("\nJS REMOVE IDLE OBSERVER () time to be removed: " + time + "\n");
|
|
Packit |
f0b94e |
var window = this.getWindowFromObserver(observer);
|
|
Packit |
f0b94e |
if (!window) {
|
|
Packit |
f0b94e |
oldIdleService.removeIdleObserver(observer, time);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
var observerIndex = -1;
|
|
Packit |
f0b94e |
for (var i=0; i
|
|
Packit |
f0b94e |
dump("JS removeIdleObserver() observer time: " + this.observers[i].time + "\n");
|
|
Packit |
f0b94e |
if (this.observers[i].time === time) {
|
|
Packit |
f0b94e |
observerIndex = i;
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (observerIndex != -1 && this.observers.length > 0) {
|
|
Packit |
f0b94e |
numIdleObserversRemoved++;
|
|
Packit |
f0b94e |
this.observers.splice(observerIndex, 1);
|
|
Packit |
f0b94e |
removedIdleObserver = true;
|
|
Packit |
f0b94e |
dump("MOCK IDLE SERVICE REMOVING idle observer with time " + time + "\n");
|
|
Packit |
f0b94e |
dump("MOCK IDLE SERVICE numIdleObserversRemoved: " + numIdleObserversRemoved + " numIdleObserversAdded: " + numIdleObserversAdded + "\n\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
removedIdleObserver = false;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
dump("\nJS FAKE IDLE SERVICE end of remove idle observer\n");
|
|
Packit |
f0b94e |
dump("JS NUM OBSERVERS: " + this.observers.length + "\n");
|
|
Packit |
f0b94e |
},
|
|
Packit |
f0b94e |
};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/** Test for Bug 715041 **/
|
|
Packit |
f0b94e |
dump("\n\n\nJS STARTING TESTING FOR BUG 715041 REMOVAL\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//bool variables
|
|
Packit |
f0b94e |
var addedIdleObserver = removedIdleObserver = passed = cleanUp = false;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//msgXCount
|
|
Packit |
f0b94e |
var msg0Count = msg1Count = msg2Count = msg3Count = msg4Count = msg5Count =
|
|
Packit |
f0b94e |
msg6Count = tcZero = currTestCaseNum = prevMsgNum = 0;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//test case number
|
|
Packit |
f0b94e |
var tcRemoveHeadIdleObserverWhileActive = 0;
|
|
Packit |
f0b94e |
var tcRemoveLocalIdleObserverWhileIdle = 1;
|
|
Packit |
f0b94e |
var tcRemoveHeadIdleObserver = 2;
|
|
Packit |
f0b94e |
var tcRemoveLocalIdleTimerWhileIdle = 3;
|
|
Packit |
f0b94e |
var tcRemoveLocalIdleTimerLastElement = 4;
|
|
Packit |
f0b94e |
var tcRemoveHeadAfterLastLocalFired = 5;
|
|
Packit |
f0b94e |
var tcRemoveHeadIdleObserverWhileIdleCase1 = 6;
|
|
Packit |
f0b94e |
var tcRemoveLastAddLast = 7;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function ResetMsgCounts() {
|
|
Packit |
f0b94e |
msg0Count = msg1Count = msg2Count = msg3Count = msg4Count = msg5Count =
|
|
Packit |
f0b94e |
msg6Count = prevMsgNum = 0;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function ResetVars() {
|
|
Packit |
f0b94e |
msg0Count = msg1Count = msg2Count = msg3Count = msg4Count = msg5Count =
|
|
Packit |
f0b94e |
msg6Count = prevMsgNum = 0;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
numIdleObserversAdded = numIdleObserversRemoved = 0;
|
|
Packit |
f0b94e |
currTestCaseNum = -1;
|
|
Packit |
f0b94e |
addedIdleObserver = removedIdleObserver = passed = cleanUp = false;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function printVariableValues()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\nfunction printVariableValues()\ncurrTestCaseNum: " + currTestCaseNum +
|
|
Packit |
f0b94e |
"\ncleanUp: " + cleanUp +
|
|
Packit |
f0b94e |
"\npassed: " + passed +
|
|
Packit |
f0b94e |
"\nnumIdleObserversRemoved: " + numIdleObserversRemoved +
|
|
Packit |
f0b94e |
"\nnumIdleObservesAdded: " + numIdleObserversAdded +
|
|
Packit |
f0b94e |
"\nmsg1Count " + msg1Count +
|
|
Packit |
f0b94e |
"\nmsg2Count " + msg2Count +
|
|
Packit |
f0b94e |
"\nmsg3Count " + msg3Count +
|
|
Packit |
f0b94e |
"\nmsg4Count " + msg4Count +
|
|
Packit |
f0b94e |
"\nmsg5Count " + msg5Count +
|
|
Packit |
f0b94e |
"\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//Place Holder.
|
|
Packit |
f0b94e |
var idleHandler0 = function() { dump("msg 0, should never be used!\n"); };
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler1
|
|
Packit |
f0b94e |
function idleHandler1() {
|
|
Packit |
f0b94e |
msg1Count++;
|
|
Packit |
f0b94e |
dump("msg 1 Count: " + msg1Count + "\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
switch (currTestCaseNum) {
|
|
Packit |
f0b94e |
case tcRemoveHeadIdleObserver:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count && !msg5Count) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleObserverWhileIdle:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleTimerWhileIdle:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count) {
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 2000;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadIdleObserverWhileIdleCase1:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count) {
|
|
Packit |
f0b94e |
for (var i=1; i<4; i++) {
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[i]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1200;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleTimerLastElement:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count && !msg5Count) {
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1500;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1700;
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 2000;
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[2], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadAfterLastLocalFired:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && !msg4Count && !msg5Count) {
|
|
Packit |
f0b94e |
dump("idle handler 1: case tcRemoveHeadAfterLastLocalFired:\n");
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLastAddLast:
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
default:
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler2
|
|
Packit |
f0b94e |
function idleHandler2() {
|
|
Packit |
f0b94e |
msg2Count++;
|
|
Packit |
f0b94e |
dump("msg 2 Count: " + msg2Count + "\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
switch (currTestCaseNum) {
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleTimerLastElement:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && !msg3Count && !msg4Count) {
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
default:
|
|
Packit |
f0b94e |
//do nothing.
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler3
|
|
Packit |
f0b94e |
function idleHandler3() {
|
|
Packit |
f0b94e |
msg3Count++;
|
|
Packit |
f0b94e |
dump("msg 3 Count: " + msg3Count + "\n");
|
|
Packit |
f0b94e |
passed = false;
|
|
Packit |
f0b94e |
switch (currTestCaseNum) {
|
|
Packit |
f0b94e |
case tcRemoveHeadIdleObserverWhileActive:
|
|
Packit |
f0b94e |
if (!msg1Count && msg2Count === 1 && msg3Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
dump("idleHandler3: passed: " + passed + "\n");
|
|
Packit |
f0b94e |
RemoveHeadIdleObserverWhileActiveCleanUp();
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadIdleObserverWhileIdleCase1:
|
|
Packit |
f0b94e |
if (msg3Count != 2 && msg3Count != 4) {
|
|
Packit |
f0b94e |
return;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (msg1Count === 2 && msg2Count === 2 && msg3Count === 2 && !msg4Count) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
ok(passed, "Failed test case remove head idle observer while idle case 1, part 1.\n");
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "active");
|
|
Packit |
f0b94e |
return;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (msg1Count === 3 && msg2Count === 4 && msg3Count === 4 &&
|
|
Packit |
f0b94e |
!msg4Count && !msg5Count) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
RemoveHeadIdleObserverWhileIdleCase1CleanUp();
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLastAddLast:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && msg3Count === 1
|
|
Packit |
f0b94e |
&& !msg4Count && !msg5Count) {
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 3200;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 3500;
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
return;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadAfterLastLocalFired:
|
|
Packit |
f0b94e |
if (msg3Count === 1) {
|
|
Packit |
f0b94e |
return;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (msg1Count === 2 && msg2Count === 2 && msg3Count === 2 && msg4Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
RemoveHeadAfterLastLocalFiredCleanUp();
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
default:
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler4
|
|
Packit |
f0b94e |
function idleHandler4() {
|
|
Packit |
f0b94e |
msg4Count++;
|
|
Packit |
f0b94e |
dump("msg 4 Count: " + msg4Count + "\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
switch (currTestCaseNum) {
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleObserverWhileIdle:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && msg3Count === 1 && msg4Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
RemoveLocalIdleObserverWhileIdleCleanUp();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadIdleObserver:
|
|
Packit |
f0b94e |
printVariableValues();
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && msg3Count === 1 && msg4Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
RemoveHeadIdleObserverCleanUp();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleTimerWhileIdle:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && !msg2Count && !msg3Count && msg4Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
RemoveLocalIdleTimerWhileIdleCleanUp();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break
|
|
Packit |
f0b94e |
case tcRemoveLocalIdleTimerLastElement:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && !msg3Count && msg4Count === 1) {
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
ok(passed, "Failed test case remove local idle timer last element.\n");
|
|
Packit |
f0b94e |
RemoveLocalIdleTimerLastElementCleanUp();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveHeadAfterLastLocalFired:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && msg3Count === 1 && msg4Count === 1) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
ok(passed, "Failed remove head after last local fired.\n");
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "active");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
case tcRemoveLastAddLast:
|
|
Packit |
f0b94e |
if (msg1Count === 1 && msg2Count === 1 && msg3Count === 1 && msg4Count == 1) {
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 4100;
|
|
Packit |
f0b94e |
passed = true;
|
|
Packit |
f0b94e |
RemoveLastAddLastCleanUp();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
default:
|
|
Packit |
f0b94e |
//do nothing.
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler5
|
|
Packit |
f0b94e |
function idleHandler5() {
|
|
Packit |
f0b94e |
msg5Count++;
|
|
Packit |
f0b94e |
dump("msg 5 Count: " + msg5Count + "\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
switch (currTestCaseNum) {
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
default:
|
|
Packit |
f0b94e |
//do nothing.
|
|
Packit |
f0b94e |
break;
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//idleHandler6
|
|
Packit |
f0b94e |
function idleHandler6() {
|
|
Packit |
f0b94e |
dump("msg 6 Count: " + msg6Count + "\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
var idleObserversArray = [];
|
|
Packit |
f0b94e |
idleObserversArray[0] = {time: 0, onidle: idleHandler0, onactive: idleHandler0};
|
|
Packit |
f0b94e |
idleObserversArray[1] = {time: 1, onidle: idleHandler1, onactive: idleHandler1};
|
|
Packit |
f0b94e |
idleObserversArray[2] = {time: 2, onidle: idleHandler2, onactive: idleHandler2};
|
|
Packit |
f0b94e |
idleObserversArray[3] = {time: 3, onidle: idleHandler3, onactive: idleHandler3};
|
|
Packit |
f0b94e |
idleObserversArray[4] = {time: 4, onidle: idleHandler4, onactive: idleHandler4};
|
|
Packit |
f0b94e |
idleObserversArray[5] = {time: 5, onidle: idleHandler5, onactive: idleHandler5};
|
|
Packit |
f0b94e |
idleObserversArray[6] = {time: 0, onidle: idleHandler6, onactive: idleHandler6};
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//observers array space holder at index zero
|
|
Packit |
f0b94e |
idleServiceObj.observers.push( {observer: idleObserversArray[0], time: 0, } );
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* - function RemoveHeadIdleObserverWhileActive1()
|
|
Packit |
f0b94e |
* - Remove head idle observer before the head idle notification is fired by the
|
|
Packit |
f0b94e |
* idle service. I.e. remove the head idle observer while the user is active.
|
|
Packit |
f0b94e |
* - RESULT: prints 2 in 2ms, 3
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserverWhileActive() {
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveHeadIdleObserverWhileActive\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserverWhileActive;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: RemoveHeadIdleObserverWhileActive() idle time " + idleServiceObj.idleTime + "\n");
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 800;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[2], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserverWhileActiveCleanUp() {
|
|
Packit |
f0b94e |
dump("\nRemoveHeadIdleObserverWhileActiveCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("Passed: " + passed + "\n");
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveHeadIdleObserverWhileActive");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserverWhileActive;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 3500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
for (var i=2; i<4; i++) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[i]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveHeadIdleObserverWhileActiveCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveLocalIdleObserverWhileIdleEnabled) {
|
|
Packit |
f0b94e |
RemoveLocalIdleObserverWhileIdle();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* function RemoveLocalIdleObserverWhileIdle()
|
|
Packit |
f0b94e |
* Remove local observer before the local oberver at index 1 is triggered while
|
|
Packit |
f0b94e |
* the user is idle.
|
|
Packit |
f0b94e |
* RESULT: should print 1, 3, 4
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveLocalIdleObserverWhileIdle() {
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveLocalIdleObserverWhileIdle\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLocalIdleObserverWhileIdle;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveLocalIdleObserverWhileIdleCleanUp() {
|
|
Packit |
f0b94e |
dump("\nRemoveLocalIdleObserverWhileIdleCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveLocalIdleObserverWhileIdleCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserverWhileActive;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 3500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveLocalIdleObserverWhileIdleCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveHeadIdleObserverEnabled) {
|
|
Packit |
f0b94e |
RemoveHeadIdleObserver();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* function RemoveHeadIdleObserver()
|
|
Packit |
f0b94e |
* Remove head idle observer while the user has been idle for 2400 ms.
|
|
Packit |
f0b94e |
* - RESULT: prints 1, 2, remove 2, 3, 4
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserver() {
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveHeadIdleObserver\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserver;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserverCleanUp() {
|
|
Packit |
f0b94e |
dump("\nRemoveHeadIdleObserverCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveHeadIdleObserverCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserver;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 3500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
for (var i=2; i<5; i++) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[i]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveHeadIdleObserverCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveLocalIdleTimerWhileIdleEnabled) {
|
|
Packit |
f0b94e |
RemoveLocalIdleTimerWhileIdle();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* RemoveLocalIdleTimerWhileIdle()
|
|
Packit |
f0b94e |
* - Removes the idle observer that is also set as the current local idle timer callback
|
|
Packit |
f0b94e |
* local idle observer being removed is NOT at index 1!
|
|
Packit |
f0b94e |
* - RESULT: should trigger 1 in 1ms and 4 in 4ms
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveLocalIdleTimerWhileIdle()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveLocalIdleTimerWhileIdle\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLocalIdleTimerWhileIdle;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 500;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveLocalIdleTimerWhileIdleCleanUp()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\nRemoveLocalIdleTimerWhileIdleCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveLocalIdleTimerWhileIdleCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLocalIdleTimerWhileIdle;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveLocalIdleTimerWhileIdleCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveLocalIdleTimerLastElementEnabled) {
|
|
Packit |
f0b94e |
RemoveLocalIdleTimerLastElement();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* function RemoveLocalIdleTimerLastElement()
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveLocalIdleTimerLastElement()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveLocalIdleTimerLastElement\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLocalIdleTimerLastElement;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1200;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveLocalIdleTimerLastElementCleanUp() {
|
|
Packit |
f0b94e |
dump("\nRemoveLocalIdleTimerLastElementCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveLocalIdleTimerLastElementCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLocalIdleTimerLastElement;
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveLocalIdleTimerLastElementCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveHeadAfterLastLocalFiredEnabled) {
|
|
Packit |
f0b94e |
RemoveHeadAfterLastLocalFired();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
- Remove the head after the last local idle timer has been fired
|
|
Packit |
f0b94e |
- add 1 2 3 4
|
|
Packit |
f0b94e |
- after 4 has been notified, removed idle observer with time 4
|
|
Packit |
f0b94e |
- send a back topic
|
|
Packit |
f0b94e |
- message notification should be 1, 2, 3.
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveHeadAfterLastLocalFired()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveHeadAfterLastLocalFired\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadAfterLastLocalFired;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1200;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveHeadAfterLastLocalFiredCleanUp() {
|
|
Packit |
f0b94e |
dump("\RemoveHeadAfterLastLocalFiredCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveHeadAfterLastLocalFiredCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadAfterLastLocalFired;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveHeadAfterLastLocalFiredCleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveHeadIdleObserverWhileIdleCase1Enabled) {
|
|
Packit |
f0b94e |
RemoveHeadIdleObserverWhileIdleCase1();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserverWhileIdleCase1() {
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveHeadIdleObserverWhileIdleCase1\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserverWhileIdleCase1;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveHeadIdleObserverWhileIdleCase1CleanUp() {
|
|
Packit |
f0b94e |
dump("\nRemoveHeadIdleObserverWhileIdleCase1CleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveHeadIdleObserverWhileIdleCase1CleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveHeadIdleObserverWhileIdleCase1;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
for (var i=1; i<4; i++) {
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[i]);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[3]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveHeadIdleObserverWhileIdleCase1CleanUp() DONE\n");
|
|
Packit |
f0b94e |
if (RemoveLastAddLastEnabled) {
|
|
Packit |
f0b94e |
RemoveLastAddLast();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
/*
|
|
Packit |
f0b94e |
* - RemoveLastAddLast()
|
|
Packit |
f0b94e |
*
|
|
Packit |
f0b94e |
* - User is currently idle.
|
|
Packit |
f0b94e |
* - Add callback 1, 2, 3,
|
|
Packit |
f0b94e |
* - Remove callback 3 after 3200 MS. I.e. after callback 3 has been notified.
|
|
Packit |
f0b94e |
* - Add callback 4 after 3500 MS
|
|
Packit |
f0b94e |
* - Output: 1, 2, 3, 4
|
|
Packit |
f0b94e |
*/
|
|
Packit |
f0b94e |
function RemoveLastAddLast()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\n\nTESTING CASE RemoveLastAddLast()\n");
|
|
Packit |
f0b94e |
dump("=================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLastAddLast;
|
|
Packit |
f0b94e |
idleServiceObj.idleTime = 1000;
|
|
Packit |
f0b94e |
window.navigator.addIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
idleServiceObj.testIdleBackService(idleObserversArray[1], "idle");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
function RemoveLastAddLastCleanUp()
|
|
Packit |
f0b94e |
{
|
|
Packit |
f0b94e |
dump("\RemoveLastAddLastCleanUp()\n");
|
|
Packit |
f0b94e |
dump("=====================================\n");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ok(passed, "Failed test case: RemoveLastAddLastCleanUp()");
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
ResetVars();
|
|
Packit |
f0b94e |
currTestCaseNum = tcRemoveLastAddLast;
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[1]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[2]);
|
|
Packit |
f0b94e |
window.navigator.removeIdleObserver(idleObserversArray[4]);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
if (numIdleObserversRemoved === 1 && !numIdleObserversAdded) {
|
|
Packit |
f0b94e |
ok(true, "Failed test case: RemoveLastAddLastCleanUp()");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
else {
|
|
Packit |
f0b94e |
ok(false, "Failed test case: RemoveLastAddLastCleanUp()");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
componentMgr.unregisterFactory(idleServiceCID, idleServiceObj);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: RemoveLastAddLastCleanUp() Failed to unregister factory, mock idle service!\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
componentMgr.registerFactory(oldIdleServiceCID, "Re registering old idle service", idleServiceContractID, oldIdleServiceFactoryObj);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: RemoveLastAddLastCleanUp() Failed to register factory, original idle service!\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
dump("JS RemoveLastAddLastCleanUp() DONE\n");
|
|
Packit |
f0b94e |
dump("Finishing testing idle API.\n");
|
|
Packit |
f0b94e |
SimpleTest.finish();
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
// Registering new moch JS idle service
|
|
Packit |
f0b94e |
SimpleTest.waitForExplicitFinish();
|
|
Packit |
f0b94e |
SimpleTest.requestLongerTimeout(10);
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var idleServiceCID = Components.ID("0fdc1bbf-3868-4660-9855-0c2e376922bc");
|
|
Packit |
f0b94e |
var idleServiceContractID = "@mozilla.org/widget/idleservice;1";
|
|
Packit |
f0b94e |
var oldIdleService = Cc[idleServiceContractID].getService(Ci.nsIIdleService);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(ex) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: 1) Failed to get old idle service.\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
// Registering new moch JS idle service
|
|
Packit |
f0b94e |
var componentMgr = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: Failed to query component registrar interface.\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var oldIdleServiceFactoryObj = componentMgr.getClassObjectByContractID(idleServiceContractID, Ci.nsIFactory);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: Failed to get old idle service.\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
var oldIdleServiceCID = componentMgr.contractIDToCID(idleServiceContractID);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041._removalxul: Failed to convert ID to CID for old idle service.\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
componentMgr.unregisterFactory(oldIdleServiceCID, oldIdleServiceFactoryObj);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: Failed to unregister old idle service factory object!\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
try {
|
|
Packit |
f0b94e |
componentMgr.registerFactory(idleServiceCID, "Test Simple Idle/Back Notifications", idleServiceContractID, idleServiceObj);
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
catch(err) {
|
|
Packit |
f0b94e |
dump("test_bug715041_removal.xul: Failed to register mock idle service.\n");
|
|
Packit |
f0b94e |
}
|
|
Packit |
f0b94e |
|
|
Packit |
f0b94e |
//test case enabled
|
|
Packit |
f0b94e |
var RemoveLocalIdleObserverWhileIdleEnabled = true;
|
|
Packit |
f0b94e |
var RemoveHeadIdleObserverEnabled = true;
|
|
Packit |
f0b94e |
var RemoveLocalIdleTimerWhileIdleEnabled = true;
|
|
Packit |
f0b94e |
var RemoveLocalIdleTimerLastElementEnabled = true;
|
|
Packit |
f0b94e |
var RemoveHeadAfterLastLocalFiredEnabled = true;
|
|
Packit |
f0b94e |
var RemoveHeadIdleObserverWhileIdleCase1Enabled = true;
|
|
Packit |
f0b94e |
var RemoveLastAddLastEnabled = true;
|
|
Packit |
f0b94e |
SpecialPowers.pushPrefEnv({"set":[['dom.idle-observers-api.fuzz_time.disabled', true]]}, RemoveHeadIdleObserverWhileActive);
|
|
Packit |
f0b94e |
]]>
|
|
Packit |
f0b94e |
</script>
|
|
Packit |
f0b94e |
</window>
|
|
Packit |
f0b94e |
|