Chromium Code Reviews| Index: chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
| diff --git a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
| index 6ec822ac556e1657045adb645338628399c89f3f..ef8e649c911e552e4c4c609e281270f37def6b92 100644 |
| --- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
| +++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
| @@ -114,7 +114,9 @@ class InstantExtendedTest : public InProcessBrowserTest, |
| on_native_suggestions_calls_(0), |
| on_change_calls_(0), |
| submit_count_(0), |
| - on_esc_key_press_event_calls_(0) { |
| + on_esc_key_press_event_calls_(0), |
| + on_focus_changed_calls_(0), |
| + is_focused_(false) { |
| } |
| protected: |
| virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
| @@ -167,7 +169,11 @@ class InstantExtendedTest : public InProcessBrowserTest, |
| GetStringFromJS(contents, "apiHandle.value", |
| &query_value_) && |
| GetIntFromJS(contents, "onEscKeyPressedCalls", |
| - &on_esc_key_press_event_calls_); |
| + &on_esc_key_press_event_calls_) && |
| + GetIntFromJS(contents, "onFocusChangedCalls", |
| + &on_focus_changed_calls_) && |
| + GetBoolFromJS(contents, "isFocused", |
| + &is_focused_); |
| } |
| TemplateURL* GetDefaultSearchProviderTemplateURL() { |
| @@ -219,6 +225,8 @@ class InstantExtendedTest : public InProcessBrowserTest, |
| int submit_count_; |
| int on_esc_key_press_event_calls_; |
| std::string query_value_; |
| + int on_focus_changed_calls_; |
| + bool is_focused_; |
| }; |
| // Test class used to verify chrome-search: scheme and access policy from the |
| @@ -2026,6 +2034,61 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, DISABLED_EscapeClearsOmnibox) { |
| EXPECT_LT(0, on_esc_key_press_event_calls_); |
| } |
| +IN_PROC_BROWSER_TEST_F(InstantExtendedTest, FocusApiRespondsToFocusChange) { |
| + ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
| + EXPECT_FALSE(is_focused_); |
| + EXPECT_EQ(0, on_focus_changed_calls_); |
| + |
| + // Focus the Omnibox. |
|
samarth
2013/05/22 04:40:56
super nit: lower-case "omnibox" (and below)
Donn Denman
2013/05/22 17:37:36
Done.
|
| + FocusOmniboxAndWaitForInstantOverlaySupport(); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
|
samarth
2013/05/22 04:40:56
nit: EXPECT -> ASSERT here and for other calls to
Donn Denman
2013/05/22 17:37:36
Ah, that makes the code much more readable! Done.
samarth
2013/05/23 21:06:33
Yeah, in general, any failed check that would make
|
| + EXPECT_TRUE(is_focused_); |
| + EXPECT_EQ(1, on_focus_changed_calls_); |
| + |
| + // Now unfocus the omnibox. |
| + ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_FALSE(is_focused_); |
| + EXPECT_EQ(2, on_focus_changed_calls_); |
| + |
| + // Focus the Omnibox again. |
| + // The first focus may have worked only due to initial-state anomalies. |
| + FocusOmniboxAndWaitForInstantOverlaySupport(); |
|
samarth
2013/05/22 04:40:56
Hmm, I'm surprised that this works. In particular
Donn Denman
2013/05/22 17:37:36
Done.
|
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_TRUE(is_focused_); |
| + EXPECT_EQ(3, on_focus_changed_calls_); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(InstantExtendedTest, FocusApiIgnoresRedundantFocus) { |
| + ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
| + EXPECT_FALSE(is_focused_); |
| + EXPECT_EQ(0, on_focus_changed_calls_); |
| + |
| + // Focus the Omnibox. |
| + FocusOmniboxAndWaitForInstantOverlaySupport(); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_TRUE(is_focused_); |
| + EXPECT_EQ(1, on_focus_changed_calls_); |
| + |
| + // When we focus the omnibox again, nothing should change. |
| + FocusOmniboxAndWaitForInstantOverlaySupport(); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_TRUE(is_focused_); |
| + EXPECT_EQ(1, on_focus_changed_calls_); |
| + |
| + // Now unfocus the omnibox. |
| + ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_FALSE(is_focused_); |
| + EXPECT_EQ(2, on_focus_changed_calls_); |
| + |
| + // When we unfocus again, nothing should change. |
| + ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); |
| + EXPECT_TRUE(UpdateSearchState(instant()->GetOverlayContents())); |
| + EXPECT_FALSE(is_focused_); |
| + EXPECT_EQ(2, on_focus_changed_calls_); |
| +} |
| + |
| IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OnDefaultSearchProviderChanged) { |
| InstantService* instant_service = |
| InstantServiceFactory::GetForProfile(browser()->profile()); |