Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/files/scoped_temp_dir.h" | 6 #include "base/files/scoped_temp_dir.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/strings/string16.h" | 8 #include "base/strings/string16.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "components/bookmarks/browser/bookmark_model.h" | 10 #include "components/bookmarks/browser/bookmark_model.h" |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 262 read_data.GetNodes(model(), GetProfilePath()); | 262 read_data.GetNodes(model(), GetProfilePath()); |
| 263 ASSERT_EQ(2u, read_nodes.size()); | 263 ASSERT_EQ(2u, read_nodes.size()); |
| 264 EXPECT_TRUE(read_nodes[0] == folder); | 264 EXPECT_TRUE(read_nodes[0] == folder); |
| 265 EXPECT_TRUE(read_nodes[1] == url_node); | 265 EXPECT_TRUE(read_nodes[1] == url_node); |
| 266 | 266 |
| 267 // Asking for the first node should return NULL with more than one element | 267 // Asking for the first node should return NULL with more than one element |
| 268 // present. | 268 // present. |
| 269 EXPECT_TRUE(read_data.GetFirstNode(model(), GetProfilePath()) == NULL); | 269 EXPECT_TRUE(read_data.GetFirstNode(model(), GetProfilePath()) == NULL); |
| 270 } | 270 } |
| 271 | 271 |
| 272 TEST_F(BookmarkNodeDataTest, WriteToClipboardURL) { | |
|
sky
2014/10/16 16:04:06
Does this inject a fake clipboard so that the test
| |
| 273 BookmarkNodeData data; | |
| 274 GURL url(GURL("http://foo.com")); | |
| 275 const base::string16 title(ASCIIToUTF16("blah")); | |
| 276 | |
| 277 // Write to clipboard | |
| 278 data.ReadFromTuple(url, title); | |
| 279 data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 280 | |
| 281 // Now read the data back in. | |
| 282 BookmarkNodeData read_data; | |
| 283 read_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 284 ASSERT_EQ(1u, read_data.elements.size()); | |
| 285 EXPECT_TRUE(read_data.elements[0].is_url); | |
| 286 EXPECT_EQ(url, read_data.elements[0].url); | |
| 287 EXPECT_EQ(title, read_data.elements[0].title); | |
| 288 } | |
| 289 | |
| 290 TEST_F(BookmarkNodeDataTest, WriteToClipboardMultipleURLs) { | |
| 291 BookmarkNodeData data; | |
| 292 const BookmarkNode* root = model()->bookmark_bar_node(); | |
| 293 GURL url(GURL("http://foo.com")); | |
| 294 const base::string16 title(ASCIIToUTF16("blah")); | |
| 295 GURL url2(GURL("http://bar.com")); | |
| 296 const base::string16 title2(ASCIIToUTF16("blah2")); | |
| 297 const BookmarkNode* url_node = model()->AddURL(root, 0, title, url); | |
| 298 const BookmarkNode* url_node2 = model()->AddURL(root, 1, title2, url2); | |
| 299 std::vector<const BookmarkNode*> nodes; | |
| 300 nodes.push_back(url_node); | |
| 301 nodes.push_back(url_node2); | |
| 302 | |
| 303 // Write to clipboard | |
| 304 data.ReadFromVector(nodes); | |
| 305 data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 306 | |
| 307 // Now read the data back in. | |
| 308 BookmarkNodeData read_data; | |
| 309 read_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 310 ASSERT_EQ(2u, read_data.elements.size()); | |
| 311 EXPECT_TRUE(read_data.elements[0].is_url); | |
| 312 EXPECT_EQ(url, read_data.elements[0].url); | |
| 313 EXPECT_TRUE(read_data.elements[1].is_url); | |
| 314 EXPECT_EQ(url2, read_data.elements[1].url); | |
| 315 } | |
| 316 | |
| 317 TEST_F(BookmarkNodeDataTest, WriteToClipboardEmptyFolder) { | |
| 318 BookmarkNodeData data; | |
| 319 const BookmarkNode* root = model()->bookmark_bar_node(); | |
| 320 const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); | |
| 321 std::vector<const BookmarkNode*> nodes; | |
| 322 nodes.push_back(folder); | |
| 323 | |
| 324 // Write to clipboard | |
| 325 data.ReadFromVector(nodes); | |
| 326 data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 327 | |
| 328 // Now read the data back in. | |
| 329 BookmarkNodeData read_data; | |
| 330 read_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 331 ASSERT_EQ(1u, read_data.elements.size()); | |
| 332 EXPECT_FALSE(read_data.elements[0].is_url); | |
| 333 EXPECT_EQ(ASCIIToUTF16("g1"), read_data.elements[0].title); | |
| 334 } | |
| 335 | |
| 336 TEST_F(BookmarkNodeDataTest, WriteToClipboardFolderWithChildren) { | |
| 337 BookmarkNodeData data; | |
| 338 const BookmarkNode* root = model()->bookmark_bar_node(); | |
| 339 const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); | |
| 340 GURL url(GURL("http://foo.com")); | |
| 341 const base::string16 title(ASCIIToUTF16("blah")); | |
| 342 const BookmarkNode* url_node = model()->AddURL(folder, 0, title, url); | |
| 343 std::vector<const BookmarkNode*> nodes; | |
| 344 nodes.push_back(folder); | |
| 345 | |
| 346 // Write to clipboard | |
| 347 data.ReadFromVector(nodes); | |
| 348 data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 349 | |
| 350 // Now read the data back in. | |
| 351 BookmarkNodeData read_data; | |
| 352 read_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 353 ASSERT_EQ(1u, read_data.elements.size()); | |
| 354 EXPECT_FALSE(read_data.elements[0].is_url); | |
| 355 EXPECT_EQ(ASCIIToUTF16("g1"), read_data.elements[0].title); | |
| 356 } | |
| 357 | |
| 358 TEST_F(BookmarkNodeDataTest, WriteToClipboardFolderAndURL) { | |
| 359 BookmarkNodeData data; | |
| 360 GURL url(GURL("http://foo.com")); | |
| 361 const base::string16 title(ASCIIToUTF16("blah")); | |
| 362 const BookmarkNode* root = model()->bookmark_bar_node(); | |
| 363 const BookmarkNode* url_node = model()->AddURL(root, 0, title, url); | |
| 364 const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); | |
| 365 std::vector<const BookmarkNode*> nodes; | |
| 366 nodes.push_back(url_node); | |
| 367 nodes.push_back(folder); | |
| 368 | |
| 369 // Write to clipboard | |
| 370 data.ReadFromVector(nodes); | |
| 371 data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 372 | |
| 373 // Now read the data back in. | |
| 374 BookmarkNodeData read_data; | |
| 375 read_data.ReadFromClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); | |
| 376 ASSERT_EQ(2u, read_data.elements.size()); | |
| 377 EXPECT_TRUE(read_data.elements[0].is_url); | |
| 378 EXPECT_EQ(url, read_data.elements[0].url); | |
| 379 EXPECT_FALSE(read_data.elements[1].is_url); | |
| 380 EXPECT_EQ(ASCIIToUTF16("g1"), read_data.elements[1].title); | |
| 381 } | |
| 382 | |
| 272 // Tests reading/writing of meta info. | 383 // Tests reading/writing of meta info. |
| 273 TEST_F(BookmarkNodeDataTest, MetaInfo) { | 384 TEST_F(BookmarkNodeDataTest, MetaInfo) { |
| 274 // Create a node containing meta info. | 385 // Create a node containing meta info. |
| 275 const BookmarkNode* node = model()->AddURL(model()->other_node(), | 386 const BookmarkNode* node = model()->AddURL(model()->other_node(), |
| 276 0, | 387 0, |
| 277 ASCIIToUTF16("foo bar"), | 388 ASCIIToUTF16("foo bar"), |
| 278 GURL("http://www.google.com")); | 389 GURL("http://www.google.com")); |
| 279 model()->SetNodeMetaInfo(node, "somekey", "somevalue"); | 390 model()->SetNodeMetaInfo(node, "somekey", "somevalue"); |
| 280 model()->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); | 391 model()->SetNodeMetaInfo(node, "someotherkey", "someothervalue"); |
| 281 | 392 |
| 282 BookmarkNodeData node_data(node); | 393 BookmarkNodeData node_data(node); |
| 283 ui::OSExchangeData data; | 394 ui::OSExchangeData data; |
| 284 node_data.Write(GetProfilePath(), &data); | 395 node_data.Write(GetProfilePath(), &data); |
| 285 | 396 |
| 286 // Read the data back in. | 397 // Read the data back in. |
| 287 ui::OSExchangeData data2(CloneProvider(data)); | 398 ui::OSExchangeData data2(CloneProvider(data)); |
| 288 BookmarkNodeData read_data; | 399 BookmarkNodeData read_data; |
| 289 EXPECT_TRUE(read_data.Read(data2)); | 400 EXPECT_TRUE(read_data.Read(data2)); |
| 290 EXPECT_TRUE(read_data.is_valid()); | 401 EXPECT_TRUE(read_data.is_valid()); |
| 291 ASSERT_EQ(1u, read_data.elements.size()); | 402 ASSERT_EQ(1u, read_data.elements.size()); |
| 292 | 403 |
| 293 // Verify that the read data contains the same meta info. | 404 // Verify that the read data contains the same meta info. |
| 294 BookmarkNode::MetaInfoMap meta_info_map = read_data.elements[0].meta_info_map; | 405 BookmarkNode::MetaInfoMap meta_info_map = read_data.elements[0].meta_info_map; |
| 295 EXPECT_EQ(2u, meta_info_map.size()); | 406 EXPECT_EQ(2u, meta_info_map.size()); |
| 296 EXPECT_EQ("somevalue", meta_info_map["somekey"]); | 407 EXPECT_EQ("somevalue", meta_info_map["somekey"]); |
| 297 EXPECT_EQ("someothervalue", meta_info_map["someotherkey"]); | 408 EXPECT_EQ("someothervalue", meta_info_map["someotherkey"]); |
| 298 } | 409 } |
| 299 | 410 |
| 300 } // namespace bookmarks | 411 } // namespace bookmarks |
| OLD | NEW |