Chromium Code Reviews| Index: components/bookmarks/browser/bookmark_node_data_unittest.cc |
| diff --git a/components/bookmarks/browser/bookmark_node_data_unittest.cc b/components/bookmarks/browser/bookmark_node_data_unittest.cc |
| index 4e93fa298d21e7d20f3b008b2a4f3c52bdd43cf8..8c90f16ba648181643d7a63cd0f8e525161062d5 100644 |
| --- a/components/bookmarks/browser/bookmark_node_data_unittest.cc |
| +++ b/components/bookmarks/browser/bookmark_node_data_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include "base/basictypes.h" |
| #include "base/files/scoped_temp_dir.h" |
| #include "base/memory/scoped_ptr.h" |
| +#include "base/message_loop/message_loop.h" |
| #include "base/strings/string16.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "components/bookmarks/browser/bookmark_model.h" |
| @@ -12,6 +13,7 @@ |
| #include "components/bookmarks/test/bookmark_test_helpers.h" |
| #include "components/bookmarks/test/test_bookmark_client.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/base/clipboard/clipboard.h" |
| #include "ui/base/dragdrop/os_exchange_data.h" |
| #include "ui/events/platform/platform_event_source.h" |
| #include "url/gurl.h" |
| @@ -37,6 +39,7 @@ class BookmarkNodeDataTest : public testing::Test { |
| event_source_.reset(); |
| bool success = profile_dir_.Delete(); |
| ASSERT_TRUE(success); |
| + ui::Clipboard::DestroyClipboardForCurrentThread(); |
| } |
| const base::FilePath& GetProfilePath() const { return profile_dir_.path(); } |
| @@ -44,10 +47,13 @@ class BookmarkNodeDataTest : public testing::Test { |
| BookmarkModel* model() { return model_.get(); } |
| private: |
| + Clipboard& clipboard() { return *ui::Clipboard::GetForCurrentThread(); } |
| + |
| base::ScopedTempDir profile_dir_; |
| TestBookmarkClient client_; |
| scoped_ptr<BookmarkModel> model_; |
| scoped_ptr<ui::PlatformEventSource> event_source_; |
| + base::MessageLoopForUI loop_; |
| DISALLOW_COPY_AND_ASSIGN(BookmarkNodeDataTest); |
| }; |
| @@ -269,6 +275,104 @@ TEST_F(BookmarkNodeDataTest, MultipleNodes) { |
| EXPECT_TRUE(read_data.GetFirstNode(model(), GetProfilePath()) == NULL); |
| } |
| +TEST_F(BookmarkNodeDataTest, WriteToClipboardURL) { |
| + BookmarkNodeData data; |
| + GURL url(GURL("http://foo.com")); |
| + const base::string16 title(ASCIIToUTF16("blah")); |
| + |
| + data.ReadFromTuple(url, title); |
| + data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); |
| + |
| + // Now read the data back in. |
| + base::string16 clipboard_result; |
| + clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); |
| + EXPECT_EQ(UTF8ToUTF16(url.spec()), clipboard_result); |
| +} |
| + |
| +TEST_F(BookmarkNodeDataTest, WriteToClipboardMultipleURLs) { |
| + BookmarkNodeData data; |
| + const BookmarkNode* root = model()->bookmark_bar_node(); |
| + GURL url(GURL("http://foo.com")); |
| + const base::string16 title(ASCIIToUTF16("blah")); |
| + GURL url2(GURL("http://bar.com")); |
| + const base::string16 title2(ASCIIToUTF16("blah2")); |
| + const BookmarkNode* url_node = model()->AddURL(root, 0, title, url); |
| + const BookmarkNode* url_node2 = model()->AddURL(root, 1, title2, url2); |
| + std::vector<const BookmarkNode*> nodes; |
| + nodes.push_back(url_node); |
| + nodes.push_back(url_node2); |
| + |
| + data.ReadFromVector(nodes); |
| + data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); |
| + |
| + // Now read the data back in. |
| + base::string16 combined_text; |
| + base::string16 new_line = base::ASCIIToUTF16("\n"); |
| + combined_text = UTF8ToUTF16(url.spec()) + new_line |
| + + UTF8ToUTF16(url2.spec()); |
| + base::string16 clipboard_result; |
| + clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); |
| + EXPECT_EQ(combined_text, clipboard_result); |
| +} |
| + |
| +TEST_F(BookmarkNodeDataTest, WriteToClipboardEmptyFolder) { |
| + BookmarkNodeData data; |
| + const BookmarkNode* root = model()->bookmark_bar_node(); |
| + const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); |
| + std::vector<const BookmarkNode*> nodes; |
| + nodes.push_back(folder); |
| + |
| + data.ReadFromVector(nodes); |
| + data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); |
| + |
| + // Now read the data back in. |
| + base::string16 clipboard_result; |
| + clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); |
| + EXPECT_EQ(ASCIIToUTF16("g1"), clipboard_result); |
| +} |
| + |
| +TEST_F(BookmarkNodeDataTest, WriteToClipboardFolderWithChildren) { |
| + BookmarkNodeData data; |
| + const BookmarkNode* root = model()->bookmark_bar_node(); |
| + const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); |
| + GURL url(GURL("http://foo.com")); |
| + const base::string16 title(ASCIIToUTF16("blah")); |
| + const BookmarkNode* url_node = model()->AddURL(folder, 0, title, url); |
| + std::vector<const BookmarkNode*> nodes; |
| + nodes.push_back(folder); |
| + |
| + data.ReadFromVector(nodes); |
| + data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); |
| + |
| + // Now read the data back in. |
| + base::string16 clipboard_result; |
| + clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); |
| + EXPECT_EQ(ASCIIToUTF16("g1"), clipboard_result); |
| +} |
| + |
| +TEST_F(BookmarkNodeDataTest, WriteToClipboardFolderAndURL) { |
|
sky
2014/10/21 00:07:16
This is the only test that hits your code, right?
|
| + BookmarkNodeData data; |
| + GURL url(GURL("http://foo.com")); |
| + const base::string16 title(ASCIIToUTF16("blah")); |
| + const BookmarkNode* root = model()->bookmark_bar_node(); |
| + const BookmarkNode* url_node = model()->AddURL(root, 0, title, url); |
| + const BookmarkNode* folder = model()->AddFolder(root, 0, ASCIIToUTF16("g1")); |
| + std::vector<const BookmarkNode*> nodes; |
| + nodes.push_back(url_node); |
| + nodes.push_back(folder); |
| + |
| + data.ReadFromVector(nodes); |
| + data.WriteToClipboard(ui::CLIPBOARD_TYPE_COPY_PASTE); |
| + |
| + // Now read the data back in. |
| + base::string16 combined_text; |
| + base::string16 new_line = base::ASCIIToUTF16("\n"); |
| + combined_text = title + new_line + ASCIIToUTF16(url.spec()); |
| + base::string16 clipboard_result; |
| + clipboard().ReadText(CLIPBOARD_TYPE_COPY_PASTE, &clipboard_result); |
| + EXPECT_EQ(combined_text, clipboard_result); |
| +} |
| + |
| // Tests reading/writing of meta info. |
| TEST_F(BookmarkNodeDataTest, MetaInfo) { |
| // Create a node containing meta info. |