| Index: content/renderer/render_view_browsertest.cc
|
| diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
|
| index 78a950be4d11242fd11802cc3b2fdd205c73c109..3c1d73b8873f9fd77f047c600e312111838b99ff 100644
|
| --- a/content/renderer/render_view_browsertest.cc
|
| +++ b/content/renderer/render_view_browsertest.cc
|
| @@ -3,7 +3,6 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/basictypes.h"
|
| -
|
| #include "base/bind.h"
|
| #include "base/callback.h"
|
| #include "base/memory/shared_memory.h"
|
| @@ -14,14 +13,9 @@
|
| #include "content/common/ssl_status_serialization.h"
|
| #include "content/common/view_messages.h"
|
| #include "content/public/browser/browser_context.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/native_web_keyboard_event.h"
|
| -#include "content/public/browser/render_frame_host.h"
|
| -#include "content/public/browser/render_process_host.h"
|
| -#include "content/public/browser/web_contents.h"
|
| #include "content/public/browser/web_ui_controller_factory.h"
|
| #include "content/public/common/bindings_policy.h"
|
| -#include "content/public/common/content_switches.h"
|
| #include "content/public/common/page_zoom.h"
|
| #include "content/public/common/url_constants.h"
|
| #include "content/public/common/url_utils.h"
|
| @@ -34,24 +28,13 @@
|
| #include "content/renderer/render_view_impl.h"
|
| #include "content/shell/browser/shell.h"
|
| #include "content/shell/browser/shell_browser_context.h"
|
| -#include "content/shell/browser/shell_content_browser_client.h"
|
| -#include "content/shell/common/shell_content_client.h"
|
| -#include "content/shell/renderer/shell_content_renderer_client.h"
|
| -#include "content/test/content_browser_test.h"
|
| -#include "content/test/content_browser_test_utils.h"
|
| #include "content/test/mock_keyboard.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/cert/cert_status_flags.h"
|
| -#include "net/disk_cache/disk_cache.h"
|
| -#include "net/http/failing_http_transaction_factory.h"
|
| -#include "net/http/http_cache.h"
|
| -#include "net/url_request/url_request_context.h"
|
| -#include "net/url_request/url_request_context_getter.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/WebKit/public/platform/WebData.h"
|
| #include "third_party/WebKit/public/platform/WebHTTPBody.h"
|
| #include "third_party/WebKit/public/platform/WebString.h"
|
| -#include "third_party/WebKit/public/platform/WebURLError.h"
|
| #include "third_party/WebKit/public/platform/WebURLResponse.h"
|
| #include "third_party/WebKit/public/web/WebDataSource.h"
|
| #include "third_party/WebKit/public/web/WebFrame.h"
|
| @@ -323,97 +306,6 @@ class RenderViewImplTest : public RenderViewTest {
|
| scoped_ptr<MockKeyboard> mock_keyboard_;
|
| };
|
|
|
| -class TestShellContentRendererClient : public ShellContentRendererClient {
|
| - public:
|
| - TestShellContentRendererClient()
|
| - : latest_error_valid_(false),
|
| - latest_error_reason_(0),
|
| - latest_error_stale_copy_in_cache_(false) {}
|
| -
|
| - virtual void GetNavigationErrorStrings(
|
| - content::RenderView* render_view,
|
| - blink::WebFrame* frame,
|
| - const blink::WebURLRequest& failed_request,
|
| - const blink::WebURLError& error,
|
| - std::string* error_html,
|
| - base::string16* error_description) OVERRIDE {
|
| - if (error_html)
|
| - *error_html = "A suffusion of yellow.";
|
| - latest_error_valid_ = true;
|
| - latest_error_reason_ = error.reason;
|
| - latest_error_stale_copy_in_cache_ = error.staleCopyInCache;
|
| - }
|
| -
|
| - bool GetLatestError(int* error_code, bool* stale_cache_entry_present) {
|
| - if (latest_error_valid_) {
|
| - *error_code = latest_error_reason_;
|
| - *stale_cache_entry_present = latest_error_stale_copy_in_cache_;
|
| - }
|
| - return latest_error_valid_;
|
| - }
|
| -
|
| - private:
|
| - bool latest_error_valid_;
|
| - int latest_error_reason_;
|
| - bool latest_error_stale_copy_in_cache_;
|
| -};
|
| -
|
| -// Must be called on IO thread.
|
| -void InterceptNetworkTransactions(net::URLRequestContextGetter* getter,
|
| - net::Error error) {
|
| - DCHECK(content::BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - net::HttpCache* cache(
|
| - getter->GetURLRequestContext()->http_transaction_factory()->GetCache());
|
| - DCHECK(cache);
|
| - scoped_ptr<net::FailingHttpTransactionFactory> factory(
|
| - new net::FailingHttpTransactionFactory(cache->GetSession(), error));
|
| - // Throw away old version; since this is a browser test, there is no
|
| - // need to restore the old state.
|
| - cache->SetHttpNetworkTransactionFactoryForTesting(
|
| - factory.PassAs<net::HttpTransactionFactory>());
|
| -}
|
| -
|
| -void CallOnUIThreadValidatingReturn(const base::Closure& callback,
|
| - int rv) {
|
| - DCHECK_EQ(net::OK, rv);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::UI, FROM_HERE, callback);
|
| -}
|
| -
|
| -// Must be called on IO thread. The callback will be called on
|
| -// completion of cache clearing on the UI thread.
|
| -void BackendClearCache(scoped_ptr<disk_cache::Backend*> backend,
|
| - const base::Closure& callback,
|
| - int rv) {
|
| - DCHECK(*backend);
|
| - DCHECK_EQ(net::OK, rv);
|
| - (*backend)->DoomAllEntries(
|
| - base::Bind(&CallOnUIThreadValidatingReturn, callback));
|
| -}
|
| -
|
| -// Must be called on IO thread. The callback will be called on
|
| -// completion of cache clearing on the UI thread.
|
| -void ClearCache(net::URLRequestContextGetter* getter,
|
| - const base::Closure& callback) {
|
| - DCHECK(content::BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - net::HttpCache* cache(
|
| - getter->GetURLRequestContext()->http_transaction_factory()->GetCache());
|
| - DCHECK(cache);
|
| - scoped_ptr<disk_cache::Backend*> backend(new disk_cache::Backend*);
|
| - *backend = NULL;
|
| - disk_cache::Backend** backend_ptr = backend.get();
|
| -
|
| - net::CompletionCallback backend_callback(
|
| - base::Bind(&BackendClearCache, base::Passed(backend.Pass()), callback));
|
| -
|
| - // backend_ptr is valid until all copies of backend_callback go out
|
| - // of scope.
|
| - if (net::OK == cache->GetBackend(backend_ptr, backend_callback)) {
|
| - // The call completed synchronously, so GetBackend didn't run the callback.
|
| - backend_callback.Run(net::OK);
|
| - }
|
| -}
|
| -
|
| } // namespace
|
|
|
| // Test that we get form state change notifications when input fields change.
|
| @@ -2354,122 +2246,4 @@ TEST_F(RenderViewImplTest, FocusElementCallsFocusedNodeChanged) {
|
| render_thread_->sink().ClearMessages();
|
| }
|
|
|
| -// For actual, browser side tests targetting code in RenderView
|
| -// or RenderViewImpl.
|
| -class RenderViewBrowserTest : public ContentBrowserTest {
|
| - public:
|
| - RenderViewBrowserTest() : renderer_client_(NULL) {}
|
| -
|
| - virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| - // This method is needed to allow interaction with in-process renderer
|
| - // and use of a test ContentRendererClient.
|
| - command_line->AppendSwitch(switches::kSingleProcess);
|
| - }
|
| -
|
| - virtual void SetUp() OVERRIDE {
|
| - // Override setting of renderer client.
|
| - renderer_client_ = new TestShellContentRendererClient();
|
| - SetContentRendererClient(
|
| - scoped_ptr<ContentRendererClient>(renderer_client_).Pass());
|
| -
|
| - ContentBrowserTest::SetUp();
|
| - }
|
| -
|
| - // Navigates to the given URL and waits for |num_navigations| to occur, and
|
| - // the title to change to |expected_title|.
|
| - void NavigateToURLAndWaitForTitle(const GURL& url,
|
| - const std::string& expected_title,
|
| - int num_navigations) {
|
| - content::TitleWatcher title_watcher(
|
| - shell()->web_contents(), base::ASCIIToUTF16(expected_title));
|
| -
|
| - content::NavigateToURLBlockUntilNavigationsComplete(
|
| - shell(), url, num_navigations);
|
| -
|
| - EXPECT_EQ(base::ASCIIToUTF16(expected_title),
|
| - title_watcher.WaitAndGetTitle());
|
| - }
|
| -
|
| - // Returns true if there is a valid error stored; in this case
|
| - // |*error_code| and |*stale_cache_entry_present| will be updated
|
| - // appropriately.
|
| - // Must be called after the renderer thread is created.
|
| - bool GetLatestErrorFromRendererClient(
|
| - int* error_code, bool* stale_cache_entry_present) {
|
| - bool result = false;
|
| -
|
| - PostTaskToInProcessRendererAndWait(
|
| - base::Bind(&RenderViewBrowserTest::GetLatestErrorFromRendererClient0,
|
| - renderer_client_, &result, error_code,
|
| - stale_cache_entry_present));
|
| - return result;
|
| - }
|
| -
|
| - private:
|
| - // Must be run on renderer thread.
|
| - static void GetLatestErrorFromRendererClient0(
|
| - TestShellContentRendererClient* renderer_client,
|
| - bool* result, int* error_code, bool* stale_cache_entry_present) {
|
| - *result = renderer_client->GetLatestError(
|
| - error_code, stale_cache_entry_present);
|
| - }
|
| -
|
| - // Actually owned by the superclass, so safe to keep a bare pointer.
|
| - TestShellContentRendererClient* renderer_client_;
|
| -};
|
| -
|
| -#if defined(OS_ANDROID)
|
| -// Flaky https://crbug.com/341745
|
| -#define MAYBE_ConfirmCacheInformationPlumbed DISABLED_ConfirmCacheInformationPlumbed
|
| -#else
|
| -#define MAYBE_ConfirmCacheInformationPlumbed ConfirmCacheInformationPlumbed
|
| -#endif
|
| -
|
| -IN_PROC_BROWSER_TEST_F(RenderViewBrowserTest,
|
| - MAYBE_ConfirmCacheInformationPlumbed) {
|
| - ASSERT_TRUE(test_server()->Start());
|
| -
|
| - // Load URL with "nocache" set, to create stale cache.
|
| - GURL test_url(test_server()->GetURL("files/nocache.html"));
|
| - NavigateToURLAndWaitForTitle(test_url, "Nocache Test Page", 1);
|
| -
|
| - // Reload same URL after forcing an error from the the network layer;
|
| - // confirm that the error page is told the cached copy exists.
|
| - int renderer_id =
|
| - shell()->web_contents()->GetMainFrame()->GetProcess()->GetID();
|
| - scoped_refptr<net::URLRequestContextGetter> url_request_context_getter =
|
| - ShellContentBrowserClient::Get()->browser_context()->
|
| - GetRequestContextForRenderProcess(renderer_id);
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&InterceptNetworkTransactions, url_request_context_getter,
|
| - net::ERR_FAILED));
|
| -
|
| - // An error results in one completed navigation.
|
| - content::NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 1);
|
| - int error_code = net::OK;
|
| - bool stale_cache_entry_present = false;
|
| - ASSERT_TRUE(GetLatestErrorFromRendererClient(
|
| - &error_code, &stale_cache_entry_present));
|
| - EXPECT_EQ(net::ERR_FAILED, error_code);
|
| - EXPECT_TRUE(stale_cache_entry_present);
|
| -
|
| - // Clear the cache and repeat; confirm lack of entry in cache reported.
|
| - scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner;
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&ClearCache, url_request_context_getter,
|
| - runner->QuitClosure()));
|
| - runner->Run();
|
| -
|
| - content::NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 1);
|
| -
|
| - error_code = net::OK;
|
| - stale_cache_entry_present = true;
|
| - ASSERT_TRUE(GetLatestErrorFromRendererClient(
|
| - &error_code, &stale_cache_entry_present));
|
| - EXPECT_EQ(net::ERR_FAILED, error_code);
|
| - EXPECT_FALSE(stale_cache_entry_present);
|
| -}
|
| -
|
| } // namespace content
|
|
|