Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["tests._base.array"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["tests._base.array"] = true;dojo.provide("tests._base.array");tests.register("tests._base.array",[function testIndexOf(t){var foo = [128, 256, 512];var bar = ["aaa", "bbb", "ccc"];t.assertTrue(dojo.indexOf([45, 56, 85], 56) == 1);t.assertTrue(dojo.indexOf([Number, String, Date], String) == 1);t.assertTrue(dojo.indexOf(foo, foo[1]) == 1);t.assertTrue(dojo.indexOf(foo, foo[2]) == 2);t.assertTrue(dojo.indexOf(bar, bar[1]) == 1);t.assertTrue(dojo.indexOf(bar, bar[2]) == 2);foo.push(bar);t.assertTrue(dojo.indexOf(foo, bar) == 3);},function testIndexOfFromIndex(t){var foo = [128, 256, 512];var bar = ["aaa", "bbb", "ccc"];// FIXME: what happens w/ negative indexes?t.assertEqual(-1, dojo.indexOf([45, 56, 85], 56, 2));t.assertEqual(1, dojo.indexOf([45, 56, 85], 56, 1));},function testLastIndexOf(t){var foo = [128, 256, 512];var bar = ["aaa", "bbb", "aaa", "ccc"];t.assertTrue(dojo.indexOf([45, 56, 85], 56) == 1);t.assertTrue(dojo.indexOf([Number, String, Date], String) == 1);t.assertTrue(dojo.lastIndexOf(foo, foo[1]) == 1);t.assertTrue(dojo.lastIndexOf(foo, foo[2]) == 2);t.assertTrue(dojo.lastIndexOf(bar, bar[1]) == 1);t.assertTrue(dojo.lastIndexOf(bar, bar[2]) == 2);t.assertTrue(dojo.lastIndexOf(bar, bar[0]) == 2);},function testLastIndexOfFromIndex(t){// FIXME: what happens w/ negative indexes?t.assertEqual(1, dojo.lastIndexOf([45, 56, 85], 56, 1));t.assertEqual(-1, dojo.lastIndexOf([45, 56, 85], 85, 1));},function testForEach(t){var foo = [128, "bbb", 512];dojo.forEach(foo, function(elt, idx, array){switch(idx){case 0: t.assertEqual(128, elt); break;case 1: t.assertEqual("bbb", elt); break;case 2: t.assertEqual(512, elt); break;default: t.assertTrue(false);}});var noException = true;try{dojo.forEach(undefined, function(){});}catch(e){noException = false;}t.assertTrue(noException);},function testForEach_str(t){var bar = 'abc';dojo.forEach(bar, function(elt, idx, array){switch(idx){case 0: t.assertEqual("a", elt); break;case 1: t.assertEqual("b", elt); break;case 2: t.assertEqual("c", elt); break;default: t.assertTrue(false);}});},// FIXME: test forEach w/ a NodeList()?function testEvery(t){var foo = [128, "bbb", 512];t.assertTrue(dojo.every(foo, function(elt, idx, array){t.assertEqual(Array, array.constructor);t.assertTrue(dojo.isArray(array));t.assertTrue(typeof idx == "number");if(idx == 1){ t.assertEqual("bbb" , elt); }return true;}));t.assertTrue(dojo.every(foo, function(elt, idx, array){switch(idx){case 0: t.assertEqual(128, elt); return true;case 1: t.assertEqual("bbb", elt); return true;case 2: t.assertEqual(512, elt); return true;default: return false;}}));t.assertFalse(dojo.every(foo, function(elt, idx, array){switch(idx){case 0: t.assertEqual(128, elt); return true;case 1: t.assertEqual("bbb", elt); return true;case 2: t.assertEqual(512, elt); return false;default: return true;}}));},function testEvery_str(t){var bar = 'abc';t.assertTrue(dojo.every(bar, function(elt, idx, array){switch(idx){case 0: t.assertEqual("a", elt); return true;case 1: t.assertEqual("b", elt); return true;case 2: t.assertEqual("c", elt); return true;default: return false;}}));t.assertFalse(dojo.every(bar, function(elt, idx, array){switch(idx){case 0: t.assertEqual("a", elt); return true;case 1: t.assertEqual("b", elt); return true;case 2: t.assertEqual("c", elt); return false;default: return true;}}));},// FIXME: test NodeList for every()?function testSome(t){var foo = [128, "bbb", 512];t.assertTrue(dojo.some(foo, function(elt, idx, array){t.assertEqual(3, array.length);return true;}));t.assertTrue(dojo.some(foo, function(elt, idx, array){if(idx < 1){ return true; }return false;}));t.assertFalse(dojo.some(foo, function(elt, idx, array){return false;}));t.assertTrue(dojo.some(foo, function(elt, idx, array){t.assertEqual(Array, array.constructor);t.assertTrue(dojo.isArray(array));t.assertTrue(typeof idx == "number");if(idx == 1){ t.assertEqual("bbb" , elt); }return true;}));},function testSome_str(t){var bar = 'abc';t.assertTrue(dojo.some(bar, function(elt, idx, array){t.assertEqual(3, array.length);switch(idx){case 0: t.assertEqual("a", elt); return true;case 1: t.assertEqual("b", elt); return true;case 2: t.assertEqual("c", elt); return true;default: return false;}}));t.assertTrue(dojo.some(bar, function(elt, idx, array){switch(idx){case 0: t.assertEqual("a", elt); return true;case 1: t.assertEqual("b", elt); return true;case 2: t.assertEqual("c", elt); return false;default: return true;}}));t.assertFalse(dojo.some(bar, function(elt, idx, array){return false;}));},// FIXME: need to add scoping tests for all of these!!!function testFilter(t){var foo = ["foo", "bar", 10];t.assertEqual(["foo"],dojo.filter(foo, function(elt, idx, array){return idx < 1;}));t.assertEqual(["foo"],dojo.filter(foo, function(elt, idx, array){return elt == "foo";}));t.assertEqual([],dojo.filter(foo, function(elt, idx, array){return false;}));t.assertEqual([10],dojo.filter(foo, function(elt, idx, array){return typeof elt == "number";}));},function testFilter_str(t){var foo = "thinger blah blah blah";t.assertEqual(["t", "h", "i"],dojo.filter(foo, function(elt, idx, array){return idx < 3;}));t.assertEqual([],dojo.filter(foo, function(elt, idx, array){return false;}));},function testMap(t){t.assertEqual([],dojo.map([], function(){ return true; }));t.assertEqual([1, 2, 3],dojo.map(["cat", "dog", "mouse"], function(elt, idx, array){return idx+1;}));}]);}