Index: chrome/browser/ui/search/local_ntp_browsertest.cc |
diff --git a/chrome/browser/ui/search/local_ntp_browsertest.cc b/chrome/browser/ui/search/local_ntp_browsertest.cc |
index 54155e05f1e84098a90b294137e1dd274491c5e4..98dc181b3fbe29b107fabe7d436232a0ddd86926 100644 |
--- a/chrome/browser/ui/search/local_ntp_browsertest.cc |
+++ b/chrome/browser/ui/search/local_ntp_browsertest.cc |
@@ -13,7 +13,6 @@ |
#include "base/strings/utf_string_conversions.h" |
#include "base/threading/thread_restrictions.h" |
#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/search/one_google_bar/one_google_bar_data.h" |
#include "chrome/browser/search/one_google_bar/one_google_bar_fetcher.h" |
@@ -22,34 +21,28 @@ |
#include "chrome/browser/search/search.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
#include "chrome/browser/signin/signin_manager_factory.h" |
+#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_commands.h" |
+#include "chrome/browser/ui/search/instant_test_base.h" |
#include "chrome/browser/ui/search/instant_test_utils.h" |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/base/in_process_browser_test.h" |
-#include "chrome/test/base/interactive_test_utils.h" |
#include "chrome/test/base/ui_test_utils.h" |
#include "components/keyed_service/content/browser_context_dependency_manager.h" |
-#include "components/omnibox/browser/omnibox_edit_model.h" |
-#include "components/omnibox/browser/omnibox_view.h" |
-#include "components/omnibox/common/omnibox_focus_state.h" |
#include "components/prefs/pref_service.h" |
#include "components/search_engines/template_url.h" |
#include "components/search_engines/template_url_data.h" |
#include "components/search_engines/template_url_service.h" |
+#include "components/signin/core/browser/signin_manager.h" |
#include "content/public/browser/navigation_entry.h" |
-#include "content/public/browser/notification_service.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/content_switches.h" |
-#include "content/public/test/browser_test_utils.h" |
#include "content/public/test/test_navigation_observer.h" |
#include "content/public/test/test_utils.h" |
#include "net/test/embedded_test_server/embedded_test_server.h" |
#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/geometry/point.h" |
-#include "ui/gfx/geometry/rect.h" |
-#include "ui/gfx/geometry/vector2d.h" |
namespace { |
@@ -79,8 +72,7 @@ bool SwitchToFrench() { |
// A test class that sets up local_ntp_browsertest.html (which is mostly a copy |
// of the real local_ntp.html) as the NTP URL. |
-class LocalNTPTest : public InProcessBrowserTest, |
- public InstantTestBase { |
+class LocalNTPTest : public InProcessBrowserTest, public InstantTestBase { |
public: |
LocalNTPTest() {} |
@@ -100,28 +92,33 @@ class LocalNTPTest : public InProcessBrowserTest, |
// This runs a bunch of pure JS-side tests, i.e. those that don't require any |
// interaction from the native side. |
IN_PROC_BROWSER_TEST_F(LocalNTPTest, SimpleJavascriptTests) { |
+ if (content::AreAllSitesIsolatedForTesting()) { |
+ LOG(ERROR) << "LocalNTPTest.SimpleJavascriptTests doesn't work in " |
+ "--site-per-process mode yet, see crbug.com/695221."; |
+ return; |
+ } |
+ |
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
- FocusOmnibox(); |
content::WebContents* active_tab = OpenNewTab(browser(), ntp_url()); |
ASSERT_TRUE(search::IsInstantNTP(active_tab)); |
bool success = false; |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!runSimpleTests()", &success)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!runSimpleTests()", &success)); |
EXPECT_TRUE(success); |
} |
IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) { |
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
- FocusOmnibox(); |
// Open an NTP. |
content::WebContents* active_tab = OpenNewTab(browser(), ntp_url()); |
ASSERT_TRUE(search::IsInstantNTP(active_tab)); |
// Check that the embeddedSearch API is available. |
bool result = false; |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.chrome.embeddedSearch", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.chrome.embeddedSearch", &result)); |
EXPECT_TRUE(result); |
// Navigate somewhere else in the same tab. |
@@ -130,8 +127,8 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) { |
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
ASSERT_FALSE(search::IsInstantNTP(active_tab)); |
// Now the embeddedSearch API should have gone away. |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.chrome.embeddedSearch", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.chrome.embeddedSearch", &result)); |
EXPECT_FALSE(result); |
// Navigate back to the NTP. |
@@ -139,8 +136,8 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) { |
chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB); |
back_observer.Wait(); |
// The API should be back. |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.chrome.embeddedSearch", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.chrome.embeddedSearch", &result)); |
EXPECT_TRUE(result); |
// Navigate forward to the non-NTP page. |
@@ -148,8 +145,8 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) { |
chrome::GoForward(browser(), WindowOpenDisposition::CURRENT_TAB); |
fwd_observer.Wait(); |
// The API should be gone. |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.chrome.embeddedSearch", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.chrome.embeddedSearch", &result)); |
EXPECT_FALSE(result); |
// Navigate to a new NTP instance. |
@@ -158,78 +155,9 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, EmbeddedSearchAPIOnlyAvailableOnNTP) { |
ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
ASSERT_TRUE(search::IsInstantNTP(active_tab)); |
// Now the API should be available again. |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.chrome.embeddedSearch", &result)); |
- EXPECT_TRUE(result); |
-} |
- |
-IN_PROC_BROWSER_TEST_F(LocalNTPTest, FakeboxRedirectsToOmnibox) { |
- ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
- FocusOmnibox(); |
- |
- content::WebContents* active_tab = OpenNewTab(browser(), ntp_url()); |
- ASSERT_TRUE(search::IsInstantNTP(active_tab)); |
- |
- // This is required to make the mouse events we send below arrive at the right |
- // place. It *should* be the default for all interactive_ui_tests anyway, but |
- // on Mac it isn't; see crbug.com/641969. |
- ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
- |
- bool result = false; |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!setupAdvancedTest()", &result)); |
- ASSERT_TRUE(result); |
- |
- // Get the position of the fakebox on the page. |
- double fakebox_x = 0; |
- ASSERT_TRUE(GetDoubleFromJS(active_tab, "getFakeboxPositionX()", &fakebox_x)); |
- double fakebox_y = 0; |
- ASSERT_TRUE(GetDoubleFromJS(active_tab, "getFakeboxPositionY()", &fakebox_y)); |
- |
- // Move the mouse over the fakebox. |
- gfx::Vector2d fakebox_pos(static_cast<int>(std::ceil(fakebox_x)), |
- static_cast<int>(std::ceil(fakebox_y))); |
- gfx::Point origin = active_tab->GetContainerBounds().origin(); |
- ASSERT_TRUE(ui_test_utils::SendMouseMoveSync(origin + fakebox_pos + |
- gfx::Vector2d(1, 1))); |
- |
- // Click on the fakebox, and wait for the omnibox to receive invisible focus. |
- // Note that simply waiting for the first OMNIBOX_FOCUS_CHANGED notification |
- // is not sufficient: If the omnibox had focus before, it will first lose the |
- // focus before gaining invisible focus. |
- ASSERT_NE(OMNIBOX_FOCUS_INVISIBLE, omnibox()->model()->focus_state()); |
- content::WindowedNotificationObserver focus_observer( |
- chrome::NOTIFICATION_OMNIBOX_FOCUS_CHANGED, |
- base::Bind( |
- [](const OmniboxEditModel* omnibox_model) { |
- return omnibox_model->focus_state() == OMNIBOX_FOCUS_INVISIBLE; |
- }, |
- omnibox()->model())); |
- |
- ASSERT_TRUE( |
- ui_test_utils::SendMouseEventsSync(ui_controls::LEFT, ui_controls::DOWN)); |
- ASSERT_TRUE( |
- ui_test_utils::SendMouseEventsSync(ui_controls::LEFT, ui_controls::UP)); |
- |
- focus_observer.Wait(); |
- EXPECT_EQ(OMNIBOX_FOCUS_INVISIBLE, omnibox()->model()->focus_state()); |
- |
- // The fakebox should now also have focus. |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!fakeboxIsFocused()", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.chrome.embeddedSearch", &result)); |
EXPECT_TRUE(result); |
- |
- // Type "a". |
- ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
- browser(), ui::KeyboardCode::VKEY_A, |
- /*control=*/false, /*shift=*/false, /*alt=*/false, /*command=*/false)); |
- |
- // The omnibox should have received visible focus. |
- EXPECT_EQ(OMNIBOX_FOCUS_VISIBLE, omnibox()->model()->focus_state()); |
- // ...and the typed text should have arrived there. |
- EXPECT_EQ("a", GetOmniboxText()); |
- |
- // On the JS side, the fakebox should have been hidden. |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!fakeboxIsVisible()", &result)); |
- EXPECT_FALSE(result); |
} |
namespace { |
@@ -250,8 +178,13 @@ content::RenderFrameHost* GetMostVisitedIframe(content::WebContents* tab) { |
} // namespace |
IN_PROC_BROWSER_TEST_F(LocalNTPTest, LoadsIframe) { |
+ if (content::AreAllSitesIsolatedForTesting()) { |
+ LOG(ERROR) << "LocalNTPTest.LoadsIframe doesn't work in " |
+ "--site-per-process mode yet, see crbug.com/695221."; |
+ return; |
+ } |
+ |
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
- FocusOmnibox(); |
content::WebContents* active_tab = OpenNewTab(browser(), ntp_url()); |
ASSERT_TRUE(search::IsInstantNTP(active_tab)); |
@@ -259,7 +192,8 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, LoadsIframe) { |
content::DOMMessageQueue msg_queue; |
bool result = false; |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!setupAdvancedTest(true)", &result)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!setupAdvancedTest(true)", &result)); |
ASSERT_TRUE(result); |
// Wait for the MV iframe to load. |
@@ -276,16 +210,16 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, LoadsIframe) { |
// Get the total number of (non-empty) tiles from the iframe. |
int total_thumbs = 0; |
- ASSERT_TRUE(GetIntFromJS( |
+ ASSERT_TRUE(instant_test_utils::GetIntFromJS( |
iframe, "document.querySelectorAll('.mv-thumb').length", &total_thumbs)); |
// Also get how many of the tiles succeeded and failed in loading their |
// thumbnail images. |
int succeeded_imgs = 0; |
- ASSERT_TRUE(GetIntFromJS(iframe, |
- "document.querySelectorAll('.mv-thumb img').length", |
- &succeeded_imgs)); |
+ ASSERT_TRUE(instant_test_utils::GetIntFromJS( |
+ iframe, "document.querySelectorAll('.mv-thumb img').length", |
+ &succeeded_imgs)); |
int failed_imgs = 0; |
- ASSERT_TRUE(GetIntFromJS( |
+ ASSERT_TRUE(instant_test_utils::GetIntFromJS( |
iframe, "document.querySelectorAll('.mv-thumb.failed-img').length", |
&failed_imgs)); |
@@ -327,7 +261,6 @@ IN_PROC_BROWSER_TEST_F(LocalNTPTest, |
// Setup Instant. |
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
- FocusOmnibox(); |
// Open a new tab. |
content::WebContents* active_tab = |
@@ -446,10 +379,7 @@ class FakeOneGoogleBarFetcher : public OneGoogleBarFetcher { |
base::Optional<OneGoogleBarData> one_google_bar_data_; |
}; |
-// TODO(treib): This inherits from InstantTestBase only for GetBoolFromJS, which |
-// should just be a global helper somewhere. |
-class LocalNTPOneGoogleBarSmokeTest : public InProcessBrowserTest, |
- public InstantTestBase { |
+class LocalNTPOneGoogleBarSmokeTest : public InProcessBrowserTest { |
public: |
LocalNTPOneGoogleBarSmokeTest() {} |
@@ -544,10 +474,11 @@ IN_PROC_BROWSER_TEST_F(LocalNTPOneGoogleBarSmokeTest, |
EXPECT_EQ("ogb-done", console_observer.message()); |
bool in_head_ran = false; |
- ASSERT_TRUE(GetBoolFromJS(active_tab, "!!window.inHeadRan", &in_head_ran)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.inHeadRan", &in_head_ran)); |
EXPECT_TRUE(in_head_ran); |
bool after_bar_ran = false; |
- ASSERT_TRUE( |
- GetBoolFromJS(active_tab, "!!window.afterBarRan", &after_bar_ran)); |
+ ASSERT_TRUE(instant_test_utils::GetBoolFromJS( |
+ active_tab, "!!window.afterBarRan", &after_bar_ran)); |
EXPECT_TRUE(after_bar_ran); |
} |