1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/contentprefs/tests/unit_cps2/test_remove.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,222 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this file, 1.6 + * You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +function run_test() { 1.9 + runAsyncTests(tests); 1.10 +} 1.11 + 1.12 +let tests = [ 1.13 + 1.14 + function nonexistent() { 1.15 + yield set("a.com", "foo", 1); 1.16 + yield setGlobal("foo", 2); 1.17 + 1.18 + yield cps.removeByDomainAndName("a.com", "bogus", null, makeCallback()); 1.19 + yield dbOK([ 1.20 + ["a.com", "foo", 1], 1.21 + [null, "foo", 2], 1.22 + ]); 1.23 + yield getOK(["a.com", "foo"], 1); 1.24 + yield getGlobalOK(["foo"], 2); 1.25 + 1.26 + yield cps.removeBySubdomainAndName("a.com", "bogus", null, makeCallback()); 1.27 + yield dbOK([ 1.28 + ["a.com", "foo", 1], 1.29 + [null, "foo", 2], 1.30 + ]); 1.31 + yield getOK(["a.com", "foo"], 1); 1.32 + yield getGlobalOK(["foo"], 2); 1.33 + 1.34 + yield cps.removeGlobal("bogus", null, makeCallback()); 1.35 + yield dbOK([ 1.36 + ["a.com", "foo", 1], 1.37 + [null, "foo", 2], 1.38 + ]); 1.39 + yield getOK(["a.com", "foo"], 1); 1.40 + yield getGlobalOK(["foo"], 2); 1.41 + 1.42 + yield cps.removeByDomainAndName("bogus", "bogus", null, makeCallback()); 1.43 + yield dbOK([ 1.44 + ["a.com", "foo", 1], 1.45 + [null, "foo", 2], 1.46 + ]); 1.47 + yield getOK(["a.com", "foo"], 1); 1.48 + yield getGlobalOK(["foo"], 2); 1.49 + }, 1.50 + 1.51 + function isomorphicDomains() { 1.52 + yield set("a.com", "foo", 1); 1.53 + yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback()); 1.54 + yield dbOK([]); 1.55 + yield getOK(["a.com", "foo"], undefined); 1.56 + 1.57 + yield set("a.com", "foo", 2); 1.58 + yield cps.removeByDomainAndName("http://a.com/huh", "foo", null, 1.59 + makeCallback()); 1.60 + yield dbOK([]); 1.61 + yield getOK(["a.com", "foo"], undefined); 1.62 + }, 1.63 + 1.64 + function names() { 1.65 + yield set("a.com", "foo", 1); 1.66 + yield set("a.com", "bar", 2); 1.67 + yield setGlobal("foo", 3); 1.68 + yield setGlobal("bar", 4); 1.69 + 1.70 + yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback()); 1.71 + yield dbOK([ 1.72 + ["a.com", "bar", 2], 1.73 + [null, "foo", 3], 1.74 + [null, "bar", 4], 1.75 + ]); 1.76 + yield getOK(["a.com", "foo"], undefined); 1.77 + yield getOK(["a.com", "bar"], 2); 1.78 + yield getGlobalOK(["foo"], 3); 1.79 + yield getGlobalOK(["bar"], 4); 1.80 + 1.81 + yield cps.removeGlobal("foo", null, makeCallback()); 1.82 + yield dbOK([ 1.83 + ["a.com", "bar", 2], 1.84 + [null, "bar", 4], 1.85 + ]); 1.86 + yield getOK(["a.com", "foo"], undefined); 1.87 + yield getOK(["a.com", "bar"], 2); 1.88 + yield getGlobalOK(["foo"], undefined); 1.89 + yield getGlobalOK(["bar"], 4); 1.90 + 1.91 + yield cps.removeByDomainAndName("a.com", "bar", null, makeCallback()); 1.92 + yield dbOK([ 1.93 + [null, "bar", 4], 1.94 + ]); 1.95 + yield getOK(["a.com", "foo"], undefined); 1.96 + yield getOK(["a.com", "bar"], undefined); 1.97 + yield getGlobalOK(["foo"], undefined); 1.98 + yield getGlobalOK(["bar"], 4); 1.99 + 1.100 + yield cps.removeGlobal("bar", null, makeCallback()); 1.101 + yield dbOK([ 1.102 + ]); 1.103 + yield getOK(["a.com", "foo"], undefined); 1.104 + yield getOK(["a.com", "bar"], undefined); 1.105 + yield getGlobalOK(["foo"], undefined); 1.106 + yield getGlobalOK(["bar"], undefined); 1.107 + }, 1.108 + 1.109 + function subdomains() { 1.110 + yield set("a.com", "foo", 1); 1.111 + yield set("b.a.com", "foo", 2); 1.112 + yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback()); 1.113 + yield dbOK([ 1.114 + ["b.a.com", "foo", 2], 1.115 + ]); 1.116 + yield getSubdomainsOK(["a.com", "foo"], [["b.a.com", 2]]); 1.117 + yield getSubdomainsOK(["b.a.com", "foo"], [["b.a.com", 2]]); 1.118 + 1.119 + yield set("a.com", "foo", 3); 1.120 + yield cps.removeBySubdomainAndName("a.com", "foo", null, makeCallback()); 1.121 + yield dbOK([ 1.122 + ]); 1.123 + yield getSubdomainsOK(["a.com", "foo"], []); 1.124 + yield getSubdomainsOK(["b.a.com", "foo"], []); 1.125 + 1.126 + yield set("a.com", "foo", 4); 1.127 + yield set("b.a.com", "foo", 5); 1.128 + yield cps.removeByDomainAndName("b.a.com", "foo", null, makeCallback()); 1.129 + yield dbOK([ 1.130 + ["a.com", "foo", 4], 1.131 + ]); 1.132 + yield getSubdomainsOK(["a.com", "foo"], [["a.com", 4]]); 1.133 + yield getSubdomainsOK(["b.a.com", "foo"], []); 1.134 + 1.135 + yield set("b.a.com", "foo", 6); 1.136 + yield cps.removeBySubdomainAndName("b.a.com", "foo", null, makeCallback()); 1.137 + yield dbOK([ 1.138 + ["a.com", "foo", 4], 1.139 + ]); 1.140 + yield getSubdomainsOK(["a.com", "foo"], [["a.com", 4]]); 1.141 + yield getSubdomainsOK(["b.a.com", "foo"], []); 1.142 + }, 1.143 + 1.144 + function privateBrowsing() { 1.145 + yield set("a.com", "foo", 1); 1.146 + yield set("a.com", "bar", 2); 1.147 + yield setGlobal("foo", 3); 1.148 + yield setGlobal("bar", 4); 1.149 + yield setGlobal("qux", 5); 1.150 + yield set("b.com", "foo", 6); 1.151 + yield set("b.com", "bar", 7); 1.152 + 1.153 + let context = { usePrivateBrowsing: true }; 1.154 + yield set("a.com", "foo", 8, context); 1.155 + yield setGlobal("foo", 9, context); 1.156 + yield cps.removeByDomainAndName("a.com", "foo", context, makeCallback()); 1.157 + yield cps.removeGlobal("foo", context, makeCallback()); 1.158 + yield cps.removeGlobal("qux", context, makeCallback()); 1.159 + yield cps.removeByDomainAndName("b.com", "foo", context, makeCallback()); 1.160 + yield dbOK([ 1.161 + ["a.com", "bar", 2], 1.162 + [null, "bar", 4], 1.163 + ["b.com", "bar", 7], 1.164 + ]); 1.165 + yield getOK(["a.com", "foo", context], undefined); 1.166 + yield getOK(["a.com", "bar", context], 2); 1.167 + yield getGlobalOK(["foo", context], undefined); 1.168 + yield getGlobalOK(["bar", context], 4); 1.169 + yield getGlobalOK(["qux", context], undefined); 1.170 + yield getOK(["b.com", "foo", context], undefined); 1.171 + yield getOK(["b.com", "bar", context], 7); 1.172 + 1.173 + yield getOK(["a.com", "foo"], undefined); 1.174 + yield getOK(["a.com", "bar"], 2); 1.175 + yield getGlobalOK(["foo"], undefined); 1.176 + yield getGlobalOK(["bar"], 4); 1.177 + yield getGlobalOK(["qux"], undefined); 1.178 + yield getOK(["b.com", "foo"], undefined); 1.179 + yield getOK(["b.com", "bar"], 7); 1.180 + }, 1.181 + 1.182 + function erroneous() { 1.183 + do_check_throws(function () cps.removeByDomainAndName(null, "foo", null)); 1.184 + do_check_throws(function () cps.removeByDomainAndName("", "foo", null)); 1.185 + do_check_throws(function () cps.removeByDomainAndName("a.com", "foo", null, 1.186 + "bogus")); 1.187 + do_check_throws(function () cps.removeBySubdomainAndName(null, "foo", 1.188 + null)); 1.189 + do_check_throws(function () cps.removeBySubdomainAndName("", "foo", null)); 1.190 + do_check_throws(function () cps.removeBySubdomainAndName("a.com", "foo", 1.191 + null, "bogus")); 1.192 + do_check_throws(function () cps.removeGlobal("", null)); 1.193 + do_check_throws(function () cps.removeGlobal(null, null)); 1.194 + do_check_throws(function () cps.removeGlobal("foo", null, "bogus")); 1.195 + yield true; 1.196 + }, 1.197 + 1.198 + function removeByDomainAndName_invalidateCache() { 1.199 + yield set("a.com", "foo", 1); 1.200 + getCachedOK(["a.com", "foo"], true, 1); 1.201 + cps.removeByDomainAndName("a.com", "foo", null, makeCallback()); 1.202 + getCachedOK(["a.com", "foo"], false); 1.203 + yield; 1.204 + }, 1.205 + 1.206 + function removeBySubdomainAndName_invalidateCache() { 1.207 + yield set("a.com", "foo", 1); 1.208 + yield set("b.a.com", "foo", 2); 1.209 + getCachedSubdomainsOK(["a.com", "foo"], [ 1.210 + ["a.com", 1], 1.211 + ["b.a.com", 2], 1.212 + ]); 1.213 + cps.removeBySubdomainAndName("a.com", "foo", null, makeCallback()); 1.214 + getCachedSubdomainsOK(["a.com", "foo"], []); 1.215 + yield; 1.216 + }, 1.217 + 1.218 + function removeGlobal_invalidateCache() { 1.219 + yield setGlobal("foo", 1); 1.220 + getCachedGlobalOK(["foo"], true, 1); 1.221 + cps.removeGlobal("foo", null, makeCallback()); 1.222 + getCachedGlobalOK(["foo"], false); 1.223 + yield; 1.224 + }, 1.225 +];