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

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: . 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 118
114 // NaCl based PPAPI tests requiring an Audio device. 119 // NaCl based PPAPI tests requiring an Audio device.
115 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(test_name) \ 120 #define TEST_PPAPI_NACL_VIA_HTTP_WITH_AUDIO_OUTPUT(test_name) \
116 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \ 121 IN_PROC_BROWSER_TEST_F(PPAPINaClNewlibTest, test_name) { \
117 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \ 122 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
118 } \ 123 } \
119 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \ 124 IN_PROC_BROWSER_TEST_F(PPAPINaClGLibcTest, test_name) { \
120 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \ 125 RunTestViaHTTPIfAudioOutputAvailable(STRIP_PREFIXES(test_name)); \
121 } 126 }
122 #endif 127 #endif
123 128
markusheintz_ 2012/08/13 06:09:06 nit: pls remove empty line.
Bernhard Bauer 2012/08/13 10:51:46 Done.
124 129
130
125 // 131 //
126 // Interface tests. 132 // Interface tests.
127 // 133 //
128 134
129 // Disable tests under ASAN. http://crbug.com/104832. 135 // Disable tests under ASAN. http://crbug.com/104832.
130 // This is a bit heavy handed, but the majority of these tests fail under ASAN. 136 // This is a bit heavy handed, but the majority of these tests fail under ASAN.
131 // See bug for history. 137 // See bug for history.
132 #if !defined(ADDRESS_SANITIZER) 138 #if !defined(ADDRESS_SANITIZER)
133 139
134 TEST_PPAPI_IN_PROCESS(Broker) 140 TEST_PPAPI_IN_PROCESS(Broker)
135 // Flaky, http://crbug.com/111355 141 // Flaky, http://crbug.com/111355
136 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker) 142 TEST_PPAPI_OUT_OF_PROCESS(DISABLED_Broker)
137 143
144 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Accept) {
145 // Accepting the infobar should grant permission to access the PPAPI broker.
146 StrictMock<InfoBarObserver> observer;
147 EXPECT_CALL(observer, ShouldAcceptInfoBar(_)).WillOnce(Return(true));
148
149 GURL url = GetTestFileUrl("Broker_ConnectPermissionGranted");
150 RunTestURL(url);
151
152 // It should also set a content settings exception for the site.
153 HostContentSettingsMap* content_settings =
154 browser()->profile()->GetHostContentSettingsMap();
155 EXPECT_EQ(CONTENT_SETTING_ALLOW,
156 content_settings->GetContentSetting(
157 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
158 }
159
160 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Deny) {
161 // Canceling the infobar should deny permission to access the PPAPI broker.
162 StrictMock<InfoBarObserver> observer;
163 EXPECT_CALL(observer, ShouldAcceptInfoBar(_)).WillOnce(Return(false));
164
165 GURL url = GetTestFileUrl("Broker_ConnectPermissionDenied");
166 RunTestURL(url);
167
168 // It should *not* set a content settings exception for the site.
169 HostContentSettingsMap* content_settings =
170 browser()->profile()->GetHostContentSettingsMap();
171 EXPECT_EQ(CONTENT_SETTING_ASK,
172 content_settings->GetContentSetting(
173 url, url, CONTENT_SETTINGS_TYPE_PPAPI_BROKER, std::string()));
174 }
175
176 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Blocked) {
177 // Block access to the PPAPI broker.
178 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
179 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_BLOCK);
180
181 // We shouldn't see an infobar.
182 StrictMock<InfoBarObserver> observer;
183
184 RunTest("Broker_ConnectPermissionDenied");
185 }
186
187 IN_PROC_BROWSER_TEST_F(PPAPIBrokerInfoBarTest, Allowed) {
188 // Always allow access to the PPAPI broker.
189 browser()->profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
190 CONTENT_SETTINGS_TYPE_PPAPI_BROKER, CONTENT_SETTING_ALLOW);
191
192 // We shouldn't see an infobar.
193 StrictMock<InfoBarObserver> observer;
194
195 RunTest("Broker_ConnectPermissionGranted");
196 }
197
138 TEST_PPAPI_IN_PROCESS(Core) 198 TEST_PPAPI_IN_PROCESS(Core)
139 TEST_PPAPI_OUT_OF_PROCESS(Core) 199 TEST_PPAPI_OUT_OF_PROCESS(Core)
140 TEST_PPAPI_NACL_VIA_HTTP(Core) 200 TEST_PPAPI_NACL_VIA_HTTP(Core)
141 201
142 // Times out on Linux. http://crbug.com/108859 202 // Times out on Linux. http://crbug.com/108859
143 #if defined(OS_LINUX) 203 #if defined(OS_LINUX)
144 #define MAYBE_InputEvent DISABLED_InputEvent 204 #define MAYBE_InputEvent DISABLED_InputEvent
145 #elif defined(OS_MACOSX) 205 #elif defined(OS_MACOSX)
146 // Flaky on Mac. http://crbug.com/109258 206 // Flaky on Mac. http://crbug.com/109258
147 #define MAYBE_InputEvent DISABLED_InputEvent 207 #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) 862 TEST_PPAPI_OUT_OF_PROCESS(FlashMessageLoop_RunWithoutQuit)
803 863
804 TEST_PPAPI_IN_PROCESS(MouseCursor) 864 TEST_PPAPI_IN_PROCESS(MouseCursor)
805 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor) 865 TEST_PPAPI_OUT_OF_PROCESS(MouseCursor)
806 TEST_PPAPI_NACL_VIA_HTTP(MouseCursor) 866 TEST_PPAPI_NACL_VIA_HTTP(MouseCursor)
807 867
808 // Only enabled in out-of-process mode. 868 // Only enabled in out-of-process mode.
809 TEST_PPAPI_OUT_OF_PROCESS(FlashFile_CreateTemporaryFile) 869 TEST_PPAPI_OUT_OF_PROCESS(FlashFile_CreateTemporaryFile)
810 870
811 #endif // ADDRESS_SANITIZER 871 #endif // ADDRESS_SANITIZER
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698