| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.j
s"></script> | |
| 5 <script src="../../cr.js"></script> | |
| 6 <script src="../event_target.js"></script> | |
| 7 <script src="array_data_model.js"></script> | |
| 8 <script> | |
| 9 | |
| 10 goog.require('goog.testing.jsunit'); | |
| 11 | |
| 12 </script> | |
| 13 | |
| 14 </head> | |
| 15 <body> | |
| 16 | |
| 17 <script> | |
| 18 | |
| 19 function testSlice() { | |
| 20 var m = new cr.ui.ArrayDataModel([0, 1, 2]); | |
| 21 assertArrayEquals([0, 1, 2], m.slice()); | |
| 22 assertArrayEquals([1, 2], m.slice(1)); | |
| 23 assertArrayEquals([1], m.slice(1, 2)); | |
| 24 } | |
| 25 | |
| 26 function testPush() { | |
| 27 var m = new cr.ui.ArrayDataModel([0, 1, 2]); | |
| 28 | |
| 29 var count = 0; | |
| 30 m.addEventListener('splice', function(e) { | |
| 31 count++; | |
| 32 assertEquals(3, e.index); | |
| 33 assertArrayEquals([], e.removed); | |
| 34 assertArrayEquals([3, 4], e.added); | |
| 35 }); | |
| 36 | |
| 37 assertEquals(5, m.push(3, 4)); | |
| 38 var a = m.slice(); | |
| 39 assertArrayEquals([0, 1, 2, 3, 4], a); | |
| 40 | |
| 41 assertEquals('The splice event should only fire once', 1, count); | |
| 42 } | |
| 43 | |
| 44 function testSplice() { | |
| 45 function compare(array, args) { | |
| 46 var m = new cr.ui.ArrayDataModel(array.slice()); | |
| 47 var expected = array.slice(); | |
| 48 var result = expected.splice.apply(expected, args); | |
| 49 assertArrayEquals(result, m.splice.apply(m, args)); | |
| 50 assertArrayEquals(expected, m.slice()); | |
| 51 } | |
| 52 | |
| 53 compare([1, 2, 3], []); | |
| 54 compare([1, 2, 3], [0, 0]); | |
| 55 compare([1, 2, 3], [0, 1]); | |
| 56 compare([1, 2, 3], [1, 1]); | |
| 57 compare([1, 2, 3], [0, 3]); | |
| 58 compare([1, 2, 3], [0, 1, 5]); | |
| 59 compare([1, 2, 3], [0, 3, 1, 2, 3]); | |
| 60 compare([1, 2, 3], [5, 3, 1, 2, 3]); | |
| 61 } | |
| 62 | |
| 63 function testPermutation() { | |
| 64 function doTest(sourceArray, spliceArgs) { | |
| 65 var m = new cr.ui.ArrayDataModel(sourceArray.slice()); | |
| 66 var permutation; | |
| 67 m.addEventListener('permuted', function(event) { | |
| 68 permutation = event.permutation; | |
| 69 }); | |
| 70 m.splice.apply(m, spliceArgs); | |
| 71 var deleted = 0; | |
| 72 for (var i = 0; i < sourceArray.length; i++) { | |
| 73 if (permutation[i] == -1) | |
| 74 deleted++; | |
| 75 else | |
| 76 assertEquals(sourceArray[i], m.item(permutation[i])); | |
| 77 } | |
| 78 assertEquals(deleted, spliceArgs[1]); | |
| 79 } | |
| 80 | |
| 81 doTest([1, 2, 3], [0, 0]); | |
| 82 doTest([1, 2, 3], [0, 1]); | |
| 83 doTest([1, 2, 3], [1, 1]); | |
| 84 doTest([1, 2, 3], [0, 3]); | |
| 85 doTest([1, 2, 3], [0, 1, 5]); | |
| 86 doTest([1, 2, 3], [0, 3, 1, 2, 3]); | |
| 87 } | |
| 88 | |
| 89 </script> | |
| 90 | |
| 91 </body> | |
| 92 </html> | |
| OLD | NEW |