// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_SEARCH_INSTANT_TEST_UTILS_H_ #define CHROME_BROWSER_UI_SEARCH_INSTANT_TEST_UTILS_H_ #include #include "base/basictypes.h" #include "base/compiler_specific.h" #include "base/metrics/field_trial.h" #include "base/run_loop.h" #include "base/strings/string16.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_instant_controller.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/omnibox/location_bar.h" #include "chrome/browser/ui/search/instant_controller.h" #include "chrome/common/search_types.h" #include "net/test/spawned_test_server/spawned_test_server.h" #include "url/gurl.h" class BrowserInstantController; class InstantController; class InstantModel; class OmniboxView; namespace content { class WebContents; }; // This utility class is meant to be used in a "mix-in" fashion, giving the // derived test class additional Instant-related functionality. class InstantTestBase { protected: InstantTestBase(); virtual ~InstantTestBase(); protected: void SetupInstant(Browser* browser); void Init(const GURL& instant_url, const GURL& ntp_url, bool init_suggestions_url); void SetInstantURL(const std::string& url); void set_browser(Browser* browser) { browser_ = browser; } BrowserInstantController* browser_instant() { return browser_->instant_controller(); } InstantController* instant() { return browser_->instant_controller()->instant(); } OmniboxView* omnibox() { return browser_->window()->GetLocationBar()->GetOmniboxView(); } const GURL& instant_url() const { return instant_url_; } net::SpawnedTestServer& https_test_server() { return https_test_server_; } void KillInstantRenderView(); void FocusOmnibox(); void SetOmniboxText(const std::string& text); void PressEnterAndWaitForNavigation(); void PressEnterAndWaitForFrameLoad(); bool GetBoolFromJS(content::WebContents* contents, const std::string& script, bool* result) WARN_UNUSED_RESULT; bool GetIntFromJS(content::WebContents* contents, const std::string& script, int* result) WARN_UNUSED_RESULT; bool GetStringFromJS(content::WebContents* contents, const std::string& script, std::string* result) WARN_UNUSED_RESULT; bool CheckVisibilityIs(content::WebContents* contents, bool expected) WARN_UNUSED_RESULT; std::string GetOmniboxText(); // Loads a named image from url |image| from the given |rvh| host. |loaded| // returns whether the image was able to load without error. // The method returns true if the JavaScript executed cleanly. bool LoadImage(content::RenderViewHost* rvh, const std::string& image, bool* loaded); // Returns the omnibox's inline autocompletion (shown in blue highlight). base::string16 GetBlueText(); private: GURL instant_url_; GURL ntp_url_; Browser* browser_; // HTTPS Testing server, started on demand. net::SpawnedTestServer https_test_server_; // Set to true to initialize suggestions URL in default search provider. bool init_suggestions_url_; DISALLOW_COPY_AND_ASSIGN(InstantTestBase); }; #endif // CHROME_BROWSER_UI_SEARCH_INSTANT_TEST_UTILS_H_