Files
basilisk55/devtools/client/commandline/test/browser_cmd_appcache_valid.js
T

174 lines
4.7 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
// Tests that the appcache commands works as they should
const TEST_URI = "http://sub1.test2.example.com/browser/devtools/client/" +
"commandline/test/browser_cmd_appcache_valid_index.html";
function test() {
return Task.spawn(spawnTest).then(finish, helpers.handleError);
}
function* spawnTest() {
let options = yield helpers.openTab(TEST_URI);
info("adding cache listener.");
// Wait for site to be cached.
yield helpers.listenOnce(gBrowser.contentWindow.applicationCache, "cached");
yield helpers.openToolbar(options);
// Pages containing an appcache the notification bar gives options to allow
// or deny permission for the app to save data offline. Let's click Allow.
let notificationID = "offline-app-requested-sub1.test2.example.com";
let notification = PopupNotifications.getNotification(notificationID, gBrowser.selectedBrowser);
if (notification) {
info("Authorizing offline storage.");
notification.mainAction.callback();
} else {
info("No notification box is available.");
}
info("Site now cached, running tests.");
yield helpers.audit(options, [
{
setup: "appcache",
check: {
input: "appcache",
markup: "IIIIIIII",
status: "ERROR",
args: {}
},
},
{
setup: function () {
Services.prefs.setBoolPref("browser.cache.disk.enable", false);
return helpers.setInput(options, "appcache list", 13);
},
check: {
input: "appcache list",
markup: "VVVVVVVVVVVVV",
status: "VALID",
args: {},
},
exec: {
output: [ /cache is disabled/ ]
},
post: function (output) {
Services.prefs.setBoolPref("browser.cache.disk.enable", true);
}
},
{
setup: "appcache list",
check: {
input: "appcache list",
markup: "VVVVVVVVVVVVV",
status: "VALID",
args: {},
},
exec: {
output: [ /index/, /page1/, /page2/, /page3/ ]
},
},
{
setup: "appcache list page",
check: {
input: "appcache list page",
markup: "VVVVVVVVVVVVVVVVVV",
status: "VALID",
args: {
search: { value: "page" },
}
},
exec: {
output: [ /page1/, /page2/, /page3/ ]
},
post: function (output, text) {
ok(!text.includes("index"), "index is not contained in output");
}
},
{
setup: "appcache validate",
check: {
input: "appcache validate",
markup: "VVVVVVVVVVVVVVVVV",
status: "VALID",
args: {}
},
exec: {
output: [ /successfully/ ]
},
},
{
setup: "appcache validate " + TEST_URI,
check: {
input: "appcache validate " + TEST_URI,
// appcache validate http://sub1.test2.example.com/browser/devtools/client/commandline/test/browser_cmd_appcache_valid_index.html
markup: "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
status: "VALID",
args: {
uri: {
value: TEST_URI
},
}
},
exec: {
output: [ /successfully/ ]
},
},
{
setup: "appcache clear",
check: {
input: "appcache clear",
markup: "VVVVVVVVVVVVVV",
status: "VALID",
args: {},
},
exec: {
output: [ /successfully/ ]
},
},
{
setup: "appcache list",
check: {
input: "appcache list",
markup: "VVVVVVVVVVVVV",
status: "VALID",
args: {},
},
exec: {
output: [ /no results/ ]
},
post: function (output, text) {
ok(!text.includes("index"), "index is not contained in output");
ok(!text.includes("page1"), "page1 is not contained in output");
ok(!text.includes("page2"), "page1 is not contained in output");
ok(!text.includes("page3"), "page1 is not contained in output");
}
},
{
setup: "appcache viewentry --key " + TEST_URI,
check: {
input: "appcache viewentry --key " + TEST_URI,
// appcache viewentry --key http://sub1.test2.example.com/browser/devtools/client/commandline/test/browser_cmd_appcache_valid_index.html
markup: "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
status: "VALID",
args: {}
},
},
]);
yield helpers.closeToolbar(options);
yield helpers.closeTab(options);
}