1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/devtools/sourcemap/tests/unit/test_array_set.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,112 @@ 1.4 +/* 1.5 + * WARNING! 1.6 + * 1.7 + * Do not edit this file directly, it is built from the sources at 1.8 + * https://github.com/mozilla/source-map/ 1.9 + */ 1.10 + 1.11 +Components.utils.import('resource://test/Utils.jsm'); 1.12 +/* -*- Mode: js; js-indent-level: 2; -*- */ 1.13 +/* 1.14 + * Copyright 2011 Mozilla Foundation and contributors 1.15 + * Licensed under the New BSD license. See LICENSE or: 1.16 + * http://opensource.org/licenses/BSD-3-Clause 1.17 + */ 1.18 +define("test/source-map/test-array-set", ["require", "exports", "module"], function (require, exports, module) { 1.19 + 1.20 + var ArraySet = require('source-map/array-set').ArraySet; 1.21 + 1.22 + function makeTestSet() { 1.23 + var set = new ArraySet(); 1.24 + for (var i = 0; i < 100; i++) { 1.25 + set.add(String(i)); 1.26 + } 1.27 + return set; 1.28 + } 1.29 + 1.30 + exports['test .has() membership'] = function (assert, util) { 1.31 + var set = makeTestSet(); 1.32 + for (var i = 0; i < 100; i++) { 1.33 + assert.ok(set.has(String(i))); 1.34 + } 1.35 + }; 1.36 + 1.37 + exports['test .indexOf() elements'] = function (assert, util) { 1.38 + var set = makeTestSet(); 1.39 + for (var i = 0; i < 100; i++) { 1.40 + assert.strictEqual(set.indexOf(String(i)), i); 1.41 + } 1.42 + }; 1.43 + 1.44 + exports['test .at() indexing'] = function (assert, util) { 1.45 + var set = makeTestSet(); 1.46 + for (var i = 0; i < 100; i++) { 1.47 + assert.strictEqual(set.at(i), String(i)); 1.48 + } 1.49 + }; 1.50 + 1.51 + exports['test creating from an array'] = function (assert, util) { 1.52 + var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']); 1.53 + 1.54 + assert.ok(set.has('foo')); 1.55 + assert.ok(set.has('bar')); 1.56 + assert.ok(set.has('baz')); 1.57 + assert.ok(set.has('quux')); 1.58 + assert.ok(set.has('hasOwnProperty')); 1.59 + 1.60 + assert.strictEqual(set.indexOf('foo'), 0); 1.61 + assert.strictEqual(set.indexOf('bar'), 1); 1.62 + assert.strictEqual(set.indexOf('baz'), 2); 1.63 + assert.strictEqual(set.indexOf('quux'), 3); 1.64 + 1.65 + assert.strictEqual(set.at(0), 'foo'); 1.66 + assert.strictEqual(set.at(1), 'bar'); 1.67 + assert.strictEqual(set.at(2), 'baz'); 1.68 + assert.strictEqual(set.at(3), 'quux'); 1.69 + }; 1.70 + 1.71 + exports['test that you can add __proto__; see github issue #30'] = function (assert, util) { 1.72 + var set = new ArraySet(); 1.73 + set.add('__proto__'); 1.74 + assert.ok(set.has('__proto__')); 1.75 + assert.strictEqual(set.at(0), '__proto__'); 1.76 + assert.strictEqual(set.indexOf('__proto__'), 0); 1.77 + }; 1.78 + 1.79 + exports['test .fromArray() with duplicates'] = function (assert, util) { 1.80 + var set = ArraySet.fromArray(['foo', 'foo']); 1.81 + assert.ok(set.has('foo')); 1.82 + assert.strictEqual(set.at(0), 'foo'); 1.83 + assert.strictEqual(set.indexOf('foo'), 0); 1.84 + assert.strictEqual(set.toArray().length, 1); 1.85 + 1.86 + set = ArraySet.fromArray(['foo', 'foo'], true); 1.87 + assert.ok(set.has('foo')); 1.88 + assert.strictEqual(set.at(0), 'foo'); 1.89 + assert.strictEqual(set.at(1), 'foo'); 1.90 + assert.strictEqual(set.indexOf('foo'), 0); 1.91 + assert.strictEqual(set.toArray().length, 2); 1.92 + }; 1.93 + 1.94 + exports['test .add() with duplicates'] = function (assert, util) { 1.95 + var set = new ArraySet(); 1.96 + set.add('foo'); 1.97 + 1.98 + set.add('foo'); 1.99 + assert.ok(set.has('foo')); 1.100 + assert.strictEqual(set.at(0), 'foo'); 1.101 + assert.strictEqual(set.indexOf('foo'), 0); 1.102 + assert.strictEqual(set.toArray().length, 1); 1.103 + 1.104 + set.add('foo', true); 1.105 + assert.ok(set.has('foo')); 1.106 + assert.strictEqual(set.at(0), 'foo'); 1.107 + assert.strictEqual(set.at(1), 'foo'); 1.108 + assert.strictEqual(set.indexOf('foo'), 0); 1.109 + assert.strictEqual(set.toArray().length, 2); 1.110 + }; 1.111 + 1.112 +}); 1.113 +function run_test() { 1.114 + runSourceMapTests('test/source-map/test-array-set', do_throw); 1.115 +}