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

Side by Side Diff: chrome/browser/bookmarks/bookmark_model_unittest.cc

Issue 8598015: Do not allow multiline input when naming bookmarks/folders on Mac (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: rebase to LKGR to see if it fixes mac trybot Created 9 years, 1 month 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/browser/bookmarks/bookmark_model.cc ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <set> 5 #include <set>
6 #include <string> 6 #include <string>
7 7
8 #include "base/base_paths.h" 8 #include "base/base_paths.h"
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 23 matching lines...) Expand all
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
35 #include "ui/base/models/tree_node_iterator.h" 35 #include "ui/base/models/tree_node_iterator.h"
36 #include "ui/base/models/tree_node_model.h" 36 #include "ui/base/models/tree_node_model.h"
37 37
38 using base::Time; 38 using base::Time;
39 using base::TimeDelta; 39 using base::TimeDelta;
40 using content::BrowserThread; 40 using content::BrowserThread;
41 41
42 namespace { 42 namespace {
43 43
44 // Test cases used to test the removal of extra whitespace when adding
45 // a new folder/bookmark or updating a title of a folder/bookmark.
46 struct {
47 const std::string input_title;
48 const std::string expected_title;
49 } test_cases[] = {
50 {"foobar", "foobar"},
51 // Newlines.
52 {"foo\nbar", "foo bar"},
53 {"foo\n\nbar", "foo bar"},
54 {"foo\n\n\nbar", "foo bar"},
55 {"foo\r\nbar", "foo bar"},
56 {"foo\r\n\r\nbar", "foo bar"},
57 {"\nfoo\nbar\n", "foo bar"},
58 // Spaces.
59 {"foo bar", "foo bar"},
60 {" foo bar ", "foo bar"},
61 {" foo bar ", "foo bar"},
62 // Tabs.
63 {"\tfoo\tbar\t", "foo bar"},
64 {"\tfoo bar\t", "foo bar"},
65 // Mixed cases.
66 {"\tfoo\nbar\t", "foo bar"},
67 {"\tfoo\r\nbar\t", "foo bar"},
68 {" foo\tbar\n", "foo bar"},
69 {"\t foo \t bar \t", "foo bar"},
70 {"\n foo\r\n\tbar\n \t", "foo bar"},
71 };
Ilya Sherman 2011/11/22 21:00:35 nit: Since you're declaring this outside of the te
72
44 // Helper to get a mutable bookmark node. 73 // Helper to get a mutable bookmark node.
45 BookmarkNode* AsMutable(const BookmarkNode* node) { 74 BookmarkNode* AsMutable(const BookmarkNode* node) {
46 return const_cast<BookmarkNode*>(node); 75 return const_cast<BookmarkNode*>(node);
47 } 76 }
48 77
49 void SwapDateAdded(BookmarkNode* n1, BookmarkNode* n2) { 78 void SwapDateAdded(BookmarkNode* n1, BookmarkNode* n2) {
50 Time tmp = n1->date_added(); 79 Time tmp = n1->date_added();
51 n1->set_date_added(n2->date_added()); 80 n1->set_date_added(n2->date_added());
52 n2->set_date_added(tmp); 81 n2->set_date_added(tmp);
53 } 82 }
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 ASSERT_EQ(title, new_node->GetTitle()); 234 ASSERT_EQ(title, new_node->GetTitle());
206 ASSERT_TRUE(url == new_node->url()); 235 ASSERT_TRUE(url == new_node->url());
207 ASSERT_EQ(BookmarkNode::URL, new_node->type()); 236 ASSERT_EQ(BookmarkNode::URL, new_node->type());
208 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url)); 237 ASSERT_TRUE(new_node == model_.GetMostRecentlyAddedNodeForURL(url));
209 238
210 EXPECT_TRUE(new_node->id() != root->id() && 239 EXPECT_TRUE(new_node->id() != root->id() &&
211 new_node->id() != model_.other_node()->id() && 240 new_node->id() != model_.other_node()->id() &&
212 new_node->id() != model_.synced_node()->id()); 241 new_node->id() != model_.synced_node()->id());
213 } 242 }
214 243
244 TEST_F(BookmarkModelTest, AddURLWithWhitespaceTitle) {
245 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
246 const BookmarkNode* root = model_.bookmark_bar_node();
247 const string16 title(ASCIIToUTF16(test_cases[i].input_title));
248 const GURL url("http://foo.com");
249
250 const BookmarkNode* new_node = model_.AddURL(root, i, title, url);
251
252 int size = i + 1;
253 EXPECT_EQ(size, root->child_count());
254 EXPECT_EQ(ASCIIToUTF16(test_cases[i].expected_title), new_node->GetTitle());
255 EXPECT_EQ(BookmarkNode::URL, new_node->type());
256 }
257 }
258
215 TEST_F(BookmarkModelTest, AddURLToSyncedBookmarks) { 259 TEST_F(BookmarkModelTest, AddURLToSyncedBookmarks) {
216 const BookmarkNode* root = model_.synced_node(); 260 const BookmarkNode* root = model_.synced_node();
217 const string16 title(ASCIIToUTF16("foo")); 261 const string16 title(ASCIIToUTF16("foo"));
218 const GURL url("http://foo.com"); 262 const GURL url("http://foo.com");
219 263
220 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url); 264 const BookmarkNode* new_node = model_.AddURL(root, 0, title, url);
221 AssertObserverCount(1, 0, 0, 0, 0); 265 AssertObserverCount(1, 0, 0, 0, 0);
222 observer_details_.ExpectEquals(root, NULL, 0, -1); 266 observer_details_.ExpectEquals(root, NULL, 0, -1);
223 267
224 ASSERT_EQ(1, root->child_count()); 268 ASSERT_EQ(1, root->child_count());
(...skipping 23 matching lines...) Expand all
248 new_node->id() != model_.other_node()->id() && 292 new_node->id() != model_.other_node()->id() &&
249 new_node->id() != model_.synced_node()->id()); 293 new_node->id() != model_.synced_node()->id());
250 294
251 // Add another folder, just to make sure folder_ids are incremented correctly. 295 // Add another folder, just to make sure folder_ids are incremented correctly.
252 ClearCounts(); 296 ClearCounts();
253 model_.AddFolder(root, 0, title); 297 model_.AddFolder(root, 0, title);
254 AssertObserverCount(1, 0, 0, 0, 0); 298 AssertObserverCount(1, 0, 0, 0, 0);
255 observer_details_.ExpectEquals(root, NULL, 0, -1); 299 observer_details_.ExpectEquals(root, NULL, 0, -1);
256 } 300 }
257 301
302 TEST_F(BookmarkModelTest, AddFolderWithWhitespaceTitle) {
303 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
304 const BookmarkNode* root = model_.bookmark_bar_node();
305 const string16 title(ASCIIToUTF16(test_cases[i].input_title));
306
307 const BookmarkNode* new_node = model_.AddFolder(root, i, title);
308
309 int size = i + 1;
310 EXPECT_EQ(size, root->child_count());
311 EXPECT_EQ(ASCIIToUTF16(test_cases[i].expected_title), new_node->GetTitle());
312 EXPECT_EQ(BookmarkNode::FOLDER, new_node->type());
313 }
314 }
315
258 TEST_F(BookmarkModelTest, RemoveURL) { 316 TEST_F(BookmarkModelTest, RemoveURL) {
259 const BookmarkNode* root = model_.bookmark_bar_node(); 317 const BookmarkNode* root = model_.bookmark_bar_node();
260 const string16 title(ASCIIToUTF16("foo")); 318 const string16 title(ASCIIToUTF16("foo"));
261 const GURL url("http://foo.com"); 319 const GURL url("http://foo.com");
262 model_.AddURL(root, 0, title, url); 320 model_.AddURL(root, 0, title, url);
263 ClearCounts(); 321 ClearCounts();
264 322
265 model_.Remove(root, 0); 323 model_.Remove(root, 0);
266 ASSERT_EQ(0, root->child_count()); 324 ASSERT_EQ(0, root->child_count());
267 AssertObserverCount(0, 0, 1, 0, 0); 325 AssertObserverCount(0, 0, 1, 0, 0);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 360
303 ClearCounts(); 361 ClearCounts();
304 362
305 title = ASCIIToUTF16("foo2"); 363 title = ASCIIToUTF16("foo2");
306 model_.SetTitle(node, title); 364 model_.SetTitle(node, title);
307 AssertObserverCount(0, 0, 0, 1, 0); 365 AssertObserverCount(0, 0, 0, 1, 0);
308 observer_details_.ExpectEquals(node, NULL, -1, -1); 366 observer_details_.ExpectEquals(node, NULL, -1, -1);
309 EXPECT_EQ(title, node->GetTitle()); 367 EXPECT_EQ(title, node->GetTitle());
310 } 368 }
311 369
370 TEST_F(BookmarkModelTest, SetTitleWithWhitespace) {
371 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
372 const BookmarkNode* root = model_.bookmark_bar_node();
373 string16 title(ASCIIToUTF16("dummy"));
374 const GURL url("http://foo.com");
375 const BookmarkNode* node = model_.AddURL(root, 0, title, url);
376
377 title = ASCIIToUTF16(test_cases[i].input_title);
378 model_.SetTitle(node, title);
379 EXPECT_EQ(ASCIIToUTF16(test_cases[i].expected_title), node->GetTitle());
380 }
381 }
382
312 TEST_F(BookmarkModelTest, SetURL) { 383 TEST_F(BookmarkModelTest, SetURL) {
313 const BookmarkNode* root = model_.bookmark_bar_node(); 384 const BookmarkNode* root = model_.bookmark_bar_node();
314 const string16 title(ASCIIToUTF16("foo")); 385 const string16 title(ASCIIToUTF16("foo"));
315 GURL url("http://foo.com"); 386 GURL url("http://foo.com");
316 const BookmarkNode* node = model_.AddURL(root, 0, title, url); 387 const BookmarkNode* node = model_.AddURL(root, 0, title, url);
317 388
318 ClearCounts(); 389 ClearCounts();
319 390
320 url = GURL("http://foo2.com"); 391 url = GURL("http://foo2.com");
321 model_.SetURL(node, url); 392 model_.SetURL(node, url);
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
1030 TEST_F(BookmarkModelTest, SyncNodeVisibileWithChildren) { 1101 TEST_F(BookmarkModelTest, SyncNodeVisibileWithChildren) {
1031 const BookmarkNode* root = model_.synced_node(); 1102 const BookmarkNode* root = model_.synced_node();
1032 const string16 title(ASCIIToUTF16("foo")); 1103 const string16 title(ASCIIToUTF16("foo"));
1033 const GURL url("http://foo.com"); 1104 const GURL url("http://foo.com");
1034 1105
1035 model_.AddURL(root, 0, title, url); 1106 model_.AddURL(root, 0, title, url);
1036 EXPECT_TRUE(model_.synced_node()->IsVisible()); 1107 EXPECT_TRUE(model_.synced_node()->IsVisible());
1037 } 1108 }
1038 1109
1039 } // namespace 1110 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698