Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Side by Side Diff: chrome/test/data/extensions/api_test/bookmarks/test.js

Issue 308273002: Made the bookmarks extension APIs aware of managed bookmarks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/data/extensions/api_test/bookmark_manager/standard/test.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // bookmarks api test 5 // bookmarks api test
6 // browser_tests.exe --gtest_filter=ExtensionApiTest.Bookmarks 6 // browser_tests.exe --gtest_filter=ExtensionApiTest.Bookmarks
7 7
8 // This is global state that is maintained across tests as a reference 8 // This is global state that is maintained across tests as a reference
9 // to compare against what's fetched from the browser (using compareTrees). 9 // to compare against what's fetched from the browser (using compareTrees).
10 // TODO(erikkay) It would be better if each test was self-contained and 10 // TODO(erikkay) It would be better if each test was self-contained and
11 // didn't depend on global state. 11 // didn't depend on global state.
12 var expected = [ 12 var expected = [
13 {"children": [ 13 {"children": [
14 {children:[], id:"1", parentId:"0", index:0, title:"Bookmarks bar"}, 14 {children:[], id:"1", parentId:"0", index:0, title:"Bookmarks bar"},
15 {children:[], id:"2", parentId:"0", index:1, title:"Other bookmarks"} 15 {children:[], id:"2", parentId:"0", index:1, title:"Other bookmarks"},
16 {id:"4", parentId:"0", index:3, title:"Managed bookmarks", children:[
17 {id:"5", parentId:"4", index:0, title:"Managed Bookmark",
18 url: "http://www.chromium.org/"},
19 {id:"6", parentId:"4", index:1, title:"Managed Folder", children:[]}
20 ]
21 }
16 ], 22 ],
17 id:"0", title:"" 23 id:"0", title:""
18 } 24 }
19 ]; 25 ];
20 26
21 function bookmarksBar() { return expected[0].children[0]; } 27 function bookmarksBar() { return expected[0].children[0]; }
22 function otherBookmarks() { return expected[0].children[1]; } 28 function otherBookmarks() { return expected[0].children[1]; }
23 29
24 // Some variables that are used across multiple tests. 30 // Some variables that are used across multiple tests.
25 var node1 = {parentId:"1", title:"bar baz", 31 var node1 = {parentId:"1", title:"bar baz",
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 function run() { 129 function run() {
124 chrome.test.runTests([ 130 chrome.test.runTests([
125 function getTree() { 131 function getTree() {
126 verifyTreeIsExpected(pass()); 132 verifyTreeIsExpected(pass());
127 }, 133 },
128 134
129 function get() { 135 function get() {
130 chrome.bookmarks.get("1", pass(function(results) { 136 chrome.bookmarks.get("1", pass(function(results) {
131 chrome.test.assertTrue(compareNode(results[0], expected[0].children[0])); 137 chrome.test.assertTrue(compareNode(results[0], expected[0].children[0]));
132 })); 138 }));
139 chrome.bookmarks.get("5", pass(function(results) {
140 chrome.test.assertTrue(compareNode(
141 results[0], expected[0].children[2].children[0]));
142 }));
133 chrome.bookmarks.get("42", fail("Can't find bookmark for id.")); 143 chrome.bookmarks.get("42", fail("Can't find bookmark for id."));
134 }, 144 },
135 145
136 function getArray() { 146 function getArray() {
137 chrome.bookmarks.get(["1", "2"], pass(function(results) { 147 chrome.bookmarks.get(["1", "2"], pass(function(results) {
138 chrome.test.assertTrue(compareNode(results[0], expected[0].children[0]), 148 chrome.test.assertTrue(compareNode(results[0], expected[0].children[0]),
139 "get() result != expected"); 149 "get() result != expected");
140 chrome.test.assertTrue(compareNode(results[1], expected[0].children[1]), 150 chrome.test.assertTrue(compareNode(results[1], expected[0].children[1]),
141 "get() result != expected"); 151 "get() result != expected");
142 })); 152 }));
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 "created node != source"); 196 "created node != source");
187 })); 197 }));
188 }, 198 },
189 199
190 function createInRoot() { 200 function createInRoot() {
191 const error = "Can't modify the root bookmark folders."; 201 const error = "Can't modify the root bookmark folders.";
192 var node = {parentId:"0", title:"g404", url:"http://www.google.com/404"}; 202 var node = {parentId:"0", title:"g404", url:"http://www.google.com/404"};
193 chrome.bookmarks.create(node, fail(error)); 203 chrome.bookmarks.create(node, fail(error));
194 }, 204 },
195 205
206 function createInManaged() {
207 const error = "Can't modify managed bookmarks.";
208 var node = {parentId:"4", title:"g404", url:"http://www.google.com/404"};
209 chrome.bookmarks.create(node, fail(error));
210 },
211
196 function createFolder() { 212 function createFolder() {
197 var node = {parentId:"1", title:"foo bar"}; // folder 213 var node = {parentId:"1", title:"foo bar"}; // folder
198 chrome.test.listenOnce(chrome.bookmarks.onCreated, function(id, created) { 214 chrome.test.listenOnce(chrome.bookmarks.onCreated, function(id, created) {
199 node.id = created.id; 215 node.id = created.id;
200 node.index = 1; 216 node.index = 1;
201 node.children = []; 217 node.children = [];
202 chrome.test.assertTrue(compareNode(node, created)); 218 chrome.test.assertTrue(compareNode(node, created));
203 }); 219 });
204 chrome.bookmarks.create(node, pass(function(results) { 220 chrome.bookmarks.create(node, pass(function(results) {
205 node.id = results.id; // since we couldn't know this going in 221 node.id = results.id; // since we couldn't know this going in
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 folder.parentId = results.parentId; 295 folder.parentId = results.parentId;
280 folder.index = results.index; 296 folder.index = results.index;
281 297
282 var folder2 = expected[0].children[0].children.pop(); 298 var folder2 = expected[0].children[0].children.pop();
283 chrome.test.assertEq(folder2.id, folder.id); 299 chrome.test.assertEq(folder2.id, folder.id);
284 expected[0].children[1].children.push(folder2); 300 expected[0].children[1].children.push(folder2);
285 verifyTreeIsExpected(pass()); 301 verifyTreeIsExpected(pass());
286 })); 302 }));
287 }, 303 },
288 304
305 function moveToManaged() {
306 var managed_node = expected[0].children[2];
307 chrome.test.assertEq("4", managed_node.id);
308 const error = "Can't modify managed bookmarks.";
309 chrome.bookmarks.move(node1.id, {parentId:managed_node.id}, fail(error));
310 verifyTreeIsExpected(pass());
311 },
312
313 function moveFromManaged() {
314 var managed_node = expected[0].children[2];
315 var moving_node = managed_node.children[0];
316 var other = expected[0].children[1];
317 const error = "Can't modify managed bookmarks.";
318 chrome.bookmarks.move(moving_node.id, {parentId:other.id}, fail(error));
319 verifyTreeIsExpected(pass());
320 },
321
289 function search() { 322 function search() {
290 chrome.bookmarks.search("baz bar", pass(function(results) { 323 chrome.bookmarks.search("baz bar", pass(function(results) {
291 // matches node1 & node3 324 // matches node1 & node3
292 chrome.test.assertEq(2, results.length); 325 chrome.test.assertEq(2, results.length);
293 })); 326 }));
294 chrome.bookmarks.search("www hello", pass(function(results) { 327 chrome.bookmarks.search("www hello", pass(function(results) {
295 // matches node1 & node3 328 // matches node1 & node3
296 chrome.test.assertEq(2, results.length); 329 chrome.test.assertEq(2, results.length);
297 })); 330 }));
298 chrome.bookmarks.search("bar example", 331 chrome.bookmarks.search("bar example",
299 pass(function(results) { 332 pass(function(results) {
300 // matches node2 333 // matches node2
301 chrome.test.assertEq(1, results.length); 334 chrome.test.assertEq(1, results.length);
302 })); 335 }));
303 chrome.bookmarks.search("foo bar", pass(function(results) { 336 chrome.bookmarks.search("foo bar", pass(function(results) {
304 // matches node3 & folder "foo bar" from createFolder 337 // matches node3 & folder "foo bar" from createFolder
305 chrome.test.assertEq(2, results.length); 338 chrome.test.assertEq(2, results.length);
306 })); 339 }));
307 chrome.bookmarks.search("quux", pass(function(results) { 340 chrome.bookmarks.search("quux", pass(function(results) {
308 // matches node2 & node1 341 // matches node2 & node1
309 chrome.test.assertEq(2, results.length); 342 chrome.test.assertEq(2, results.length);
310 })); 343 }));
311 chrome.bookmarks.search("Bookmark Bar", pass(function(results) { 344 chrome.bookmarks.search("Bookmark Bar", pass(function(results) {
312 // Does not match any node since permanent nodes are stripped from search 345 // Does not match any node since permanent nodes are stripped from search
313 chrome.test.assertEq(0, results.length); 346 chrome.test.assertEq(0, results.length);
314 })); 347 }));
348 chrome.bookmarks.search("Managed", pass(function(results) {
349 // Matches the Managed Bookmark and the Managed Folder but not the
350 // managed_node.
351 chrome.test.assertEq(2, results.length);
352 }));
315 }, 353 },
316 354
317 function update() { 355 function update() {
318 var title = "hello world"; 356 var title = "hello world";
319 chrome.test.listenOnce(chrome.bookmarks.onChanged, function(id, changes) { 357 chrome.test.listenOnce(chrome.bookmarks.onChanged, function(id, changes) {
320 chrome.test.assertEq(title, changes.title); 358 chrome.test.assertEq(title, changes.title);
321 }); 359 });
322 chrome.bookmarks.update(node1.id, {"title": title}, pass(function(results) { 360 chrome.bookmarks.update(node1.id, {"title": title}, pass(function(results) {
323 chrome.test.assertEq(title, results.title); 361 chrome.test.assertEq(title, results.title);
324 })); 362 }));
(...skipping 21 matching lines...) Expand all
346 function(results) { 384 function(results) {
347 chrome.bookmarks.get(node1.id, pass(function(results) { 385 chrome.bookmarks.get(node1.id, pass(function(results) {
348 chrome.test.assertEq(url, results[0].url); 386 chrome.test.assertEq(url, results[0].url);
349 chrome.test.log("URL UNCHANGED"); 387 chrome.test.log("URL UNCHANGED");
350 })); 388 }));
351 }) 389 })
352 ); 390 );
353 })); 391 }));
354 }, 392 },
355 393
394 function updateManaged() {
395 var managed_node = expected[0].children[2];
396 var updating_node = managed_node.children[0];
397 const error = "Can't modify managed bookmarks.";
398 chrome.bookmarks.update(updating_node.id, {"title": "New"}, fail(error));
399 },
400
356 function remove() { 401 function remove() {
357 var parentId = node1.parentId; 402 var parentId = node1.parentId;
358 chrome.test.listenOnce(chrome.bookmarks.onRemoved, 403 chrome.test.listenOnce(chrome.bookmarks.onRemoved,
359 function(id, removeInfo) { 404 function(id, removeInfo) {
360 chrome.test.assertEq(id, node1.id); 405 chrome.test.assertEq(id, node1.id);
361 chrome.test.assertEq(removeInfo.parentId, parentId); 406 chrome.test.assertEq(removeInfo.parentId, parentId);
362 chrome.test.assertEq(removeInfo.index, node1.index); 407 chrome.test.assertEq(removeInfo.index, node1.index);
363 }); 408 });
364 chrome.bookmarks.remove(node1.id, pass(function() { 409 chrome.bookmarks.remove(node1.id, pass(function() {
365 // Update expected to match. 410 // Update expected to match.
366 // We removed node1, which means that the index of the other two nodes 411 // We removed node1, which means that the index of the other two nodes
367 // changes as well. 412 // changes as well.
368 expected[0].children[1].children[1].children.shift(); 413 expected[0].children[1].children[1].children.shift();
369 expected[0].children[1].children[1].children[0].index = 0; 414 expected[0].children[1].children[1].children[0].index = 0;
370 expected[0].children[1].children[1].children[1].index = 1; 415 expected[0].children[1].children[1].children[1].index = 1;
371 verifyTreeIsExpected(pass()); 416 verifyTreeIsExpected(pass());
372 })); 417 }));
373 }, 418 },
374 419
420 function removeManaged() {
421 var managed_node = expected[0].children[2];
422 var removing_node = managed_node.children[0];
423 const error = "Can't modify managed bookmarks.";
424 chrome.bookmarks.remove(removing_node.id, fail(error));
425 },
426
375 function searchRemoved() { 427 function searchRemoved() {
376 // Search for deleted node 428 // Search for deleted node
377 chrome.bookmarks.search("baz bar", pass(function(results) { 429 chrome.bookmarks.search("baz bar", pass(function(results) {
378 // matches only node3 since node1 was removed 430 // matches only node3 since node1 was removed
379 chrome.test.assertEq(1, results.length); 431 chrome.test.assertEq(1, results.length);
380 })); 432 }));
381 }, 433 },
382 434
383 function removeTree() { 435 function removeTree() {
384 var parentId = node2.parentId; 436 var parentId = node2.parentId;
385 var folder = expected[0].children[1].children[1]; 437 var folder = expected[0].children[1].children[1];
386 chrome.test.listenOnce(chrome.bookmarks.onRemoved, 438 chrome.test.listenOnce(chrome.bookmarks.onRemoved,
387 function(id, removeInfo) { 439 function(id, removeInfo) {
388 chrome.test.assertEq(id, folder.id); 440 chrome.test.assertEq(id, folder.id);
389 chrome.test.assertEq(removeInfo.parentId, folder.parentId); 441 chrome.test.assertEq(removeInfo.parentId, folder.parentId);
390 chrome.test.assertEq(removeInfo.index, folder.index); 442 chrome.test.assertEq(removeInfo.index, folder.index);
391 }); 443 });
392 chrome.bookmarks.removeTree(parentId, pass(function(){ 444 chrome.bookmarks.removeTree(parentId, pass(function(){
393 // Update expected to match. 445 // Update expected to match.
394 expected[0].children[1].children.pop(); 446 expected[0].children[1].children.pop();
395 verifyTreeIsExpected(pass()); 447 verifyTreeIsExpected(pass());
396 })); 448 }));
397 }, 449 },
398 450
451 function removeManagedTree() {
452 var managed_node = expected[0].children[2];
453 var managed_folder = managed_node.children[1];
454 const error = "Can't modify managed bookmarks.";
455 chrome.bookmarks.removeTree(managed_folder.id, fail(error));
456 },
457
399 function searchRemovedTree() { 458 function searchRemovedTree() {
400 // Search for deleted folder and enclosed node3 459 // Search for deleted folder and enclosed node3
401 chrome.bookmarks.search("foo bar", pass(function(results) { 460 chrome.bookmarks.search("foo bar", pass(function(results) {
402 // Does not match anything since folder was removed with node3 in it 461 // Does not match anything since folder was removed with node3 in it
403 chrome.test.assertEq(0, results.length); 462 chrome.test.assertEq(0, results.length);
404 })); 463 }));
405 }, 464 },
406 465
407 function quotaLimitedCreate() { 466 function quotaLimitedCreate() {
408 var node = {parentId:"1", title:"quotacreate", url:"http://www.quota.com/"}; 467 var node = {parentId:"1", title:"quotacreate", url:"http://www.quota.com/"};
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 function getRecent() { 545 function getRecent() {
487 var failed = false; 546 var failed = false;
488 try { 547 try {
489 chrome.bookmarks.getRecent(0, function() {}); 548 chrome.bookmarks.getRecent(0, function() {});
490 } catch (ex) { 549 } catch (ex) {
491 failed = true; 550 failed = true;
492 } 551 }
493 chrome.test.assertTrue(failed, "Calling with 0 should fail"); 552 chrome.test.assertTrue(failed, "Calling with 0 should fail");
494 553
495 chrome.bookmarks.getRecent(10000, pass(function(results) { 554 chrome.bookmarks.getRecent(10000, pass(function(results) {
496 chrome.test.assertEq(3, results.length, 555 // Should include the "Managed Bookmark".
556 chrome.test.assertEq(4, results.length,
497 "Should have gotten all recent bookmarks"); 557 "Should have gotten all recent bookmarks");
498 })); 558 }));
499 559
500 chrome.bookmarks.getRecent(2, pass(function(results) { 560 chrome.bookmarks.getRecent(2, pass(function(results) {
501 chrome.test.assertEq(2, results.length, 561 chrome.test.assertEq(2, results.length,
502 "Should only get the last 2 bookmarks"); 562 "Should only get the last 2 bookmarks");
503 563
504 chrome.test.assertTrue(compareNode(node3, results[0])); 564 chrome.test.assertTrue(compareNode(node3, results[0]));
505 chrome.test.assertTrue(compareNode(node2, results[1])); 565 chrome.test.assertTrue(compareNode(node2, results[1]));
506 })); 566 }));
(...skipping 13 matching lines...) Expand all
520 function(result) { 580 function(result) {
521 chrome.test.assertEq(newTitle, result.title); 581 chrome.test.assertEq(newTitle, result.title);
522 chrome.test.assertFalse('url' in result) 582 chrome.test.assertFalse('url' in result)
523 })); 583 }));
524 }); 584 });
525 } 585 }
526 ]); 586 ]);
527 } 587 }
528 588
529 run(); 589 run();
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/api_test/bookmark_manager/standard/test.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698