Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / test / data / extensions / api_test / bookmark_manager / standard / test.js
index 16f241c..b8fd3bd 100644 (file)
@@ -9,6 +9,7 @@ const pass = chrome.test.callbackPass;
 const fail = chrome.test.callbackFail;
 const assertEq = chrome.test.assertEq;
 const assertTrue = chrome.test.assertTrue;
+const assertFalse = chrome.test.assertFalse;
 const bookmarks = chrome.bookmarks;
 const bookmarkManager = chrome.bookmarkManagerPrivate;
 var fooNode, fooNode2, barNode, gooNode, count, emptyFolder, emptyFolder2;
@@ -209,7 +210,7 @@ var tests = [
 
       fooNode2 = result[result.length - 1];
 
-      assertEq(fooNode.title, fooNode2.title);
+      assertEq(fooNode.title + " (1)", fooNode2.title);
       assertEq(fooNode.url, fooNode2.url);
       assertEq(fooNode.parentId, fooNode2.parentId);
     }));
@@ -252,7 +253,7 @@ var tests = [
       assertEq(fooNode.title, last.title);
       assertEq(fooNode.url, last.url);
       assertEq(fooNode.parentId, last.parentId);
-      assertEq(last.title, last2.title);
+      assertEq(last.title + " (1)", last2.title);
       assertEq(last.url, last2.url);
       assertEq(last.parentId, last2.parentId);
 
@@ -294,6 +295,26 @@ var tests = [
     }));
   },
 
+  function clipboard6() {
+    // Verify that we can't cut managed folders.
+    bookmarks.getChildren('4', pass(function(result) {
+      assertEq(2, result.length);
+      const error = "Can't modify managed bookmarks.";
+      bookmarkManager.cut([ result[0].id ], fail(error));
+
+      // Copying is fine.
+      bookmarkManager.copy([ result[0].id ], pass());
+
+      // Pasting to a managed folder is not allowed.
+      assertTrue(result[1].url === undefined);
+      bookmarkManager.canPaste(result[1].id, pass(function(result) {
+        assertFalse(result, 'Should not be able to paste to managed folders.');
+      }));
+
+      bookmarkManager.paste(result[1].id, fail(error));
+    }));
+  },
+
   function canEdit() {
     bookmarkManager.canEdit(pass(function(result) {
       assertTrue(result, 'Should be able to edit bookmarks');
@@ -301,16 +322,83 @@ var tests = [
   },
 
   function getSetMetaInfo() {
-    bookmarkManager.getMetaInfo(nodeA.id, "meta", pass(function(result) {
+    bookmarkManager.getMetaInfo(nodeA.id, 'meta', pass(function(result) {
       assertTrue(!result);
     }));
     chrome.test.listenOnce(bookmarkManager.onMetaInfoChanged, pass(
-        function(id) {
+        function(id, changes) {
       assertEq(nodeA.id, id);
+      assertEq({meta: 'bla'}, changes);
+    }));
+    bookmarkManager.setMetaInfo(nodeA.id, 'meta', 'bla');
+    bookmarkManager.setMetaInfo(nodeA.id, 'meta2', 'foo');
+    bookmarkManager.getMetaInfo(nodeA.id, 'meta', pass(function(result) {
+      assertEq('bla', result);
+    }));
+
+    bookmarkManager.getMetaInfo(nodeA.id, pass(function(result) {
+      assertEq({meta: 'bla', meta2: 'foo'}, result);
+    }));
+  },
+
+  function setMetaInfoPermanent() {
+    bookmarks.getTree(pass(function(nodes) {
+      var unmodifiableFolder = nodes[0].children[0];
+      bookmarkManager.setMetaInfo(unmodifiableFolder.id, 'meta', 'foo', fail(
+          "Can't modify the root bookmark folders."));
+      bookmarkManager.updateMetaInfo(unmodifiableFolder.id, {a: 'a', b: 'b'},
+          fail("Can't modify the root bookmark folders."));
+    }));
+  },
+
+  function setMetaInfoManaged() {
+    bookmarks.getChildren('4', pass(function(result) {
+      assertTrue(result.length > 0);
+      bookmarkManager.setMetaInfo(result[0].id, 'meta', 'foo', fail(
+          "Can't modify managed bookmarks."));
+      bookmarkManager.updateMetaInfo(result[0].id, {a: 'a', b: 'b'},
+          fail("Can't modify managed bookmarks."));
+    }));
+  },
+
+  function updateMetaInfo() {
+    bookmarkManager.getMetaInfo(nodeB.id, pass(function(result){
+      assertEq({}, result);
+    }));
+
+    chrome.test.listenOnce(bookmarkManager.onMetaInfoChanged, pass(
+        function(id, changes) {
+      assertEq(nodeB.id, id);
+      assertEq({a: 'a', b: 'b', c: 'c'}, changes);
+    }));
+    bookmarkManager.updateMetaInfo(nodeB.id, {a: 'a', b: 'b', c: 'c'}, pass(
+        function() {
+      chrome.test.listenOnce(bookmarkManager.onMetaInfoChanged, pass(
+          function(id, changes) {
+        assertEq(nodeB.id, id);
+        assertEq({a: 'aa', d: 'd'}, changes);
+      }));
+      bookmarkManager.updateMetaInfo(nodeB.id, {a: 'aa', b: 'b', d: 'd'});
+      bookmarkManager.getMetaInfo(nodeB.id, pass(function(result) {
+        assertEq({a: 'aa', b: 'b', c: 'c', d: 'd'}, result);
+      }));
+    }));
+  },
+
+  function createWithMetaInfo() {
+    var node = {title: 'title', url: 'http://www.google.com/'};
+    var metaInfo = {a: 'a', b: 'b'};
+    chrome.test.listenOnce(bookmarks.onCreated, pass(function(id, created) {
+      assertEq(node.title, created.title);
+      assertEq(node.url, created.url);
+      bookmarkManager.getMetaInfo(id, pass(function(result) {
+        assertEq(metaInfo, result);
+      }));
     }));
-    bookmarkManager.setMetaInfo(nodeA.id, "meta", "bla");
-    bookmarkManager.getMetaInfo(nodeA.id, "meta", pass(function(result) {
-      assertEq("bla", result);
+    bookmarkManager.createWithMetaInfo(node, metaInfo, pass(
+        function(createdNode) {
+      assertEq(node.title, createdNode.title);
+      assertEq(node.url, createdNode.url);
     }));
   }
 ];