diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-02-25 15:07:00 -0500 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-04-14 12:55:19 +0200 |
commit | eb70e6e3d0bff11c25f14b1196025791bf2308fb (patch) | |
tree | 5ef4ce17db83c74d7b05ec12c8f59e095a6dd5bd /toolkit/components/url-classifier/tests/unit/test_prefixset.js | |
parent | 32ead795290b3399d56b4708fc75b77d296f6a1a (diff) | |
download | UXP-eb70e6e3d0bff11c25f14b1196025791bf2308fb.tar UXP-eb70e6e3d0bff11c25f14b1196025791bf2308fb.tar.gz UXP-eb70e6e3d0bff11c25f14b1196025791bf2308fb.tar.lz UXP-eb70e6e3d0bff11c25f14b1196025791bf2308fb.tar.xz UXP-eb70e6e3d0bff11c25f14b1196025791bf2308fb.zip |
Issue #439 - Remove tests from toolkit/
Diffstat (limited to 'toolkit/components/url-classifier/tests/unit/test_prefixset.js')
-rw-r--r-- | toolkit/components/url-classifier/tests/unit/test_prefixset.js | 232 |
1 files changed, 0 insertions, 232 deletions
diff --git a/toolkit/components/url-classifier/tests/unit/test_prefixset.js b/toolkit/components/url-classifier/tests/unit/test_prefixset.js deleted file mode 100644 index f2ecc9c2b..000000000 --- a/toolkit/components/url-classifier/tests/unit/test_prefixset.js +++ /dev/null @@ -1,232 +0,0 @@ -// newPset: returns an empty nsIUrlClassifierPrefixSet. -function newPset() { - let pset = Cc["@mozilla.org/url-classifier/prefixset;1"] - .createInstance(Ci.nsIUrlClassifierPrefixSet); - pset.init("all"); - return pset; -} - -// arrContains: returns true if |arr| contains the element |target|. Uses binary -// search and requires |arr| to be sorted. -function arrContains(arr, target) { - let start = 0; - let end = arr.length - 1; - let i = 0; - - while (end > start) { - i = start + (end - start >> 1); - let value = arr[i]; - - if (value < target) - start = i+1; - else if (value > target) - end = i-1; - else - break; - } - if (start == end) - i = start; - - return (!(i < 0 || i >= arr.length) && arr[i] == target); -} - -// checkContents: Check whether the PrefixSet pset contains -// the prefixes in the passed array. -function checkContents(pset, prefixes) { - var outcount = {}, outset = {}; - outset = pset.getPrefixes(outcount); - let inset = prefixes; - do_check_eq(inset.length, outset.length); - inset.sort((x,y) => x - y); - for (let i = 0; i < inset.length; i++) { - do_check_eq(inset[i], outset[i]); - } -} - -function wrappedProbe(pset, prefix) { - return pset.contains(prefix); -}; - -// doRandomLookups: we use this to test for false membership with random input -// over the range of prefixes (unsigned 32-bits integers). -// pset: a nsIUrlClassifierPrefixSet to test. -// prefixes: an array of prefixes supposed to make up the prefix set. -// N: number of random lookups to make. -function doRandomLookups(pset, prefixes, N) { - for (let i = 0; i < N; i++) { - let randInt = prefixes[0]; - while (arrContains(prefixes, randInt)) - randInt = Math.floor(Math.random() * Math.pow(2, 32)); - - do_check_false(wrappedProbe(pset, randInt)); - } -} - -// doExpectedLookups: we use this to test expected membership. -// pset: a nsIUrlClassifierPrefixSet to test. -// prefixes: -function doExpectedLookups(pset, prefixes, N) { - for (let i = 0; i < N; i++) { - prefixes.forEach(function (x) { - dump("Checking " + x + "\n"); - do_check_true(wrappedProbe(pset, x)); - }); - } -} - -// testBasicPset: A very basic test of the prefix set to make sure that it -// exists and to give a basic example of its use. -function testBasicPset() { - let pset = Cc["@mozilla.org/url-classifier/prefixset;1"] - .createInstance(Ci.nsIUrlClassifierPrefixSet); - let prefixes = [2,50,100,2000,78000,1593203]; - pset.setPrefixes(prefixes, prefixes.length); - - do_check_true(wrappedProbe(pset, 100)); - do_check_false(wrappedProbe(pset, 100000)); - do_check_true(wrappedProbe(pset, 1593203)); - do_check_false(wrappedProbe(pset, 999)); - do_check_false(wrappedProbe(pset, 0)); - - - checkContents(pset, prefixes); -} - -function testDuplicates() { - let pset = Cc["@mozilla.org/url-classifier/prefixset;1"] - .createInstance(Ci.nsIUrlClassifierPrefixSet); - let prefixes = [1,1,2,2,2,3,3,3,3,3,3,5,6,6,7,7,9,9,9]; - pset.setPrefixes(prefixes, prefixes.length); - - do_check_true(wrappedProbe(pset, 1)); - do_check_true(wrappedProbe(pset, 2)); - do_check_true(wrappedProbe(pset, 5)); - do_check_true(wrappedProbe(pset, 9)); - do_check_false(wrappedProbe(pset, 4)); - do_check_false(wrappedProbe(pset, 8)); - - - checkContents(pset, prefixes); -} - -function testSimplePset() { - let pset = newPset(); - let prefixes = [1,2,100,400,123456789]; - pset.setPrefixes(prefixes, prefixes.length); - - doRandomLookups(pset, prefixes, 100); - doExpectedLookups(pset, prefixes, 1); - - - checkContents(pset, prefixes); -} - -function testReSetPrefixes() { - let pset = newPset(); - let prefixes = [1, 5, 100, 1000, 150000]; - pset.setPrefixes(prefixes, prefixes.length); - - doExpectedLookups(pset, prefixes, 1); - - let secondPrefixes = [12, 50, 300, 2000, 5000, 200000]; - pset.setPrefixes(secondPrefixes, secondPrefixes.length); - - doExpectedLookups(pset, secondPrefixes, 1); - for (let i = 0; i < prefixes.length; i++) { - do_check_false(wrappedProbe(pset, prefixes[i])); - } - - - checkContents(pset, secondPrefixes); -} - -function testLoadSaveLargeSet() { - let N = 1000; - let arr = []; - - for (let i = 0; i < N; i++) { - let randInt = Math.floor(Math.random() * Math.pow(2, 32)); - arr.push(randInt); - } - - arr.sort((x,y) => x - y); - - let pset = newPset(); - pset.setPrefixes(arr, arr.length); - - doExpectedLookups(pset, arr, 1); - doRandomLookups(pset, arr, 1000); - - checkContents(pset, arr); - - // Now try to save, restore, and redo the lookups - var file = dirSvc.get('ProfLD', Ci.nsIFile); - file.append("testLarge.pset"); - - pset.storeToFile(file); - - let psetLoaded = newPset(); - psetLoaded.loadFromFile(file); - - doExpectedLookups(psetLoaded, arr, 1); - doRandomLookups(psetLoaded, arr, 1000); - - checkContents(psetLoaded, arr); -} - -function testTinySet() { - let pset = Cc["@mozilla.org/url-classifier/prefixset;1"] - .createInstance(Ci.nsIUrlClassifierPrefixSet); - let prefixes = [1]; - pset.setPrefixes(prefixes, prefixes.length); - - do_check_true(wrappedProbe(pset, 1)); - do_check_false(wrappedProbe(pset, 100000)); - checkContents(pset, prefixes); - - prefixes = []; - pset.setPrefixes(prefixes, prefixes.length); - do_check_false(wrappedProbe(pset, 1)); - checkContents(pset, prefixes); -} - -function testLoadSaveNoDelta() { - let N = 100; - let arr = []; - - for (let i = 0; i < N; i++) { - // construct a tree without deltas by making the distance - // between entries larger than 16 bits - arr.push(((1 << 16) + 1) * i); - } - - let pset = newPset(); - pset.setPrefixes(arr, arr.length); - - doExpectedLookups(pset, arr, 1); - - var file = dirSvc.get('ProfLD', Ci.nsIFile); - file.append("testNoDelta.pset"); - - pset.storeToFile(file); - pset.loadFromFile(file); - - doExpectedLookups(pset, arr, 1); -} - -var tests = [testBasicPset, - testSimplePset, - testReSetPrefixes, - testLoadSaveLargeSet, - testDuplicates, - testTinySet, - testLoadSaveNoDelta]; - -function run_test() { - // None of the tests use |executeSoon| or any sort of callbacks, so we can - // just run them in succession. - for (let i = 0; i < tests.length; i++) { - dump("Running " + tests[i].name + "\n"); - tests[i](); - } -} |