Index: chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm b/chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm |
index dd3c442e8ac14ddda0545fc2fec6979c377e4ddd..7b122d1fe71cac7cdcd2e3f2c70091969f5f1c1c 100644 |
--- a/chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm |
+++ b/chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm |
@@ -9,6 +9,7 @@ |
#include <memory> |
#include <vector> |
+#include "base/strings/sys_string_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/chooser_controller/mock_chooser_controller.h" |
#import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" |
@@ -160,6 +161,26 @@ TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { |
EXPECT_EQ(-1, table_view_.selectedRow); |
} |
+TEST_F(ChooserDialogCocoaControllerTest, UpdateOption) { |
+ CreateChooserDialog(); |
+ |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ |
+ EXPECT_EQ(3, table_view_.numberOfRows); |
+ EXPECT_EQ(1, table_view_.numberOfColumns); |
+ ASSERT_TRUE(table_view_.enabled); |
+ EXPECT_EQ(-1, table_view_.selectedRow); |
+ |
+ NSCell* cell = [table_view_ preparedCellAtColumn:0 row:1]; |
+ EXPECT_EQ(base::ASCIIToUTF16("d"), |
+ base::SysNSStringToUTF16([cell stringValue])); |
+} |
+ |
TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
CreateChooserDialog(); |
@@ -179,6 +200,32 @@ TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
EXPECT_EQ(1, table_view_.numberOfRows); |
} |
+TEST_F(ChooserDialogCocoaControllerTest, UpdateAndRemoveTheUpdatedOption) { |
+ CreateChooserDialog(); |
+ |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ |
+ chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
+ |
+ EXPECT_EQ(2, table_view_.numberOfRows); |
+ EXPECT_EQ(1, table_view_.numberOfColumns); |
+ ASSERT_TRUE(table_view_.enabled); |
+ EXPECT_EQ(-1, table_view_.selectedRow); |
+ |
+ NSCell* cell_a = [table_view_ preparedCellAtColumn:0 row:0]; |
+ EXPECT_EQ(base::ASCIIToUTF16("a"), |
+ base::SysNSStringToUTF16([cell_a stringValue])); |
+ |
+ NSCell* cell_c = [table_view_ preparedCellAtColumn:0 row:1]; |
+ EXPECT_EQ(base::ASCIIToUTF16("c"), |
+ base::SysNSStringToUTF16([cell_c stringValue])); |
+} |
+ |
TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { |
CreateChooserDialog(); |
@@ -289,6 +336,30 @@ TEST_F(ChooserDialogCocoaControllerTest, |
} |
TEST_F(ChooserDialogCocoaControllerTest, |
+ SelectAnOptionAndUpdateTheSelectedOption) { |
+ CreateChooserDialog(); |
+ |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ // Select option 1. |
+ [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
+ byExtendingSelection:NO]; |
+ |
+ // Update option 1. |
+ chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ |
+ EXPECT_EQ(1, table_view_.selectedRow); |
+ ASSERT_TRUE(connect_button_.enabled); |
+ |
+ NSCell* cell = [table_view_ preparedCellAtColumn:0 row:1]; |
+ EXPECT_EQ(base::ASCIIToUTF16("d"), |
+ base::SysNSStringToUTF16([cell stringValue])); |
+} |
+ |
+TEST_F(ChooserDialogCocoaControllerTest, |
AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
CreateChooserDialog(); |