Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(274)

Unified Diff: chrome/browser/instant/instant_test_utils.h

Issue 12386019: Instant: Use only one hidden WebContents per profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/instant/instant_test_utils.h
diff --git a/chrome/browser/instant/instant_test_utils.h b/chrome/browser/instant/instant_test_utils.h
index e09d27603f62d623820707ea3ca73822118f864d..1c88d0b5887b9b32ed947e431946dc8c73b68516 100644
--- a/chrome/browser/instant/instant_test_utils.h
+++ b/chrome/browser/instant/instant_test_utils.h
@@ -9,79 +9,60 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
-#include "base/run_loop.h"
-#include "chrome/browser/instant/instant_controller.h"
-#include "chrome/browser/instant/instant_overlay_model_observer.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/common/search_types.h"
#include "googleurl/src/gurl.h"
#include "net/test/test_server.h"
+class Browser;
class InstantController;
-class InstantModel;
+class InstantService;
class OmniboxView;
+struct TemplateURLData;
namespace content {
class WebContents;
-};
-
-class InstantTestModelObserver : public InstantOverlayModelObserver {
- public:
- InstantTestModelObserver(InstantOverlayModel* model,
- chrome::search::Mode::Type desired_mode_type);
- ~InstantTestModelObserver();
-
- void WaitForDesiredOverlayState();
-
- // Overridden from InstantOverlayModelObserver:
- virtual void OverlayStateChanged(const InstantOverlayModel& model) OVERRIDE;
-
- private:
- InstantOverlayModel* const model_;
- const chrome::search::Mode::Type desired_mode_type_;
- base::RunLoop run_loop_;
-
- DISALLOW_COPY_AND_ASSIGN(InstantTestModelObserver);
-};
+}
// 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()
- : https_test_server_(
- net::TestServer::TYPE_HTTPS,
- net::BaseTestServer::SSLOptions(),
- base::FilePath(FILE_PATH_LITERAL("chrome/test/data"))) {
- }
- virtual ~InstantTestBase() {}
-
- protected:
- void SetupInstant(Browser* browser);
- void Init(const GURL& instant_url);
-
- InstantController* instant() {
- return browser_->instant_controller()->instant();
- }
-
- OmniboxView* omnibox() {
- return browser_->window()->GetLocationBar()->GetLocationEntry();
- }
+ public:
+ InstantTestBase();
+ virtual ~InstantTestBase();
+ // Accessors for common objects. These objects are meant for use by derived
+ // classes. InstantTestBase doesn't itself use them.
+ net::TestServer* https_test_server() { return &https_test_server_; }
const GURL& instant_url() const { return instant_url_; }
+ void set_instant_url(const GURL& url) { instant_url_ = url; }
+
+ // Call this as soon as possible. It's used by many of the other methods in
+ // this class, including SetupDefaultSearchProvider() and instant(). If you
+ // create a new browser window and want those other methods to point to it,
+ // call set_browser() first with the new Browser object.
+ void set_browser(Browser* browser) { browser_ = browser; }
- net::TestServer& https_test_server() { return https_test_server_; }
+ // Initializes the user profile dir so that Instant is disabled. Returns true
+ // on success. Call this from InProcessBrowserTest::SetUpUserDataDirectory()
+ // to ensure that Instant doesn't try to activate on browser startup. To
+ // re-enable Instant later, call SetupDefaultSearchProvider().
+ bool DisableInstantOnStartup();
- void KillInstantRenderView();
+ // Sets up the default search engine. NOTE: |template_data| must have a valid
+ // Instant URL for this to work. In particular, InstantTestBase doesn't fill
+ // it in using |instant_url_|.
+ void SetupDefaultSearchProvider(const TemplateURLData& template_data);
+
+ InstantService* service() const;
+ InstantController* instant() const;
+ OmniboxView* omnibox() const;
void FocusOmnibox();
+ void WaitForInstantSupport();
void FocusOmniboxAndWaitForInstantSupport();
- void FocusOmniboxAndWaitForInstantExtendedSupport();
void SetOmniboxText(const std::string& text);
+ void WaitForOverlayToShow();
+ void WaitForOverlayToHide();
void SetOmniboxTextAndWaitForOverlayToShow(const std::string& text);
bool GetBoolFromJS(content::WebContents* contents,
@@ -93,27 +74,23 @@ class InstantTestBase {
bool GetStringFromJS(content::WebContents* contents,
const std::string& script,
std::string* result) WARN_UNUSED_RESULT;
- bool ExecuteScript(const std::string& script) WARN_UNUSED_RESULT;
bool CheckVisibilityIs(content::WebContents* contents,
bool expected) WARN_UNUSED_RESULT;
- bool HasUserInputInProgress();
- bool HasTemporaryText();
- // 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);
+ void KillOverlayRenderView();
+
+ // Loads |image_url| in the context of |contents|. |loaded| contains whether
+ // the image was able to load without error. The method returns true if the
+ // JavaScript executed cleanly.
+ bool LoadImage(content::WebContents* contents,
+ const std::string& image_url,
+ bool* loaded) WARN_UNUSED_RESULT;
private:
+ net::TestServer https_test_server_;
GURL instant_url_;
-
Browser* browser_;
- // HTTPS Testing server, started on demand.
- net::TestServer https_test_server_;
-
DISALLOW_COPY_AND_ASSIGN(InstantTestBase);
};

Powered by Google App Engine
This is Rietveld 408576698