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 bfef9419a00e2e6270cef3cded75d512862bd891..722b5c27c0af937b29bc911a901f1b8e9326947f 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 |
@@ -849,14 +849,17 @@ TEST_F(ChooserDialogCocoaControllerTest, SelectAnOptionAndPressConnectButton) { |
// Select option 0 and press "Connect" button. |
[table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
byExtendingSelection:NO]; |
- EXPECT_CALL(*mock_chooser_controller_, Select(0)).Times(1); |
+ std::vector<size_t> indices(1); |
+ indices[0] = 0; |
+ EXPECT_CALL(*mock_chooser_controller_, Select(indices)).Times(1); |
EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); |
[connect_button_ performClick:chooser_dialog_controller_]; |
// Select option 2 and press "Connect" button. |
[table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:2] |
byExtendingSelection:NO]; |
- EXPECT_CALL(*mock_chooser_controller_, Select(2)).Times(1); |
+ indices[0] = 2; |
+ EXPECT_CALL(*mock_chooser_controller_, Select(indices)).Times(1); |
EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); |
[connect_button_ performClick:chooser_dialog_controller_]; |
} |
@@ -1092,6 +1095,101 @@ TEST_F(ChooserDialogCocoaControllerTest, |
EXPECT_TRUE(cancel_button_.enabled); |
} |
+TEST_F(ChooserDialogCocoaControllerTest, MultipleSelection) { |
+ CreateChooserDialog(); |
+ [table_view_ setAllowsMultipleSelection:YES]; |
+ |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("a"), |
+ MockChooserController::kNoSignalStrengthLevelImage, |
+ MockChooserController::ConnectedPairedStatus::CONNECTED | |
+ MockChooserController::ConnectedPairedStatus::PAIRED); |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
+ MockChooserController::ConnectedPairedStatus::NONE); |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
+ MockChooserController::ConnectedPairedStatus::NONE); |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, |
+ MockChooserController::ConnectedPairedStatus::NONE); |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("e"), MockChooserController::kSignalStrengthLevel3Bar, |
+ MockChooserController::ConnectedPairedStatus::NONE); |
+ mock_chooser_controller_->OptionAdded( |
+ base::ASCIIToUTF16("f"), MockChooserController::kSignalStrengthLevel4Bar, |
+ MockChooserController::ConnectedPairedStatus::NONE); |
+ |
+ NSMutableIndexSet* selected_rows = [NSMutableIndexSet indexSet]; |
+ // Select options "a", "c", "d". |
+ [selected_rows addIndex:0]; |
+ [selected_rows addIndex:2]; |
+ [selected_rows addIndex:3]; |
+ [table_view_ selectRowIndexes:selected_rows byExtendingSelection:NO]; |
+ |
+ // The options are: [a] b [c] [d] e f. The option with [] is selected. |
+ EXPECT_NSEQ(selected_rows, [table_view_ selectedRowIndexes]); |
+ ExpectRowImageIsConnectedImage(0, SK_ColorWHITE); |
+ ExpectSignalStrengthLevelImageIs( |
+ 1, MockChooserController::kSignalStrengthLevel0Bar, |
+ MockChooserController::kImageColorUnselected); |
+ ExpectSignalStrengthLevelImageIs( |
+ 2, MockChooserController::kSignalStrengthLevel1Bar, |
+ MockChooserController::kImageColorSelected); |
+ ExpectSignalStrengthLevelImageIs( |
+ 3, MockChooserController::kSignalStrengthLevel2Bar, |
+ MockChooserController::kImageColorSelected); |
+ ExpectSignalStrengthLevelImageIs( |
+ 4, MockChooserController::kSignalStrengthLevel3Bar, |
+ MockChooserController::kImageColorUnselected); |
+ ExpectSignalStrengthLevelImageIs( |
+ 5, MockChooserController::kSignalStrengthLevel4Bar, |
+ MockChooserController::kImageColorUnselected); |
+ ExpectRowTextColorIs(0, [NSColor whiteColor]); |
+ ExpectRowTextColorIs(1, [NSColor blackColor]); |
+ ExpectRowTextColorIs(2, [NSColor whiteColor]); |
+ ExpectRowTextColorIs(3, [NSColor whiteColor]); |
+ ExpectRowTextColorIs(4, [NSColor blackColor]); |
+ ExpectRowTextColorIs(5, [NSColor blackColor]); |
+ ExpectPairedTextColorIs( |
+ 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300)); |
+ EXPECT_TRUE(connect_button_.enabled); |
+ |
+ // Remove option "b". |
+ // The options are: [a] [c] [d] e f. |
+ mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
+ EXPECT_TRUE([table_view_ isRowSelected:0]); |
+ EXPECT_TRUE([table_view_ isRowSelected:1]); |
+ EXPECT_TRUE([table_view_ isRowSelected:2]); |
+ EXPECT_FALSE([table_view_ isRowSelected:3]); |
+ EXPECT_FALSE([table_view_ isRowSelected:4]); |
+ EXPECT_TRUE(connect_button_.enabled); |
+ |
+ // Remove option "c". |
+ // The options are: [a] [d] e f. |
+ mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
+ EXPECT_TRUE([table_view_ isRowSelected:0]); |
+ EXPECT_TRUE([table_view_ isRowSelected:1]); |
+ EXPECT_FALSE([table_view_ isRowSelected:2]); |
+ EXPECT_FALSE([table_view_ isRowSelected:3]); |
+ EXPECT_TRUE(connect_button_.enabled); |
+ |
+ // Remove option "a". |
+ // The options are: [d] e f. |
+ mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
+ EXPECT_TRUE([table_view_ isRowSelected:0]); |
+ EXPECT_FALSE([table_view_ isRowSelected:1]); |
+ EXPECT_FALSE([table_view_ isRowSelected:2]); |
+ EXPECT_TRUE(connect_button_.enabled); |
+ |
+ // Remove option "d". |
+ // The options are: e f. |
+ mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
+ EXPECT_FALSE([table_view_ isRowSelected:0]); |
+ EXPECT_FALSE([table_view_ isRowSelected:1]); |
+ EXPECT_FALSE(connect_button_.enabled); |
+} |
+ |
TEST_F(ChooserDialogCocoaControllerTest, PressAdapterOffHelpButton) { |
CreateChooserDialog(); |