summaryrefslogtreecommitdiffstats
path: root/comm/suite/components/dataman/tests/browser_dataman_callviews.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/suite/components/dataman/tests/browser_dataman_callviews.js')
-rw-r--r--comm/suite/components/dataman/tests/browser_dataman_callviews.js213
1 files changed, 213 insertions, 0 deletions
diff --git a/comm/suite/components/dataman/tests/browser_dataman_callviews.js b/comm/suite/components/dataman/tests/browser_dataman_callviews.js
new file mode 100644
index 0000000000..e7ace5ee5a
--- /dev/null
+++ b/comm/suite/components/dataman/tests/browser_dataman_callviews.js
@@ -0,0 +1,213 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+// Test loading views in data manager.
+
+const DATAMAN_LOADED = "dataman-loaded";
+
+// See browser_dataman_basics.js.
+const kPreexistingDomains = 12;
+
+var testIndex = 0;
+
+function test() {
+ // Add cookies.
+ Services.cookies.add("getpersonas.com", "", "name0", "value0", false, false,
+ true, parseInt(Date.now() / 1000) + 600, {});
+ Services.cookies.add("drumbeat.org", "", "name1", "value1", false, false,
+ true, parseInt(Date.now() / 1000) + 600, {});
+
+ //Services.prefs.setBoolPref("data_manager.debug", true);
+
+ var win;
+
+ gBrowser.addTab();
+ toDataManager("example.org");
+
+ let testObs = {
+ observe: function(aSubject, aTopic, aData) {
+ if (aTopic == DATAMAN_LOADED) {
+ // Run next test
+ info("run test #" + (testIndex + 1) + " of " + testFuncs.length +
+ " (" + testFuncs[testIndex].name + ")");
+
+ ok(true, "Step " + (testIndex + 1) + ": Data Manager is loaded");
+ win = content.wrappedJSObject;
+
+ testFuncs[testIndex++](win);
+
+ if (testIndex >= testFuncs.length) {
+ // Finish this up!
+ Services.obs.removeObserver(testObs, DATAMAN_LOADED);
+ Services.cookies.remove("getpersonas.com", "name0", "value0", false);
+ Services.cookies.remove("drumbeat.org", "name1", "value1", false);
+ finish();
+ }
+ }
+ }
+ };
+ waitForExplicitFinish();
+ Services.obs.addObserver(testObs, DATAMAN_LOADED);
+}
+
+var testFuncs = [
+function test_load_basic(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "example.org",
+ "Step " + testIndex + ": The correct domain is selected");
+ toDataManager("getpersonas.com|cookies");
+},
+
+function test_switch_panel(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "cookiesPanel",
+ "Step " + testIndex + ": Cookies panel is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("www.getpersonas.com:443|permissions");
+},
+
+function test_load_with_panel(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("getpersonas.com|preferences");
+},
+
+function test_load_disabled_panel(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "cookiesPanel",
+ "Step " + testIndex + ": Cookies panel is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("getpersonas.com|unknown");
+},
+
+function test_load_inexistent_panel(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "cookiesPanel",
+ "Step " + testIndex + ": Cookies panel is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("unknowndomainexample.com");
+},
+
+function test_load_unknown_domain(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "*",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("|cookies");
+},
+
+function test_load_datatype(aWin) {
+ is(aWin.gDomains.selectfield.value, "Cookies",
+ "Step " + testIndex + ": The correct menulist item is selected");
+ is(aWin.gDomains.tree.view.rowCount, 2,
+ "Step " + testIndex + ": The correct number of domains is listed");
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "drumbeat.org",
+ "Step " + testIndex + ": The selected domain is correct");
+ is(aWin.gTabs.activePanel, "cookiesPanel",
+ "Step " + testIndex + ": Cookies panel is selected");
+ aWin.gDomains.tree.view.selection.select(1);
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The second domain is correct as well");
+ toDataManager("|permissions");
+},
+
+function test_switch_datatype(aWin) {
+ is(aWin.gDomains.selectfield.value, "Permissions",
+ "Step " + testIndex + ": The correct menulist item is selected");
+ is(aWin.gDomains.tree.view.rowCount, kPreexistingDomains + 3,
+ "Step " + testIndex + ": The correct number of domains is listed");
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "*",
+ "Step " + testIndex + ": The selected domain is correct");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ toDataManager("www.getpersonas.com");
+},
+
+function test_escape_datatype(aWin) {
+ is(aWin.gDomains.selectfield.value, "all",
+ "Step " + testIndex + ": The correct menulist item is selected");
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ aWin.close();
+ gBrowser.addTab();
+ toDataManager("sub.getpersonas.com:8888|permissions|add|popup");
+},
+
+function test_load_add_perm_existdomain(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "getpersonas.com",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ is(aWin.gPerms.addSelBox.hidden, false,
+ "Step " + testIndex + ": The addition box is shown");
+ is(aWin.gPerms.addHost.value, "sub.getpersonas.com:8888",
+ "Step " + testIndex + ": The correct host and port has been entered");
+ is(aWin.gPerms.addType.value, "popup",
+ "Step " + testIndex + ": The correct permission type has been selected");
+ toDataManager("foo.geckoisgecko.org|permissions|add|image");
+},
+
+function test_switch_add_perm_newdomain(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "*",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ is(aWin.gPerms.addSelBox.hidden, false,
+ "Step " + testIndex + ": The addition box is shown");
+ is(aWin.gPerms.addHost.value, "foo.geckoisgecko.org",
+ "Step " + testIndex + ": The correct host has been entered");
+ is(aWin.gPerms.addType.value, "image",
+ "Step " + testIndex + ": The correct permission type has been selected");
+ toDataManager("drumbeat.org|permissions|add|cookie");
+},
+
+function test_switch_add_perm_nopermdomain(aWin) {
+ is(aWin.gDomains.tree.view.selection.count, 1,
+ "Step " + testIndex + ": One domain is selected");
+ is(aWin.gDomains.selectedDomain.title, "*",
+ "Step " + testIndex + ": The correct domain is selected");
+ is(aWin.gTabs.activePanel, "permissionsPanel",
+ "Step " + testIndex + ": Permissions panel is selected");
+ is(aWin.gPerms.addSelBox.hidden, false,
+ "Step " + testIndex + ": The addition box is shown");
+ is(aWin.gPerms.addHost.value, "drumbeat.org",
+ "Step " + testIndex + ": The correct host has been entered");
+ is(aWin.gPerms.addType.value, "cookie",
+ "Step " + testIndex + ": The correct permission type has been selected");
+ aWin.close();
+}
+];