Chromium Code Reviews| Index: ui/views/controls/combobox/combobox_unittest.cc |
| diff --git a/ui/views/controls/combobox/combobox_unittest.cc b/ui/views/controls/combobox/combobox_unittest.cc |
| index 67625a2aea12d06639009647fc7b37884ed8d167..d5bce974547e457791de1809d31369f13d112c99 100644 |
| --- a/ui/views/controls/combobox/combobox_unittest.cc |
| +++ b/ui/views/controls/combobox/combobox_unittest.cc |
| @@ -92,9 +92,11 @@ class TestComboboxModel : public ui::ComboboxModel { |
| TestComboboxModel() {} |
| virtual ~TestComboboxModel() {} |
| + static const int kItemCount = 10; |
| + |
| // ui::ComboboxModel: |
| virtual int GetItemCount() const OVERRIDE { |
| - return 10; |
| + return kItemCount; |
| } |
| virtual base::string16 GetItemAt(int index) OVERRIDE { |
| if (IsItemSeparatorAt(index)) { |
| @@ -107,6 +109,16 @@ class TestComboboxModel : public ui::ComboboxModel { |
| return separators_.find(index) != separators_.end(); |
| } |
| + virtual int GetDefaultIndex() const OVERRIDE { |
| + // Return the first index that is not a separator. |
| + for (int index = 0; index < kItemCount; ++index) { |
| + if (separators_.find(index) == separators_.end()) |
| + return index; |
| + } |
| + NOTREACHED(); |
| + return 0; |
| + } |
| + |
| void SetSeparators(const std::set<int>& separators) { |
| separators_ = separators; |
| } |
| @@ -200,9 +212,12 @@ class ComboboxTest : public ViewsTestBase { |
| ViewsTestBase::TearDown(); |
| } |
| - void InitCombobox() { |
| + void InitCombobox(const std::set<int>* separators = NULL) { |
|
sadrul
2014/07/10 15:24:35
I believe default parameters are not allowed. Just
Andre
2014/07/10 17:44:27
Done.
|
| model_.reset(new TestComboboxModel()); |
| + if (separators) |
| + model_->SetSeparators(*separators); |
| + |
| ASSERT_FALSE(combobox_); |
| combobox_ = new TestCombobox(model_.get()); |
| combobox_->set_id(1); |
| @@ -304,10 +319,9 @@ TEST_F(ComboboxTest, DisabilityTest) { |
| // Verifies that we don't select a separator line in combobox when navigating |
| // through keyboard. |
| TEST_F(ComboboxTest, SkipSeparatorSimple) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(2); |
| - model_->SetSeparators(separators); |
| + InitCombobox(&separators); |
| EXPECT_EQ(0, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_DOWN); |
| EXPECT_EQ(1, combobox_->selected_index()); |
| @@ -326,17 +340,16 @@ TEST_F(ComboboxTest, SkipSeparatorSimple) { |
| // Verifies that we never select the separator that is in the beginning of the |
| // combobox list when navigating through keyboard. |
| TEST_F(ComboboxTest, SkipSeparatorBeginning) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(0); |
| - model_->SetSeparators(separators); |
| - EXPECT_EQ(0, combobox_->selected_index()); |
| - SendKeyEvent(ui::VKEY_DOWN); |
| + InitCombobox(&separators); |
| EXPECT_EQ(1, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_DOWN); |
| EXPECT_EQ(2, combobox_->selected_index()); |
| + SendKeyEvent(ui::VKEY_DOWN); |
| + EXPECT_EQ(3, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_UP); |
| - EXPECT_EQ(1, combobox_->selected_index()); |
| + EXPECT_EQ(2, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_HOME); |
| EXPECT_EQ(1, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_PRIOR); |
| @@ -348,10 +361,9 @@ TEST_F(ComboboxTest, SkipSeparatorBeginning) { |
| // Verifies that we never select the separator that is in the end of the |
| // combobox list when navigating through keyboard. |
| TEST_F(ComboboxTest, SkipSeparatorEnd) { |
| - InitCombobox(); |
| std::set<int> separators; |
| - separators.insert(model_->GetItemCount() - 1); |
| - model_->SetSeparators(separators); |
| + separators.insert(TestComboboxModel::kItemCount - 1); |
| + InitCombobox(&separators); |
| combobox_->SetSelectedIndex(8); |
| SendKeyEvent(ui::VKEY_DOWN); |
| EXPECT_EQ(8, combobox_->selected_index()); |
| @@ -365,15 +377,14 @@ TEST_F(ComboboxTest, SkipSeparatorEnd) { |
| // consecutive) that appear in the beginning of the combobox list when |
| // navigating through keyboard. |
| TEST_F(ComboboxTest, SkipMultipleSeparatorsAtBeginning) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(0); |
| separators.insert(1); |
| separators.insert(2); |
| - model_->SetSeparators(separators); |
| - EXPECT_EQ(0, combobox_->selected_index()); |
| - SendKeyEvent(ui::VKEY_DOWN); |
| + InitCombobox(&separators); |
| EXPECT_EQ(3, combobox_->selected_index()); |
| + SendKeyEvent(ui::VKEY_DOWN); |
| + EXPECT_EQ(4, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_UP); |
| EXPECT_EQ(3, combobox_->selected_index()); |
| SendKeyEvent(ui::VKEY_NEXT); |
| @@ -390,12 +401,11 @@ TEST_F(ComboboxTest, SkipMultipleSeparatorsAtBeginning) { |
| // consecutive) that appear in the middle of the combobox list when navigating |
| // through keyboard. |
| TEST_F(ComboboxTest, SkipMultipleAdjacentSeparatorsAtMiddle) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(4); |
| separators.insert(5); |
| separators.insert(6); |
| - model_->SetSeparators(separators); |
| + InitCombobox(&separators); |
| combobox_->SetSelectedIndex(3); |
| SendKeyEvent(ui::VKEY_DOWN); |
| EXPECT_EQ(7, combobox_->selected_index()); |
| @@ -407,12 +417,11 @@ TEST_F(ComboboxTest, SkipMultipleAdjacentSeparatorsAtMiddle) { |
| // consecutive) that appear in the end of the combobox list when navigating |
| // through keyboard. |
| TEST_F(ComboboxTest, SkipMultipleSeparatorsAtEnd) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(7); |
| separators.insert(8); |
| separators.insert(9); |
| - model_->SetSeparators(separators); |
| + InitCombobox(&separators); |
| combobox_->SetSelectedIndex(6); |
| SendKeyEvent(ui::VKEY_DOWN); |
| EXPECT_EQ(6, combobox_->selected_index()); |
| @@ -429,12 +438,11 @@ TEST_F(ComboboxTest, SkipMultipleSeparatorsAtEnd) { |
| } |
| TEST_F(ComboboxTest, GetTextForRowTest) { |
| - InitCombobox(); |
| std::set<int> separators; |
| separators.insert(0); |
| separators.insert(1); |
| separators.insert(9); |
| - model_->SetSeparators(separators); |
| + InitCombobox(&separators); |
| for (int i = 0; i < combobox_->GetRowCount(); ++i) { |
| if (separators.count(i) != 0) { |
| EXPECT_TRUE(combobox_->GetTextForRow(i).empty()) << i; |