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

Unified Diff: chrome/browser/apps/guest_view/web_view_browsertest.cc

Issue 1021073002: <webview> Implement clear http cache API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix compile error on mac/android: std::set initializer list makes them unhappy Created 5 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
« no previous file with comments | « no previous file | chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/apps/guest_view/web_view_browsertest.cc
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc
index 672f033c4a0c375a0e96b732c661a4daa0d39b72..079deed6bda61c3ce4e6fef24f9db9256dbd9585 100644
--- a/chrome/browser/apps/guest_view/web_view_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -257,6 +257,40 @@ class MockWebContentsDelegate : public content::WebContentsDelegate {
DISALLOW_COPY_AND_ASSIGN(MockWebContentsDelegate);
};
+class MockWebViewGuestDelegate : public extensions::WebViewGuestDelegate {
+ public:
+ explicit MockWebViewGuestDelegate(extensions::WebViewGuest* web_view_guest)
+ : web_view_guest_(web_view_guest), clear_cache_called_(false) {}
+ ~MockWebViewGuestDelegate() override {}
+
+ // WebViewGuestDelegate implementation.
+ void ClearCache(base::Time remove_since,
+ const base::Closure& callback) override {
+ clear_cache_called_ = true;
+ base::MessageLoop::current()->PostTask(FROM_HERE, callback);
+ }
+ bool HandleContextMenu(const content::ContextMenuParams& params) override {
+ return false;
+ }
+ void OnAttachWebViewHelpers(content::WebContents* contents) override {}
+ void OnDidCommitProvisionalLoadForFrame(bool is_main_frame) override {}
+ void OnDidInitialize() override {}
+ void OnDocumentLoadedInFrame(
+ content::RenderFrameHost* render_frame_host) override {}
+ void OnGuestDestroyed() override {}
+ void OnShowContextMenu(
+ int request_id,
+ const WebViewGuestDelegate::MenuItemVector* items) override {}
+
+ bool clear_cache_called() { return clear_cache_called_; }
+
+ private:
+ extensions::WebViewGuest* web_view_guest_;
+ bool clear_cache_called_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockWebViewGuestDelegate);
+};
+
// This class intercepts download request from the guest.
class MockDownloadWebContentsDelegate : public content::WebContentsDelegate {
public:
@@ -699,6 +733,7 @@ class WebViewTest : public extensions::PlatformAppBrowserTest {
ASSERT_TRUE(test_run_listener.WaitUntilSatisfied());
}
+ // Loads an app with a <webview> in it, returns once a guest is created.
void LoadAppWithGuest(const std::string& app_path) {
ExtensionTestMessageListener launched_listener("WebViewTest.LAUNCHED",
false);
@@ -2323,6 +2358,28 @@ IN_PROC_BROWSER_TEST_F(WebViewTest, ClearData) {
<< message_;
}
+IN_PROC_BROWSER_TEST_F(WebViewTest, ClearDataCache) {
+ LoadAppWithGuest("web_view/clear_data_cache");
+ content::WebContents* guest_web_contents = GetGuestWebContents();
+ auto guest = extensions::WebViewGuest::FromWebContents(guest_web_contents);
+ ASSERT_TRUE(guest);
+ scoped_ptr<extensions::WebViewGuestDelegate> mock_web_view_guest_delegate(
+ new MockWebViewGuestDelegate(guest));
+ scoped_ptr<extensions::WebViewGuestDelegate> orig_web_view_guest_delegate =
+ guest->SetDelegateForTesting(mock_web_view_guest_delegate.Pass());
+
+ ASSERT_TRUE(GetEmbedderWebContents());
+ ExtensionTestMessageListener clear_data_done_listener(
+ "WebViewTest.CLEAR_DATA_DONE", false);
+ EXPECT_TRUE(content::ExecuteScript(
+ GetEmbedderWebContents(), base::StringPrintf("testClearDataCache()")));
+ EXPECT_TRUE(clear_data_done_listener.WaitUntilSatisfied());
+
+ // Reset delegate back to original once we're done mocking.
+ mock_web_view_guest_delegate =
+ guest->SetDelegateForTesting(orig_web_view_guest_delegate.Pass());
+}
+
// This test is disabled on Win due to being flaky. http://crbug.com/294592
#if defined(OS_WIN)
#define MAYBE_ConsoleMessage DISABLED_ConsoleMessage
« no previous file with comments | « no previous file | chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698