Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <!-- TODO(arv): Check in Closure unit tests and make this run as part of the | 4 <!-- TODO(arv): Check in Closure unit tests and make this run as part of the |
| 5 tests --> | 5 tests --> |
| 6 <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.j s"></script> | 6 <script src="https://cdn.rawgit.com/google/closure-library/master/closure/goog/b ase.js"></script> |
| 7 <script src="cr.js"></script> | 7 <script src="../../../../../ui/webui/resources/js/cr.js"></script> |
| 8 <script src="bmm/treeiterator.js"></script> | |
| 9 <script src="bmm.js"></script> | 8 <script src="bmm.js"></script> |
| 9 <title>Bookmark Manager Loading Test</title> | |
| 10 <script> | 10 <script> |
| 11 | 11 |
| 12 goog.require('goog.testing.jsunit'); | 12 goog.require('goog.testing.jsunit'); |
| 13 goog.require('goog.testing.AsyncTestCase'); | |
| 13 | 14 |
| 14 </script> | 15 </script> |
| 15 </head> | 16 </head> |
| 16 <body> | 17 <body> |
| 17 <script> | 18 <script> |
| 18 | 19 |
| 20 var asyncTestCase = goog.testing.AsyncTestCase.createAndInstall(document.title); | |
| 21 | |
| 19 var tree = { | 22 var tree = { |
| 20 id: 0, | 23 id: 0, |
| 21 children: [ | 24 children: [ |
| 22 { | 25 { |
| 23 id: 1, | 26 id: 1, |
| 24 children: [ | 27 children: [ |
| 25 {id: 2}, | 28 {id: 2}, |
| 26 {id: 3, children: []} | 29 {id: 3, children: []} |
| 27 ] | 30 ] |
| 28 }, | 31 }, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 46 chrome.bookmarkManagerPrivate.getSubtree.load = function(node) { | 49 chrome.bookmarkManagerPrivate.getSubtree.load = function(node) { |
| 47 // getSubtree gets the root tree when id is ''. | 50 // getSubtree gets the root tree when id is ''. |
| 48 var id = node.id; | 51 var id = node.id; |
| 49 if (id == tree.id) | 52 if (id == tree.id) |
| 50 id = ''; | 53 id = ''; |
| 51 for (var i = 0; i < callbacks[id].length; i++) { | 54 for (var i = 0; i < callbacks[id].length; i++) { |
| 52 callbacks[id][i].call(null, [node]); | 55 callbacks[id][i].call(null, [node]); |
| 53 } | 56 } |
| 54 }; | 57 }; |
| 55 | 58 |
| 56 function setUp() { | 59 function continueTesting() { |
| 57 callbacks = {} | 60 asyncTestCase.continueTesting(); |
|
Dan Beam
2014/10/30 03:10:29
sharing a global context no longer worked when the
| |
| 58 } | 61 } |
| 59 | 62 |
| 60 function testLoadSingle() { | 63 function testLoad() { |
| 61 var calls = 0; | |
| 62 function f(node) { | |
| 63 calls++; | |
| 64 assertEquals(tree, node); | |
| 65 } | |
| 66 var p = bmm.loadTree(); | |
| 67 p.then(f); | |
| 68 | |
| 69 chrome.bookmarkManagerPrivate.getSubtree.load(tree); | |
| 70 | |
| 71 assertEquals(1, calls); | |
| 72 assertEquals(1, callbacks[''].$calls); | |
| 73 } | |
| 74 | |
| 75 function testLoadMultiple() { | |
| 76 var calls1 = 0; | 64 var calls1 = 0; |
| 77 var calls2 = 0; | 65 var calls2 = 0; |
| 78 function f1(node) { | 66 function f1(node) { |
| 79 calls1++; | 67 calls1++; |
| 80 assertEquals(tree, node); | 68 assertEquals(tree, node); |
| 81 } | 69 } |
| 82 function f2(node) { | 70 function f2(node) { |
| 83 calls2++; | 71 calls2++; |
| 84 assertEquals(tree, node); | 72 assertEquals(tree, node); |
| 85 } | 73 } |
| 86 | 74 |
| 87 var p = bmm.loadTree(); | 75 var p = bmm.loadTree(); |
| 88 var p2 = bmm.loadTree(); | 76 var p2 = bmm.loadTree(); |
| 89 p.then(f1); | 77 var r = [ |
| 90 p2.then(f2); | 78 p.then(f1), |
| 79 p2.then(f2), | |
| 80 ]; | |
| 91 | 81 |
| 92 chrome.bookmarkManagerPrivate.getSubtree.load(tree); | 82 chrome.bookmarkManagerPrivate.getSubtree.load(tree); |
| 93 | 83 |
| 94 assertEquals(1, calls1); | 84 var root = Promise.all(r).then(function() { |
| 95 assertEquals(1, calls2); | 85 assertEquals(1, calls1); |
| 96 assertEquals(1, callbacks[''].$calls); | 86 assertEquals(1, calls2); |
| 97 } | 87 assertEquals(1, callbacks[''].$calls); |
| 88 }); | |
| 98 | 89 |
| 99 function testLoadSubtree() { | 90 |
| 100 var calls = 0; | 91 var calls3 = 0; |
| 101 function f(node) { | 92 function f3(node) { |
| 102 calls++; | 93 calls3++; |
| 103 assertEquals(tree.children[0], node); | 94 assertEquals(tree.children[0], node); |
| 104 } | 95 } |
| 105 var p = bmm.loadSubtree(1); | 96 |
| 106 p.then(f); | 97 var p3 = bmm.loadSubtree(1); |
| 98 var s = p3.then(f3); | |
| 107 | 99 |
| 108 chrome.bookmarkManagerPrivate.getSubtree.load(tree.children[0]); | 100 chrome.bookmarkManagerPrivate.getSubtree.load(tree.children[0]); |
| 109 | 101 |
| 110 assertEquals(1, calls); | 102 var subtree = s.then(function() { |
| 111 assertEquals(1, callbacks[1].$calls); | 103 assertEquals(1, calls3); |
| 104 assertEquals(1, callbacks[1].$calls); | |
| 105 }); | |
| 106 | |
| 107 Promise.all([root, subtree]).then(continueTesting); | |
| 112 } | 108 } |
| 113 | 109 |
| 114 </script> | 110 </script> |
| 115 </body> | 111 </body> |
| 116 </html> | 112 </html> |
| OLD | NEW |