OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" | 5 #import "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" |
6 | 6 |
7 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 7 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
8 #include "chrome/browser/ui/omnibox/omnibox_edit_controller.h" | 8 #include "chrome/browser/ui/omnibox/omnibox_edit_controller.h" |
9 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" | 9 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" |
10 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" | 10 #include "chrome/browser/ui/omnibox/omnibox_popup_view.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 : OmniboxEditModel(view, controller, profile), | 23 : OmniboxEditModel(view, controller, profile), |
24 up_or_down_count_(0) { | 24 up_or_down_count_(0) { |
25 } | 25 } |
26 | 26 |
27 virtual void OnUpOrDownKeyPressed(int count) OVERRIDE { | 27 virtual void OnUpOrDownKeyPressed(int count) OVERRIDE { |
28 up_or_down_count_ = count; | 28 up_or_down_count_ = count; |
29 } | 29 } |
30 | 30 |
31 int up_or_down_count() const { return up_or_down_count_; } | 31 int up_or_down_count() const { return up_or_down_count_; } |
32 | 32 |
| 33 void set_up_or_down_count(int count) { |
| 34 up_or_down_count_ = count; |
| 35 } |
| 36 |
33 private: | 37 private: |
34 int up_or_down_count_; | 38 int up_or_down_count_; |
35 | 39 |
36 DISALLOW_COPY_AND_ASSIGN(MockOmniboxEditModel); | 40 DISALLOW_COPY_AND_ASSIGN(MockOmniboxEditModel); |
37 }; | 41 }; |
38 | 42 |
39 class MockOmniboxPopupView : public OmniboxPopupView { | 43 class MockOmniboxPopupView : public OmniboxPopupView { |
40 public: | 44 public: |
41 MockOmniboxPopupView() : is_open_(false) {} | 45 MockOmniboxPopupView() : is_open_(false) {} |
42 virtual ~MockOmniboxPopupView() {} | 46 virtual ~MockOmniboxPopupView() {} |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 view.SetUserText(ASCIIToUTF16("Alfred")); | 164 view.SetUserText(ASCIIToUTF16("Alfred")); |
161 EXPECT_EQ("Alfred", UTF16ToUTF8(view.GetText())); | 165 EXPECT_EQ("Alfred", UTF16ToUTF8(view.GetText())); |
162 view.SetInstantSuggestion(ASCIIToUTF16(" Hitchcock")); | 166 view.SetInstantSuggestion(ASCIIToUTF16(" Hitchcock")); |
163 EXPECT_EQ("Alfred", UTF16ToUTF8(view.GetText())); | 167 EXPECT_EQ("Alfred", UTF16ToUTF8(view.GetText())); |
164 EXPECT_EQ(" Hitchcock", UTF16ToUTF8(view.GetInstantSuggestion())); | 168 EXPECT_EQ(" Hitchcock", UTF16ToUTF8(view.GetInstantSuggestion())); |
165 | 169 |
166 view.SetUserText(string16()); | 170 view.SetUserText(string16()); |
167 EXPECT_EQ(string16(), view.GetText()); | 171 EXPECT_EQ(string16(), view.GetText()); |
168 EXPECT_EQ(string16(), view.GetInstantSuggestion()); | 172 EXPECT_EQ(string16(), view.GetInstantSuggestion()); |
169 } | 173 } |
| 174 |
| 175 TEST_F(OmniboxViewMacTest, UpDownArrow) { |
| 176 OmniboxViewMac view(NULL, NULL, profile(), NULL, NULL); |
| 177 |
| 178 // This is deleted by the omnibox view. |
| 179 MockOmniboxEditModel* model = |
| 180 new MockOmniboxEditModel(&view, NULL, profile()); |
| 181 SetModel(&view, model); |
| 182 |
| 183 MockOmniboxPopupView popup_view; |
| 184 OmniboxPopupModel popup_model(&popup_view, model); |
| 185 |
| 186 // With popup closed verify that pressing up and down arrow works. |
| 187 popup_view.set_is_open(false); |
| 188 model->set_up_or_down_count(0); |
| 189 view.OnDoCommandBySelector(@selector(moveDown:)); |
| 190 EXPECT_EQ(1, model->up_or_down_count()); |
| 191 model->set_up_or_down_count(0); |
| 192 view.OnDoCommandBySelector(@selector(moveUp:)); |
| 193 EXPECT_EQ(-1, model->up_or_down_count()); |
| 194 |
| 195 // With popup open verify that pressing up and down arrow works. |
| 196 popup_view.set_is_open(true); |
| 197 model->set_up_or_down_count(0); |
| 198 view.OnDoCommandBySelector(@selector(moveDown:)); |
| 199 EXPECT_EQ(1, model->up_or_down_count()); |
| 200 model->set_up_or_down_count(0); |
| 201 view.OnDoCommandBySelector(@selector(moveUp:)); |
| 202 EXPECT_EQ(-1, model->up_or_down_count()); |
| 203 } |
OLD | NEW |