| // Copyright (c) 2009 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_TAB_CONTENTS_TEST_TAB_CONTENTS_H_ |
| #define CHROME_BROWSER_TAB_CONTENTS_TEST_TAB_CONTENTS_H_ |
| |
| #include "chrome/browser/profile.h" |
| #include "chrome/browser/tab_contents/tab_contents.h" |
| |
| class RenderViewHostFactory; |
| class TestRenderViewHost; |
| |
| // Subclass TabContents to ensure it creates TestRenderViewHosts and does |
| // not do anything involving views. |
| class TestTabContents : public TabContents { |
| public: |
| // The render view host factory will be passed on to the |
| TestTabContents(Profile* profile, SiteInstance* instance); |
| |
| TestRenderViewHost* pending_rvh(); |
| |
| // State accessor. |
| bool cross_navigation_pending() { |
| return render_manager_.cross_navigation_pending_; |
| } |
| |
| // Overrides TabContents::ShouldTransitionCrossSite so that we can test both |
| // alternatives without using command-line switches. |
| bool ShouldTransitionCrossSite() { return transition_cross_site; } |
| |
| // Promote DidNavigate to public. |
| void TestDidNavigate(RenderViewHost* render_view_host, |
| const ViewHostMsg_FrameNavigate_Params& params) { |
| DidNavigate(render_view_host, params); |
| } |
| |
| // Promote GetWebkitPrefs to public. |
| WebPreferences TestGetWebkitPrefs() { |
| return GetWebkitPrefs(); |
| } |
| |
| // Prevent interaction with views. |
| bool CreateRenderViewForRenderManager(RenderViewHost* render_view_host) { |
| // This will go to a TestRenderViewHost. |
| render_view_host->CreateRenderView(profile()->GetRequestContext()); |
| return true; |
| } |
| void UpdateRenderViewSizeForRenderManager() {} |
| |
| // Set by individual tests. |
| bool transition_cross_site; |
| }; |
| |
| #endif // CHROME_BROWSER_TAB_CONTENTS_TEST_TAB_CONTENTS_H_ |