| Index: chrome/browser/bookmarks/bookmark_model_unittest.cc
|
| diff --git a/chrome/browser/bookmarks/bookmark_model_unittest.cc b/chrome/browser/bookmarks/bookmark_model_unittest.cc
|
| index 8491b710ab918879b68e590884ba695128cf2123..1f7449a1d8038b9d455467d745af92429bbdfb5e 100644
|
| --- a/chrome/browser/bookmarks/bookmark_model_unittest.cc
|
| +++ b/chrome/browser/bookmarks/bookmark_model_unittest.cc
|
| @@ -41,6 +41,35 @@ using content::BrowserThread;
|
|
|
| namespace {
|
|
|
| +// Test cases used to test the removal of extra whitespace when adding
|
| +// a new folder/bookmark or updating a title of a folder/bookmark.
|
| +static struct {
|
| + const std::string input_title;
|
| + const std::string expected_title;
|
| +} whitespace_test_cases[] = {
|
| + {"foobar", "foobar"},
|
| + // Newlines.
|
| + {"foo\nbar", "foo bar"},
|
| + {"foo\n\nbar", "foo bar"},
|
| + {"foo\n\n\nbar", "foo bar"},
|
| + {"foo\r\nbar", "foo bar"},
|
| + {"foo\r\n\r\nbar", "foo bar"},
|
| + {"\nfoo\nbar\n", "foo bar"},
|
| + // Spaces.
|
| + {"foo bar", "foo bar"},
|
| + {" foo bar ", "foo bar"},
|
| + {" foo bar ", "foo bar"},
|
| + // Tabs.
|
| + {"\tfoo\tbar\t", "foo bar"},
|
| + {"\tfoo bar\t", "foo bar"},
|
| + // Mixed cases.
|
| + {"\tfoo\nbar\t", "foo bar"},
|
| + {"\tfoo\r\nbar\t", "foo bar"},
|
| + {" foo\tbar\n", "foo bar"},
|
| + {"\t foo \t bar \t", "foo bar"},
|
| + {"\n foo\r\n\tbar\n \t", "foo bar"},
|
| +};
|
| +
|
| // Helper to get a mutable bookmark node.
|
| BookmarkNode* AsMutable(const BookmarkNode* node) {
|
| return const_cast<BookmarkNode*>(node);
|
| @@ -212,6 +241,22 @@ TEST_F(BookmarkModelTest, AddURL) {
|
| new_node->id() != model_.synced_node()->id());
|
| }
|
|
|
| +TEST_F(BookmarkModelTest, AddURLWithWhitespaceTitle) {
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(whitespace_test_cases); ++i) {
|
| + const BookmarkNode* root = model_.bookmark_bar_node();
|
| + const string16 title(ASCIIToUTF16(whitespace_test_cases[i].input_title));
|
| + const GURL url("http://foo.com");
|
| +
|
| + const BookmarkNode* new_node = model_.AddURL(root, i, title, url);
|
| +
|
| + int size = i + 1;
|
| + EXPECT_EQ(size, root->child_count());
|
| + EXPECT_EQ(ASCIIToUTF16(whitespace_test_cases[i].expected_title),
|
| + new_node->GetTitle());
|
| + EXPECT_EQ(BookmarkNode::URL, new_node->type());
|
| + }
|
| +}
|
| +
|
| TEST_F(BookmarkModelTest, AddURLToSyncedBookmarks) {
|
| const BookmarkNode* root = model_.synced_node();
|
| const string16 title(ASCIIToUTF16("foo"));
|
| @@ -255,6 +300,21 @@ TEST_F(BookmarkModelTest, AddFolder) {
|
| observer_details_.ExpectEquals(root, NULL, 0, -1);
|
| }
|
|
|
| +TEST_F(BookmarkModelTest, AddFolderWithWhitespaceTitle) {
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(whitespace_test_cases); ++i) {
|
| + const BookmarkNode* root = model_.bookmark_bar_node();
|
| + const string16 title(ASCIIToUTF16(whitespace_test_cases[i].input_title));
|
| +
|
| + const BookmarkNode* new_node = model_.AddFolder(root, i, title);
|
| +
|
| + int size = i + 1;
|
| + EXPECT_EQ(size, root->child_count());
|
| + EXPECT_EQ(ASCIIToUTF16(whitespace_test_cases[i].expected_title),
|
| + new_node->GetTitle());
|
| + EXPECT_EQ(BookmarkNode::FOLDER, new_node->type());
|
| + }
|
| +}
|
| +
|
| TEST_F(BookmarkModelTest, RemoveURL) {
|
| const BookmarkNode* root = model_.bookmark_bar_node();
|
| const string16 title(ASCIIToUTF16("foo"));
|
| @@ -309,6 +369,20 @@ TEST_F(BookmarkModelTest, SetTitle) {
|
| EXPECT_EQ(title, node->GetTitle());
|
| }
|
|
|
| +TEST_F(BookmarkModelTest, SetTitleWithWhitespace) {
|
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(whitespace_test_cases); ++i) {
|
| + const BookmarkNode* root = model_.bookmark_bar_node();
|
| + string16 title(ASCIIToUTF16("dummy"));
|
| + const GURL url("http://foo.com");
|
| + const BookmarkNode* node = model_.AddURL(root, 0, title, url);
|
| +
|
| + title = ASCIIToUTF16(whitespace_test_cases[i].input_title);
|
| + model_.SetTitle(node, title);
|
| + EXPECT_EQ(ASCIIToUTF16(whitespace_test_cases[i].expected_title),
|
| + node->GetTitle());
|
| + }
|
| +}
|
| +
|
| TEST_F(BookmarkModelTest, SetURL) {
|
| const BookmarkNode* root = model_.bookmark_bar_node();
|
| const string16 title(ASCIIToUTF16("foo"));
|
|
|