| 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..e7df215f51f474c1c4ec06ed60f8c5e42c31bc58 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) {
|
| model_.reset(new TestComboboxModel());
|
|
|
| + if (separators)
|
| + model_->SetSeparators(*separators);
|
| +
|
| ASSERT_FALSE(combobox_);
|
| combobox_ = new TestCombobox(model_.get());
|
| combobox_->set_id(1);
|
| @@ -262,7 +277,7 @@ class ComboboxTest : public ViewsTestBase {
|
| };
|
|
|
| TEST_F(ComboboxTest, KeyTest) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
| SendKeyEvent(ui::VKEY_END);
|
| EXPECT_EQ(combobox_->selected_index() + 1, model_->GetItemCount());
|
| SendKeyEvent(ui::VKEY_HOME);
|
| @@ -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;
|
| @@ -447,7 +455,7 @@ TEST_F(ComboboxTest, GetTextForRowTest) {
|
|
|
| // Verifies selecting the first matching value (and returning whether found).
|
| TEST_F(ComboboxTest, SelectValue) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
| ASSERT_EQ(model_->GetDefaultIndex(), combobox_->selected_index());
|
| EXPECT_TRUE(combobox_->SelectValue(ASCIIToUTF16("PEANUT BUTTER")));
|
| EXPECT_EQ(0, combobox_->selected_index());
|
| @@ -467,7 +475,7 @@ TEST_F(ComboboxTest, SelectValue) {
|
| }
|
|
|
| TEST_F(ComboboxTest, SelectIndexActionStyle) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| // With the action style, the selected index is always 0.
|
| combobox_->SetStyle(Combobox::STYLE_ACTION);
|
| @@ -500,7 +508,7 @@ TEST_F(ComboboxTest, ListenerHandlesDelete) {
|
| }
|
|
|
| TEST_F(ComboboxTest, Click) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
| @@ -520,7 +528,7 @@ TEST_F(ComboboxTest, Click) {
|
| }
|
|
|
| TEST_F(ComboboxTest, ClickButDisabled) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
| @@ -541,7 +549,7 @@ TEST_F(ComboboxTest, ClickButDisabled) {
|
| }
|
|
|
| TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
| @@ -558,7 +566,7 @@ TEST_F(ComboboxTest, NotifyOnClickWithReturnKey) {
|
| }
|
|
|
| TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
| @@ -579,7 +587,7 @@ TEST_F(ComboboxTest, NotifyOnClickWithSpaceKey) {
|
| }
|
|
|
| TEST_F(ComboboxTest, NotifyOnClickWithMouse) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
| @@ -613,7 +621,7 @@ TEST_F(ComboboxTest, NotifyOnClickWithMouse) {
|
| }
|
|
|
| TEST_F(ComboboxTest, ConsumingPressKeyEvents) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| EXPECT_FALSE(combobox_->OnKeyPressed(
|
| ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_RETURN, 0, false)));
|
| @@ -664,7 +672,7 @@ TEST_F(ComboboxTest, ContentWidth) {
|
| }
|
|
|
| TEST_F(ComboboxTest, TypingPrefixNotifiesListener) {
|
| - InitCombobox();
|
| + InitCombobox(NULL);
|
|
|
| TestComboboxListener listener;
|
| combobox_->set_listener(&listener);
|
|
|