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

Side by Side Diff: chrome/browser/extensions/api/webrequest/webrequest_apitest.cc

Issue 9701039: Refactor folders in chrome/browser/extensions/api (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Small change to includes in extension_event_router.cc Created 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/command_line.h"
6 #include "chrome/browser/extensions/api/webrequest/webrequest_api.h"
7 #include "chrome/browser/extensions/extension_apitest.h"
8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/login/login_prompt.h"
12 #include "chrome/common/chrome_notification_types.h"
13 #include "chrome/common/chrome_switches.h"
14 #include "chrome/test/base/ui_test_utils.h"
15 #include "content/public/browser/notification_registrar.h"
16 #include "content/public/browser/notification_service.h"
17 #include "content/public/browser/render_view_host.h"
18 #include "content/public/browser/web_contents.h"
19 #include "net/base/mock_host_resolver.h"
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
21
22 using content::WebContents;
23
24 namespace {
25
26 class CancelLoginDialog : public content::NotificationObserver {
27 public:
28 CancelLoginDialog() {
29 registrar_.Add(this,
30 chrome::NOTIFICATION_AUTH_NEEDED,
31 content::NotificationService::AllSources());
32 }
33
34 virtual ~CancelLoginDialog() {}
35
36 virtual void Observe(int type,
37 const content::NotificationSource& source,
38 const content::NotificationDetails& details) {
39 LoginHandler* handler =
40 content::Details<LoginNotificationDetails>(details).ptr()->handler();
41 handler->CancelAuth();
42 }
43
44 private:
45 content::NotificationRegistrar registrar_;
46
47 DISALLOW_COPY_AND_ASSIGN(CancelLoginDialog);
48 };
49
50 } // namespace
51
52 class ExtensionWebRequestApiTest : public ExtensionApiTest {
53 public:
54 virtual void SetUpInProcessBrowserTestFixture() {
55 ExtensionApiTest::SetUpInProcessBrowserTestFixture();
56 host_resolver()->AddRule("*", "127.0.0.1");
57 ASSERT_TRUE(StartTestServer());
58 }
59 };
60
61 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestApi) {
62 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_api.html")) << message_;
63 }
64
65 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestSimple) {
66 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_simple.html")) <<
67 message_;
68 }
69
70 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestComplex) {
71 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_complex.html")) <<
72 message_;
73 }
74
75 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestAuthRequired) {
76 CancelLoginDialog login_dialog_helper;
77
78 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_auth_required.html")) <<
79 message_;
80 }
81
82 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestBlocking) {
83 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_blocking.html")) <<
84 message_;
85 }
86
87 IN_PROC_BROWSER_TEST_F(ExtensionWebRequestApiTest, WebRequestNewTab) {
88 // Wait for the extension to set itself up and return control to us.
89 ASSERT_TRUE(RunExtensionSubtest("webrequest", "test_newTab.html"))
90 << message_;
91
92 WebContents* tab = browser()->GetSelectedWebContents();
93 ui_test_utils::WaitForLoadStop(tab);
94
95 ResultCatcher catcher;
96
97 ExtensionService* service = browser()->profile()->GetExtensionService();
98 const Extension* extension =
99 service->GetExtensionById(last_loaded_extension_id_, false);
100 GURL url = extension->GetResourceURL("newTab/a.html");
101
102 ui_test_utils::NavigateToURL(browser(), url);
103
104 // There's a link on a.html with target=_blank. Click on it to open it in a
105 // new tab.
106 WebKit::WebMouseEvent mouse_event;
107 mouse_event.type = WebKit::WebInputEvent::MouseDown;
108 mouse_event.button = WebKit::WebMouseEvent::ButtonLeft;
109 mouse_event.x = 7;
110 mouse_event.y = 7;
111 mouse_event.clickCount = 1;
112 tab->GetRenderViewHost()->ForwardMouseEvent(mouse_event);
113 mouse_event.type = WebKit::WebInputEvent::MouseUp;
114 tab->GetRenderViewHost()->ForwardMouseEvent(mouse_event);
115
116 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
117 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698