1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="nsSessionstore Tests">
<script type="text/javascript">
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
var ssTests = {
log: function sst_log(aMsg) {
Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService).logStringMessage(aMsg);
},
run: function sst_run() {
var tests = ["componentExists", "getService", "windowValues", "tabValues"];
var results = {};
tests.forEach(function(aTest) {
try {
results[aTest] = ssTests[aTest]();
} catch(ex) {
results[aTest] = false;
}
});
return results;
},
componentExists: function sst_componentExists() {
return Cc["@mozilla.org/browser/sessionstore;1"] ? true : false;
},
getService: function sst_getService() {
return Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore) ? true : false;
},
// setWindowValue
windowValues: function sst_windowValues() {
var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
if (!ss)
return false;
var key = "key1";
var value = "value1";
// get current window, tabbrowser
var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
var windowEnumerator = wm.getEnumerator("navigator:browser");
var currentWindow = windowEnumerator.getNext();
var tabbrowser = currentWindow.getBrowser();
// create a new tab
var newTab = tabbrowser.addTab("http://www.mozilla.org");
// test adding
if (ss.setWindowValue(currentWindow, key, value) == -1) {
this.log("setWindowValue failed");
return false;
}
// test retrieving
var storedValue = ss.getWindowValue(currentWindow, key);
if (value != storedValue)
return false;
// test deleting
if (ss.deleteWindowValue(currentWindow, key) == -1) {
this.log("deleteWindowValue failed");
return false;
}
if (ss.getWindowValue(currentWindow, key)) {
this.log("deleteWindowValue failed: data was not deleted");
return false;
}
// clean up
tabbrowser.removeTab(newTab);
return true;
},
// tabValues
tabValues: function sst_tabValues() {
var ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore);
if (!ss)
return false;
var key = "key1";
var value = "value1";
// get current window, tabbrowser
var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
var windowEnumerator = wm.getEnumerator("navigator:browser");
var currentWindow = windowEnumerator.getNext();
var tabbrowser = currentWindow.getBrowser();
// create a new tab
var newTab = tabbrowser.addTab("http://www.mozilla.org");
// test adding
if (ss.setTabValue(newTab, key, value) == -1) {
this.log("setTabValue failed");
return false;
}
// test retrieving
var storedValue = ss.getTabValue(newTab, key);
if (value != storedValue)
return false;
// test deleting
if (ss.deleteTabValue(newTab, key) == -1) {
this.log("deleteTabValue failed");
return false;
}
if (ss.getTabValue(newTab, key)) {
this.log("deleteTabValue failed: data was not deleted");
return false;
}
// clean up
tabbrowser.removeTab(newTab);
return true;
}
};
function debug(aMsg) {
Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService).logStringMessage(aMsg);
}
var results = ssTests.run();
for (key in results) {
debug(key + ": " + results[key]);
}
</script>
</window>
|