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

Side by Side Diff: chrome/test/ppapi/ppapi_browsertest.cc

Issue 10826164: Add infobar for PPAPI broker usage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 8 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/ppapi/ppapi_test.h" 5 #include "chrome/test/ppapi/ppapi_test.h"
6 6
7 #include "base/test/test_timeouts.h" 7 #include "base/test/test_timeouts.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 #include "chrome/browser/content_settings/host_content_settings_map.h"
10 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/browser.h" 11 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_navigator.h" 12 #include "chrome/browser/ui/browser_navigator.h"
11 #include "chrome/browser/ui/browser_tabstrip.h" 13 #include "chrome/browser/ui/browser_tabstrip.h"
12 #include "chrome/test/base/ui_test_utils.h" 14 #include "chrome/test/base/ui_test_utils.h"
13 #include "content/public/browser/web_contents.h" 15 #include "content/public/browser/web_contents.h"
14 #include "content/public/common/url_constants.h" 16 #include "content/public/common/url_constants.h"
15 #include "content/public/test/test_renderer_host.h" 17 #include "content/public/test/test_renderer_host.h"
16 18
17 using content::RenderViewHost; 19 using content::RenderViewHost;
20 using ::testing::Return;
21 using ::testing::StrictMock;
22 using ::testing::_;
18 23
19 // This macro finesses macro expansion to do what we want. 24 // This macro finesses macro expansion to do what we want.
20 #define STRIP_PREFIXES(test_name) StripPrefixes(#test_name) 25 #define STRIP_PREFIXES(test_name) StripPrefixes(#test_name)
21 26
22 // Use these macros to run the tests for a specific interface. 27 // Use these macros to run the tests for a specific interface.
23 // Most interfaces should be tested with both macros. 28 // Most interfaces should be tested with both macros.
24 #define TEST_PPAPI_IN_PROCESS(test_name) \ 29 #define TEST_PPAPI_IN_PROCESS(test_name) \
25 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \ 30 IN_PROC_BROWSER_TEST_F(PPAPITest, test_name) { \
26 RunTest(STRIP_PREFIXES(test_name)); \ 31 RunTest(STRIP_PREFIXES(test_name)); \
27 } 32 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 133
129 // Disable tests under ASAN. http://crbug.com/104832. 134 // Disable tests under ASAN. http://crbug.com/104832.
130 // This is a bit heavy handed, but the majority of these tests fail under ASAN. 135 // This is a bit heavy handed, but the majority of these tests fail under ASAN.
131 // See bug for history. 136 // See bug for history.
132 #if !defined(ADDRESS_SANITIZER) 137 #if !defined(ADDRESS_SANITIZER)
133 138
134 TEST_PPAPI_IN_PROCESS(Broker) 139 TEST_PPAPI_IN_PROCESS(Broker)
135 // Flaky, http://crbug.com/111355 140 // Flaky, http://crbug.com/111355
136 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker) 141 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
137 142
143 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) {
144 // Accepting the infobar should grant permission to access the PPAPI broker.
145 StrictMock<InfoBarObserver> observer;
146 EXPECT_CALL(observer, ShouldAcceptInfoBar(_)).WillOnce(Return(true));
147
148 GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted");
149 RunTestURL(url);
150
151 // It should also set a content settings exception for the site.
152 HostContentSettingsMap* content_settings =
153 browser()->profile()->GetHostContentSettingsMap();
154 EXPECT_EQ(CONTENT_SETTING_ALLOW,
155 content_settings->GetContentSetting(
156 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
157 }
158
159 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) {
160 // Canceling the infobar should deny permission to access the PPAPI broker.
161 StrictMock<InfoBarObserver> observer;
162 EXPECT_CALL(observer, ShouldAcceptInfoBar(_)).WillOnce(Return(false));
163
164 GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied");
165 RunTestURL(url);
166
167 // It should *not* set a content settings exception for the site.
168 HostContentSettingsMap* content_settings =
169 browser()->profile()->GetHostContentSettingsMap();
170 EXPECT_EQ(CONTENT_SETTING_ASK,
171 content_settings->GetContentSetting(
172 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
173 }
174
175 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) {
176 // Block access to the PPAPI broker.
177 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
178 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK);
179
180 // We shouldn't see an infobar.
181 StrictMock<InfoBarObserver> observer;
182
183 RunTest("Broker_ConnectPermissionDenied");
184 }
185
186 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) {
187 // Always allow access to the PPAPI broker.
188 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
189 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW);
190
191 // We shouldn't see an infobar.
192 StrictMock<InfoBarObserver> observer;
193
194 RunTest("Broker_ConnectPermissionGranted");
195 }
196
138 TEST_PPAPI_IN_PROCESS(Core) 197 TEST_PPAPI_IN_PROCESS(Core)
139 TEST_PPAPI_OUT_OF_PROCESS(Core) 198 TEST_PPAPI_OUT_OF_PROCESS(Core)
140 TEST_PPAPI_NACL_VIA_HTTP(Core) 199 TEST_PPAPI_NACL_VIA_HTTP(Core)
141 200
142 // Times out on Linux. http://crbug.com/108859 201 // Times out on Linux. http://crbug.com/108859
143 #if defined(OS_LINUX) 202 #if defined(OS_LINUX)
144 #define MAYBE_InputEvent DISABLED_InputEvent 203 #define MAYBE_InputEvent DISABLED_InputEvent
145 #elif defined(OS_MACOSX) 204 #elif defined(OS_MACOSX)
146 // Flaky on Mac. http://crbug.com/109258 205 // Flaky on Mac. http://crbug.com/109258
147 #define MAYBE_InputEvent DISABLED_InputEvent 206 #define MAYBE_InputEvent DISABLED_InputEvent
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_RunWithoutQuit) 861 TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_RunWithoutQuit)
803 862
804 TEST_PPAPI_IN_PROCESS(MouseCursor) 863 TEST_PPAPI_IN_PROCESS(MouseCursor)
805 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor) 864 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor)
806 TEST_PPAPI_NACL_VIA_HTTP(MouseCursor) 865 TEST_PPAPI_NACL_VIA_HTTP(MouseCursor)
807 866
808 // Only enabled in out-of-process mode. 867 // Only enabled in out-of-process mode.
809 TEST_PPAPI_OUT_OF_PROCESS(FlashFile_CreateTemporaryFile) 868 TEST_PPAPI_OUT_OF_PROCESS(FlashFile_CreateTemporaryFile)
810 869
811 #endif // ADDRESS_SANITIZER 870 #endif // ADDRESS_SANITIZER
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698