Index: chrome/browser/ui/views/chooser_content_view_unittest.cc |
diff --git a/chrome/browser/ui/views/chooser_content_view_unittest.cc b/chrome/browser/ui/views/chooser_content_view_unittest.cc |
index d498b0476c6d4a79467567e54700bc99ecb9588c..b787d180b49d24ff741408b106a55018031adcf1 100644 |
--- a/chrome/browser/ui/views/chooser_content_view_unittest.cc |
+++ b/chrome/browser/ui/views/chooser_content_view_unittest.cc |
@@ -163,6 +163,24 @@ TEST_F(ChooserContentViewTest, RemoveOption) { |
EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
} |
+TEST_F(ChooserContentViewTest, UpdateOption) { |
+ EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); |
+ |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ EXPECT_EQ(3, table_view_->RowCount()); |
+ EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
+ EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); |
+ EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
+ EXPECT_TRUE(table_view_->enabled()); |
+ EXPECT_EQ(0, table_view_->SelectedRowCount()); |
+ EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
+} |
+ |
TEST_F(ChooserContentViewTest, AddAndRemoveOption) { |
// Called from TableView::OnItemsRemoved(). |
EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
@@ -183,6 +201,26 @@ TEST_F(ChooserContentViewTest, AddAndRemoveOption) { |
EXPECT_EQ(1, table_view_->RowCount()); |
} |
+TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) { |
+ // Called from TableView::OnItemsRemoved(). |
+ EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); |
+ |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
+ |
+ EXPECT_EQ(2, table_view_->RowCount()); |
+ EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
+ EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
+ EXPECT_TRUE(table_view_->enabled()); |
+ EXPECT_EQ(0, table_view_->SelectedRowCount()); |
+ EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
+} |
+ |
TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { |
EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); |
@@ -283,6 +321,25 @@ TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveTheSelectedOption) { |
EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
} |
+TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) { |
+ EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); |
+ |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
+ mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
+ |
+ // Select option 1. |
+ table_view_->Select(1); |
+ |
+ // Update option 1. |
+ mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
+ base::ASCIIToUTF16("d")); |
+ |
+ EXPECT_EQ(1, table_view_->SelectedRowCount()); |
+ EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
+ EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); |
+} |
+ |
TEST_F(ChooserContentViewTest, |
AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |