Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "chrome/browser/ui/search/instant_test_utils.h" | 5 #include "chrome/browser/ui/search/instant_test_utils.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 9 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/search_engines/template_url_service.h" | 10 #include "chrome/browser/search_engines/template_url_service.h" |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 std::string WrapScript(const std::string& script) { | 26 std::string WrapScript(const std::string& script) { |
| 27 return "domAutomationController.send(" + script + ")"; | 27 return "domAutomationController.send(" + script + ")"; |
| 28 } | 28 } |
| 29 | 29 |
| 30 } // namespace | 30 } // namespace |
| 31 | 31 |
| 32 // InstantTestModelObserver -------------------------------------------------- | 32 // InstantTestModelObserver -------------------------------------------------- |
| 33 | 33 |
| 34 InstantTestModelObserver::InstantTestModelObserver( | 34 InstantTestModelObserver::InstantTestModelObserver( |
| 35 InstantOverlayModel* model, | 35 InstantOverlayModel* model, |
| 36 SearchMode::Type desired_mode_type) | 36 SearchMode::Type expected_mode_type) |
| 37 : model_(model), | 37 : model_(model), |
| 38 desired_mode_type_(desired_mode_type) { | 38 expected_mode_type_(expected_mode_type), |
| 39 observed_mode_type_(static_cast<SearchMode::Type>(-1)) { | |
| 39 model_->AddObserver(this); | 40 model_->AddObserver(this); |
| 40 } | 41 } |
| 41 | 42 |
| 42 InstantTestModelObserver::~InstantTestModelObserver() { | 43 InstantTestModelObserver::~InstantTestModelObserver() { |
| 43 model_->RemoveObserver(this); | 44 model_->RemoveObserver(this); |
| 44 } | 45 } |
| 45 | 46 |
| 46 void InstantTestModelObserver::WaitForDesiredOverlayState() { | 47 bool InstantTestModelObserver::WaitForExpectedOverlayState() { |
| 47 run_loop_.Run(); | 48 run_loop_.Run(); |
| 49 return observed_mode_type_ == expected_mode_type_; | |
| 48 } | 50 } |
| 49 | 51 |
| 50 void InstantTestModelObserver::OverlayStateChanged( | 52 void InstantTestModelObserver::OverlayStateChanged( |
| 51 const InstantOverlayModel& model) { | 53 const InstantOverlayModel& model) { |
| 52 if (model.mode().mode == desired_mode_type_) | 54 observed_mode_type_ = model.mode().mode; |
|
Jered
2013/04/16 22:35:57
I'm worried that this might break some tests which
dhollowa
2013/04/16 22:50:51
Yes, I verified. No problems with this.
| |
| 53 run_loop_.Quit(); | 55 EXPECT_EQ(expected_mode_type_, observed_mode_type_); |
| 56 run_loop_.Quit(); | |
| 54 } | 57 } |
| 55 | 58 |
| 56 // InstantTestBase ----------------------------------------------------------- | 59 // InstantTestBase ----------------------------------------------------------- |
| 57 | 60 |
| 58 void InstantTestBase::SetupInstant(Browser* browser) { | 61 void InstantTestBase::SetupInstant(Browser* browser) { |
| 59 browser_ = browser; | 62 browser_ = browser; |
| 60 TemplateURLService* service = | 63 TemplateURLService* service = |
| 61 TemplateURLServiceFactory::GetForProfile(browser_->profile()); | 64 TemplateURLServiceFactory::GetForProfile(browser_->profile()); |
| 62 ui_test_utils::WaitForTemplateURLServiceToLoad(service); | 65 ui_test_utils::WaitForTemplateURLServiceToLoad(service); |
| 63 | 66 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 FocusOmnibox(); | 136 FocusOmnibox(); |
| 134 ntp_observer.Wait(); | 137 ntp_observer.Wait(); |
| 135 overlay_observer.Wait(); | 138 overlay_observer.Wait(); |
| 136 } | 139 } |
| 137 | 140 |
| 138 void InstantTestBase::SetOmniboxText(const std::string& text) { | 141 void InstantTestBase::SetOmniboxText(const std::string& text) { |
| 139 FocusOmnibox(); | 142 FocusOmnibox(); |
| 140 omnibox()->SetUserText(UTF8ToUTF16(text)); | 143 omnibox()->SetUserText(UTF8ToUTF16(text)); |
| 141 } | 144 } |
| 142 | 145 |
| 143 void InstantTestBase::SetOmniboxTextAndWaitForOverlayToShow( | 146 bool InstantTestBase::SetOmniboxTextAndWaitForOverlayToShow( |
| 144 const std::string& text) { | 147 const std::string& text) { |
| 145 InstantTestModelObserver observer( | 148 InstantTestModelObserver observer( |
| 146 instant()->model(), SearchMode::MODE_SEARCH_SUGGESTIONS); | 149 instant()->model(), SearchMode::MODE_SEARCH_SUGGESTIONS); |
| 147 SetOmniboxText(text); | 150 SetOmniboxText(text); |
| 148 observer.WaitForDesiredOverlayState(); | 151 return observer.WaitForExpectedOverlayState(); |
| 149 } | 152 } |
| 150 | 153 |
| 151 void InstantTestBase::SetOmniboxTextAndWaitForSuggestion( | 154 void InstantTestBase::SetOmniboxTextAndWaitForSuggestion( |
| 152 const std::string& text) { | 155 const std::string& text) { |
| 153 content::WindowedNotificationObserver observer( | 156 content::WindowedNotificationObserver observer( |
| 154 chrome::NOTIFICATION_INSTANT_SET_SUGGESTION, | 157 chrome::NOTIFICATION_INSTANT_SET_SUGGESTION, |
| 155 content::NotificationService::AllSources()); | 158 content::NotificationService::AllSources()); |
| 156 SetOmniboxText(text); | 159 SetOmniboxText(text); |
| 157 observer.Wait(); | 160 observer.Wait(); |
| 158 } | 161 } |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 size_t start = 0, end = 0; | 217 size_t start = 0, end = 0; |
| 215 omnibox()->GetSelectionBounds(&start, &end); | 218 omnibox()->GetSelectionBounds(&start, &end); |
| 216 if (start > end) | 219 if (start > end) |
| 217 std::swap(start, end); | 220 std::swap(start, end); |
| 218 return omnibox()->GetText().substr(start, end - start); | 221 return omnibox()->GetText().substr(start, end - start); |
| 219 } | 222 } |
| 220 | 223 |
| 221 string16 InstantTestBase::GetGrayText() { | 224 string16 InstantTestBase::GetGrayText() { |
| 222 return omnibox()->GetInstantSuggestion(); | 225 return omnibox()->GetInstantSuggestion(); |
| 223 } | 226 } |
| OLD | NEW |