Move test_web_contents.* from content\browser\web_contents to content\test, since that's where common test code belongs.
Review URL: https://codereview.chromium.org/12314100
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184439 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/test/test_web_contents.h b/content/test/test_web_contents.h
new file mode 100644
index 0000000..5b231ab8
--- /dev/null
+++ b/content/test/test_web_contents.h
@@ -0,0 +1,134 @@
+// Copyright (c) 2012 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 CONTENT_TEST_TEST_WEB_CONTENTS_H_
+#define CONTENT_TEST_TEST_WEB_CONTENTS_H_
+
+#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/common/page_transition_types.h"
+#include "content/public/test/web_contents_tester.h"
+#include "webkit/glue/webpreferences.h"
+
+class SiteInstanceImpl;
+
+namespace content {
+
+class RenderViewHost;
+class TestRenderViewHost;
+class WebContentsTester;
+
+// Subclass WebContentsImpl to ensure it creates TestRenderViewHosts
+// and does not do anything involving views.
+class TestWebContents : public WebContentsImpl, public WebContentsTester {
+ public:
+ virtual ~TestWebContents();
+
+ static TestWebContents* Create(BrowserContext* browser_context,
+ SiteInstance* instance);
+
+ // WebContentsTester implementation.
+ virtual void CommitPendingNavigation() OVERRIDE;
+ virtual int GetNumberOfFocusCalls() OVERRIDE;
+ virtual RenderViewHost* GetPendingRenderViewHost() const OVERRIDE;
+ virtual void NavigateAndCommit(const GURL& url) OVERRIDE;
+ virtual void TestSetIsLoading(bool value) OVERRIDE;
+ virtual void ProceedWithCrossSiteNavigation() OVERRIDE;
+ virtual void TestDidNavigate(RenderViewHost* render_view_host,
+ int page_id,
+ const GURL& url,
+ PageTransition transition) OVERRIDE;
+ virtual void TestDidNavigateWithReferrer(RenderViewHost* render_view_host,
+ int page_id,
+ const GURL& url,
+ const Referrer& referrer,
+ PageTransition transition) OVERRIDE;
+ virtual webkit_glue::WebPreferences TestGetWebkitPrefs() OVERRIDE;
+
+ TestRenderViewHost* pending_test_rvh() const;
+
+ // State accessor.
+ bool cross_navigation_pending() {
+ return render_manager_.cross_navigation_pending_;
+ }
+
+ // Overrides WebContentsImpl::ShouldTransitionCrossSite so that we can test
+ // both alternatives without using command-line switches.
+ bool ShouldTransitionCrossSite() { return transition_cross_site; }
+
+ // Prevent interaction with views.
+ virtual bool CreateRenderViewForRenderManager(
+ RenderViewHost* render_view_host, int opener_route_id) OVERRIDE;
+ virtual void UpdateRenderViewSizeForRenderManager() OVERRIDE {}
+
+ // Returns a clone of this TestWebContents. The returned object is also a
+ // TestWebContents. The caller owns the returned object.
+ virtual WebContents* Clone() OVERRIDE;
+
+ // Set by individual tests.
+ bool transition_cross_site;
+
+ // Allow mocking of the RenderViewHostDelegateView.
+ virtual RenderViewHostDelegateView* GetDelegateView() OVERRIDE;
+ void set_delegate_view(RenderViewHostDelegateView* view) {
+ delegate_view_override_ = view;
+ }
+
+ // Allows us to simulate this tab having an opener.
+ void SetOpener(TestWebContents* opener);
+
+ // Establish expected arguments for |SetHistoryLengthAndPrune()|. When
+ // |SetHistoryLengthAndPrune()| is called, the arguments are compared
+ // with the expected arguments specified here.
+ void ExpectSetHistoryLengthAndPrune(const SiteInstance* site_instance,
+ int history_length,
+ int32 min_page_id);
+
+ // Compares the arguments passed in with the expected arguments passed in
+ // to |ExpectSetHistoryLengthAndPrune()|.
+ virtual void SetHistoryLengthAndPrune(const SiteInstance* site_instance,
+ int history_length,
+ int32 min_page_id) OVERRIDE;
+
+ void TestDidFinishLoad(int64 frame_id, const GURL& url, bool is_main_frame);
+ void TestDidFailLoadWithError(int64 frame_id,
+ const GURL& url,
+ bool is_main_frame,
+ int error_code,
+ const string16& error_description);
+
+ protected:
+ // The deprecated WebContentsTester still needs to subclass this.
+ explicit TestWebContents(BrowserContext* browser_context);
+
+ private:
+ // WebContentsImpl overrides
+ virtual void CreateNewWindow(
+ int route_id,
+ const ViewHostMsg_CreateWindow_Params& params,
+ SessionStorageNamespace* session_storage_namespace) OVERRIDE;
+ virtual void CreateNewWidget(int route_id,
+ WebKit::WebPopupType popup_type) OVERRIDE;
+ virtual void CreateNewFullscreenWidget(int route_id) OVERRIDE;
+ virtual void ShowCreatedWindow(int route_id,
+ WindowOpenDisposition disposition,
+ const gfx::Rect& initial_pos,
+ bool user_gesture) OVERRIDE;
+ virtual void ShowCreatedWidget(int route_id,
+ const gfx::Rect& initial_pos) OVERRIDE;
+ virtual void ShowCreatedFullscreenWidget(int route_id) OVERRIDE;
+
+
+ RenderViewHostDelegateView* delegate_view_override_;
+
+ // Expectations for arguments of |SetHistoryLengthAndPrune()|.
+ bool expect_set_history_length_and_prune_;
+ scoped_refptr<const SiteInstanceImpl>
+ expect_set_history_length_and_prune_site_instance_;
+ int expect_set_history_length_and_prune_history_length_;
+ int32 expect_set_history_length_and_prune_min_page_id_;
+};
+
+} // namespace content
+
+#endif // CONTENT_TEST_TEST_WEB_CONTENTS_H_