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

Unified Diff: content/renderer/render_view_browsertest.cc

Issue 161093002: Disable RenderViewBrowserTest.ConfirmCacheInformationPlumbed on branded builders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync'd to r250709 Created 6 years, 10 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
« no previous file with comments | « content/renderer/browser_render_view_browsertest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « content/renderer/browser_render_view_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698