Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / bookmark_manager / js / bmm_test.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <!-- TODO(arv): Check in Closure unit tests and make this run as part of the
5      tests -->
6 <script src="https://cdn.rawgit.com/google/closure-library/master/closure/goog/base.js"></script>
7 <script src="../../../../../ui/webui/resources/js/cr.js"></script>
8 <script src="bmm.js"></script>
9 <title>Bookmark Manager Loading Test</title>
10 <script>
11
12 goog.require('goog.testing.jsunit');
13 goog.require('goog.testing.AsyncTestCase');
14
15 </script>
16 </head>
17 <body>
18 <script>
19
20 var asyncTestCase = goog.testing.AsyncTestCase.createAndInstall(document.title);
21
22 var tree = {
23   id: 0,
24   children: [
25     {
26       id: 1,
27       children: [
28         {id: 2},
29         {id: 3, children: []}
30       ]
31     },
32     {id: 4},
33     {id: 5}
34   ]
35 };
36
37 // Mock chrome.bookmarkManagerPrivate.getSubtree
38 chrome = chrome || {};
39 chrome.bookmarkManagerPrivate = chrome.bookmarkManagerPrivate || {};
40
41 var callbacks = {};
42
43 chrome.bookmarkManagerPrivate.getSubtree = function(id, foldersOnly, callback) {
44   callbacks[id] = callbacks[id] || [];
45   callbacks[id].push(callback);
46   callbacks[id].$calls = callbacks[id].$calls ? callbacks[id].$calls++ : 1;
47 };
48
49 chrome.bookmarkManagerPrivate.getSubtree.load = function(node) {
50   // getSubtree gets the root tree when id is ''.
51   var id = node.id;
52   if (id == tree.id)
53     id = '';
54   for (var i = 0; i < callbacks[id].length; i++) {
55     callbacks[id][i].call(null, [node]);
56   }
57 };
58
59 function continueTesting() {
60   asyncTestCase.continueTesting();
61 }
62
63 function testLoad() {
64   var calls1 = 0;
65   var calls2 = 0;
66   function f1(node) {
67     calls1++;
68     assertEquals(tree, node);
69   }
70   function f2(node) {
71     calls2++;
72     assertEquals(tree, node);
73   }
74
75   var p = bmm.loadTree();
76   var p2 = bmm.loadTree();
77   var r = [
78     p.then(f1),
79     p2.then(f2),
80   ];
81
82   chrome.bookmarkManagerPrivate.getSubtree.load(tree);
83
84   var root = Promise.all(r).then(function() {
85     assertEquals(1, calls1);
86     assertEquals(1, calls2);
87     assertEquals(1, callbacks[''].$calls);
88   });
89
90
91   var calls3 = 0;
92   function f3(node) {
93     calls3++;
94     assertEquals(tree.children[0], node);
95   }
96
97   var p3 = bmm.loadSubtree(1);
98   var s = p3.then(f3);
99
100   chrome.bookmarkManagerPrivate.getSubtree.load(tree.children[0]);
101
102   var subtree = s.then(function() {
103     assertEquals(1, calls3);
104     assertEquals(1, callbacks[1].$calls);
105   });
106
107   Promise.all([root, subtree]).then(continueTesting);
108 }
109
110 </script>
111 </body>
112 </html>