| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ui/views/bookmarks/bookmark_editor_view.h" | 5 #include "chrome/browser/ui/views/bookmarks/bookmark_editor_view.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 | 66 |
| 67 void SetTitleText(const base::string16& title) { | 67 void SetTitleText(const base::string16& title) { |
| 68 editor_->title_tf_->SetText(title); | 68 editor_->title_tf_->SetText(title); |
| 69 } | 69 } |
| 70 | 70 |
| 71 void SetURLText(const base::string16& text) { | 71 void SetURLText(const base::string16& text) { |
| 72 if (editor_->details_.type != BookmarkEditor::EditDetails::NEW_FOLDER) | 72 if (editor_->details_.type != BookmarkEditor::EditDetails::NEW_FOLDER) |
| 73 editor_->url_tf_->SetText(text); | 73 editor_->url_tf_->SetText(text); |
| 74 } | 74 } |
| 75 | 75 |
| 76 base::string16 GetURLText() const { |
| 77 if (editor_->details_.type != BookmarkEditor::EditDetails::NEW_FOLDER) |
| 78 return editor_->url_tf_->text(); |
| 79 |
| 80 return base::string16(); |
| 81 } |
| 82 |
| 76 void ApplyEdits() { | 83 void ApplyEdits() { |
| 77 editor_->ApplyEdits(); | 84 editor_->ApplyEdits(); |
| 78 } | 85 } |
| 79 | 86 |
| 80 void ApplyEdits(BookmarkEditorView::EditorNode* node) { | 87 void ApplyEdits(BookmarkEditorView::EditorNode* node) { |
| 81 editor_->ApplyEdits(node); | 88 editor_->ApplyEdits(node); |
| 82 } | 89 } |
| 83 | 90 |
| 84 BookmarkEditorView::EditorNode* AddNewFolder( | 91 BookmarkEditorView::EditorNode* AddNewFolder( |
| 85 BookmarkEditorView::EditorNode* parent) { | 92 BookmarkEditorView::EditorNode* parent) { |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 ApplyEdits(NULL); | 332 ApplyEdits(NULL); |
| 326 | 333 |
| 327 const BookmarkNode* other_node = model_->other_node(); | 334 const BookmarkNode* other_node = model_->other_node(); |
| 328 ASSERT_EQ(2, other_node->child_count()); | 335 ASSERT_EQ(2, other_node->child_count()); |
| 329 | 336 |
| 330 const BookmarkNode* new_node = other_node->GetChild(0); | 337 const BookmarkNode* new_node = other_node->GetChild(0); |
| 331 | 338 |
| 332 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); | 339 EXPECT_EQ(ASCIIToUTF16("new_a"), new_node->GetTitle()); |
| 333 } | 340 } |
| 334 | 341 |
| 342 // Edits the bookmark and ensures resulting URL keeps the same scheme, even |
| 343 // when userinfo is present in the URL |
| 344 TEST_F(BookmarkEditorViewTest, EditKeepsScheme) { |
| 345 const BookmarkNode* kBBNode = model_->bookmark_bar_node(); |
| 346 |
| 347 const GURL kUrl = GURL("http://javascript:scripttext@example.com/"); |
| 348 |
| 349 CreateEditor(profile_.get(), kBBNode, |
| 350 BookmarkEditor::EditDetails::AddNodeInFolder(kBBNode, 1, kUrl, |
| 351 base::string16()), |
| 352 BookmarkEditorView::SHOW_TREE); |
| 353 |
| 354 // We expect only the trailing / to be trimmed when userinfo is present |
| 355 EXPECT_EQ(ASCIIToUTF16(kUrl.spec()), GetURLText() + ASCIIToUTF16("/")); |
| 356 |
| 357 const base::string16& kTitle = ASCIIToUTF16("EditingKeepsScheme"); |
| 358 SetTitleText(kTitle); |
| 359 |
| 360 ApplyEdits(editor_tree_model()->GetRoot()->GetChild(0)); |
| 361 |
| 362 ASSERT_EQ(4, kBBNode->child_count()); |
| 363 |
| 364 const BookmarkNode* kNewNode = kBBNode->GetChild(1); |
| 365 |
| 366 EXPECT_EQ(kTitle, kNewNode->GetTitle()); |
| 367 EXPECT_EQ(kUrl, kNewNode->url()); |
| 368 } |
| 369 |
| 335 // Creates a new folder. | 370 // Creates a new folder. |
| 336 TEST_F(BookmarkEditorViewTest, NewFolder) { | 371 TEST_F(BookmarkEditorViewTest, NewFolder) { |
| 337 const BookmarkNode* bb_node = model_->bookmark_bar_node(); | 372 const BookmarkNode* bb_node = model_->bookmark_bar_node(); |
| 338 BookmarkEditor::EditDetails details = | 373 BookmarkEditor::EditDetails details = |
| 339 BookmarkEditor::EditDetails::AddFolder(bb_node, 1); | 374 BookmarkEditor::EditDetails::AddFolder(bb_node, 1); |
| 340 details.urls.push_back(std::make_pair(GURL(base_path() + "x"), | 375 details.urls.push_back(std::make_pair(GURL(base_path() + "x"), |
| 341 ASCIIToUTF16("z"))); | 376 ASCIIToUTF16("z"))); |
| 342 CreateEditor(profile_.get(), bb_node, details, BookmarkEditorView::SHOW_TREE); | 377 CreateEditor(profile_.get(), bb_node, details, BookmarkEditorView::SHOW_TREE); |
| 343 | 378 |
| 344 // The url field shouldn't be visible. | 379 // The url field shouldn't be visible. |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 ASSERT_TRUE(tree_view()->editor() != NULL); | 443 ASSERT_TRUE(tree_view()->editor() != NULL); |
| 409 tree_view()->editor()->SetText(ASCIIToUTF16("modified")); | 444 tree_view()->editor()->SetText(ASCIIToUTF16("modified")); |
| 410 ApplyEdits(); | 445 ApplyEdits(); |
| 411 | 446 |
| 412 // Verify the new folder was added and title set appropriately. | 447 // Verify the new folder was added and title set appropriately. |
| 413 ASSERT_EQ(1, parent->child_count()); | 448 ASSERT_EQ(1, parent->child_count()); |
| 414 const BookmarkNode* new_folder = parent->GetChild(0); | 449 const BookmarkNode* new_folder = parent->GetChild(0); |
| 415 ASSERT_TRUE(new_folder->is_folder()); | 450 ASSERT_TRUE(new_folder->is_folder()); |
| 416 EXPECT_EQ("modified", base::UTF16ToASCII(new_folder->GetTitle())); | 451 EXPECT_EQ("modified", base::UTF16ToASCII(new_folder->GetTitle())); |
| 417 } | 452 } |
| OLD | NEW |