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

Unified Diff: chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm

Issue 2518933004: Add multiple selection support to chooser on desktops (Closed)
Patch Set: address comments Created 4 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 side-by-side diff with in-line comments
Download patch
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();
« no previous file with comments | « chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm ('k') | chrome/browser/ui/views/chooser_content_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698