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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_service_unittest.cc

Issue 971733003: Supervised users: When an extension requires new permissions, send request to custodian (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@test_ext_install_disable
Patch Set: test 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/supervised_user/supervised_user_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/prefs/scoped_user_pref_update.h" 8 #include "base/prefs/scoped_user_pref_update.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 profile_ = builder.Build(); 183 profile_ = builder.Build();
184 supervised_user_service_ = 184 supervised_user_service_ =
185 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 185 SupervisedUserServiceFactory::GetForProfile(profile_.get());
186 } 186 }
187 187
188 void TearDown() override { profile_.reset(); } 188 void TearDown() override { profile_.reset(); }
189 189
190 ~SupervisedUserServiceTest() override {} 190 ~SupervisedUserServiceTest() override {}
191 191
192 protected: 192 protected:
193 void AddAccessRequest(const GURL& url, AsyncResultHolder* result_holder) { 193 void AddURLAccessRequest(const GURL& url, AsyncResultHolder* result_holder) {
194 supervised_user_service_->AddAccessRequest( 194 supervised_user_service_->AddURLAccessRequest(
195 url, base::Bind(&AsyncResultHolder::SetResult, 195 url, base::Bind(&AsyncResultHolder::SetResult,
196 base::Unretained(result_holder))); 196 base::Unretained(result_holder)));
197 } 197 }
198 198
199 content::TestBrowserThreadBundle thread_bundle_; 199 content::TestBrowserThreadBundle thread_bundle_;
200 scoped_ptr<TestingProfile> profile_; 200 scoped_ptr<TestingProfile> profile_;
201 SupervisedUserService* supervised_user_service_; 201 SupervisedUserService* supervised_user_service_;
202 }; 202 };
203 203
204 } // namespace 204 } // namespace
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 ASSERT_LT(index, requested_urls_.size()); 242 ASSERT_LT(index, requested_urls_.size());
243 callbacks_[index].Run(result); 243 callbacks_[index].Run(result);
244 callbacks_.erase(callbacks_.begin() + index); 244 callbacks_.erase(callbacks_.begin() + index);
245 requested_urls_.erase(requested_urls_.begin() + index); 245 requested_urls_.erase(requested_urls_.begin() + index);
246 } 246 }
247 247
248 private: 248 private:
249 // PermissionRequestCreator: 249 // PermissionRequestCreator:
250 bool IsEnabled() const override { return enabled_; } 250 bool IsEnabled() const override { return enabled_; }
251 251
252 void CreatePermissionRequest(const GURL& url_requested, 252 void CreateURLAccessRequest(const GURL& url_requested,
253 const SuccessCallback& callback) override { 253 const SuccessCallback& callback) override {
254 ASSERT_TRUE(enabled_); 254 ASSERT_TRUE(enabled_);
255 requested_urls_.push_back(url_requested); 255 requested_urls_.push_back(url_requested);
256 callbacks_.push_back(callback); 256 callbacks_.push_back(callback);
257 } 257 }
258 258
259 void CreateExtensionUpdateRequest(const std::string& extension_id,
260 const SuccessCallback& callback) override {
261 FAIL();
262 }
263
259 bool enabled_; 264 bool enabled_;
260 std::vector<GURL> requested_urls_; 265 std::vector<GURL> requested_urls_;
261 std::vector<SuccessCallback> callbacks_; 266 std::vector<SuccessCallback> callbacks_;
262 267
263 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); 268 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator);
264 }; 269 };
265 270
266 } // namespace 271 } // namespace
267 272
268 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { 273 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) {
269 GURL url("http://www.example.com"); 274 GURL url("http://www.example.com");
270 275
271 // Without any permission request creators, it should be disabled, and any 276 // Without any permission request creators, it should be disabled, and any
272 // AddAccessRequest() calls should fail. 277 // AddURLAccessRequest() calls should fail.
273 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); 278 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled());
274 { 279 {
275 AsyncResultHolder result_holder; 280 AsyncResultHolder result_holder;
276 AddAccessRequest(url, &result_holder); 281 AddURLAccessRequest(url, &result_holder);
277 EXPECT_FALSE(result_holder.GetResult()); 282 EXPECT_FALSE(result_holder.GetResult());
278 } 283 }
279 284
280 // Add a disabled permission request creator. This should not change anything. 285 // Add a disabled permission request creator. This should not change anything.
281 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; 286 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator;
282 supervised_user_service_->AddPermissionRequestCreator( 287 supervised_user_service_->AddPermissionRequestCreator(
283 make_scoped_ptr(creator)); 288 make_scoped_ptr(creator));
284 289
285 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); 290 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled());
286 { 291 {
287 AsyncResultHolder result_holder; 292 AsyncResultHolder result_holder;
288 AddAccessRequest(url, &result_holder); 293 AddURLAccessRequest(url, &result_holder);
289 EXPECT_FALSE(result_holder.GetResult()); 294 EXPECT_FALSE(result_holder.GetResult());
290 } 295 }
291 296
292 // Enable the permission request creator. This should enable permission 297 // Enable the permission request creator. This should enable permission
293 // requests and queue them up. 298 // requests and queue them up.
294 creator->set_enabled(true); 299 creator->set_enabled(true);
295 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); 300 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled());
296 { 301 {
297 AsyncResultHolder result_holder; 302 AsyncResultHolder result_holder;
298 AddAccessRequest(url, &result_holder); 303 AddURLAccessRequest(url, &result_holder);
299 ASSERT_EQ(1u, creator->requested_urls().size()); 304 ASSERT_EQ(1u, creator->requested_urls().size());
300 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 305 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
301 306
302 creator->AnswerRequest(0, true); 307 creator->AnswerRequest(0, true);
303 EXPECT_TRUE(result_holder.GetResult()); 308 EXPECT_TRUE(result_holder.GetResult());
304 } 309 }
305 310
306 { 311 {
307 AsyncResultHolder result_holder; 312 AsyncResultHolder result_holder;
308 AddAccessRequest(url, &result_holder); 313 AddURLAccessRequest(url, &result_holder);
309 ASSERT_EQ(1u, creator->requested_urls().size()); 314 ASSERT_EQ(1u, creator->requested_urls().size());
310 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 315 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
311 316
312 creator->AnswerRequest(0, false); 317 creator->AnswerRequest(0, false);
313 EXPECT_FALSE(result_holder.GetResult()); 318 EXPECT_FALSE(result_holder.GetResult());
314 } 319 }
315 320
316 // Add a second permission request creator. 321 // Add a second permission request creator.
317 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; 322 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator;
318 creator_2->set_enabled(true); 323 creator_2->set_enabled(true);
319 supervised_user_service_->AddPermissionRequestCreator( 324 supervised_user_service_->AddPermissionRequestCreator(
320 make_scoped_ptr(creator_2)); 325 make_scoped_ptr(creator_2));
321 326
322 { 327 {
323 AsyncResultHolder result_holder; 328 AsyncResultHolder result_holder;
324 AddAccessRequest(url, &result_holder); 329 AddURLAccessRequest(url, &result_holder);
325 ASSERT_EQ(1u, creator->requested_urls().size()); 330 ASSERT_EQ(1u, creator->requested_urls().size());
326 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 331 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
327 332
328 // Make the first creator succeed. This should make the whole thing succeed. 333 // Make the first creator succeed. This should make the whole thing succeed.
329 creator->AnswerRequest(0, true); 334 creator->AnswerRequest(0, true);
330 EXPECT_TRUE(result_holder.GetResult()); 335 EXPECT_TRUE(result_holder.GetResult());
331 } 336 }
332 337
333 { 338 {
334 AsyncResultHolder result_holder; 339 AsyncResultHolder result_holder;
335 AddAccessRequest(url, &result_holder); 340 AddURLAccessRequest(url, &result_holder);
336 ASSERT_EQ(1u, creator->requested_urls().size()); 341 ASSERT_EQ(1u, creator->requested_urls().size());
337 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 342 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
338 343
339 // Make the first creator fail. This should fall back to the second one. 344 // Make the first creator fail. This should fall back to the second one.
340 creator->AnswerRequest(0, false); 345 creator->AnswerRequest(0, false);
341 ASSERT_EQ(1u, creator_2->requested_urls().size()); 346 ASSERT_EQ(1u, creator_2->requested_urls().size());
342 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); 347 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec());
343 348
344 // Make the second creator succeed, which will make the whole thing succeed. 349 // Make the second creator succeed, which will make the whole thing succeed.
345 creator_2->AnswerRequest(0, true); 350 creator_2->AnswerRequest(0, true);
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 ASSERT_EQ(1u, site_list_observer_.sites().size()); 576 ASSERT_EQ(1u, site_list_observer_.sites().size());
572 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); 577 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name);
573 578
574 url_filter_observer_.Wait(); 579 url_filter_observer_.Wait();
575 EXPECT_EQ(SupervisedUserURLFilter::WARN, 580 EXPECT_EQ(SupervisedUserURLFilter::WARN,
576 url_filter->GetFilteringBehaviorForURL(example_url)); 581 url_filter->GetFilteringBehaviorForURL(example_url));
577 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 582 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
578 url_filter->GetFilteringBehaviorForURL(moose_url)); 583 url_filter->GetFilteringBehaviorForURL(moose_url));
579 } 584 }
580 #endif // defined(ENABLE_EXTENSIONS) 585 #endif // defined(ENABLE_EXTENSIONS)
OLDNEW
« no previous file with comments | « chrome/browser/supervised_user/supervised_user_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698