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

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: fix 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
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 {
Bernhard Bauer 2015/03/02 16:41:56 Add a FAIL()?
Marc Treib 2015/03/02 18:26:00 Done.
261 }
262
259 bool enabled_; 263 bool enabled_;
260 std::vector<GURL> requested_urls_; 264 std::vector<GURL> requested_urls_;
261 std::vector<SuccessCallback> callbacks_; 265 std::vector<SuccessCallback> callbacks_;
262 266
263 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator); 267 DISALLOW_COPY_AND_ASSIGN(MockPermissionRequestCreator);
264 }; 268 };
265 269
266 } // namespace 270 } // namespace
267 271
268 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) { 272 TEST_F(SupervisedUserServiceTest, CreatePermissionRequest) {
269 GURL url("http://www.example.com"); 273 GURL url("http://www.example.com");
270 274
271 // Without any permission request creators, it should be disabled, and any 275 // Without any permission request creators, it should be disabled, and any
272 // AddAccessRequest() calls should fail. 276 // AddURLAccessRequest() calls should fail.
273 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); 277 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled());
274 { 278 {
275 AsyncResultHolder result_holder; 279 AsyncResultHolder result_holder;
276 AddAccessRequest(url, &result_holder); 280 AddURLAccessRequest(url, &result_holder);
277 EXPECT_FALSE(result_holder.GetResult()); 281 EXPECT_FALSE(result_holder.GetResult());
278 } 282 }
279 283
280 // Add a disabled permission request creator. This should not change anything. 284 // Add a disabled permission request creator. This should not change anything.
281 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator; 285 MockPermissionRequestCreator* creator = new MockPermissionRequestCreator;
282 supervised_user_service_->AddPermissionRequestCreator( 286 supervised_user_service_->AddPermissionRequestCreator(
283 make_scoped_ptr(creator)); 287 make_scoped_ptr(creator));
284 288
285 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled()); 289 EXPECT_FALSE(supervised_user_service_->AccessRequestsEnabled());
286 { 290 {
287 AsyncResultHolder result_holder; 291 AsyncResultHolder result_holder;
288 AddAccessRequest(url, &result_holder); 292 AddURLAccessRequest(url, &result_holder);
289 EXPECT_FALSE(result_holder.GetResult()); 293 EXPECT_FALSE(result_holder.GetResult());
290 } 294 }
291 295
292 // Enable the permission request creator. This should enable permission 296 // Enable the permission request creator. This should enable permission
293 // requests and queue them up. 297 // requests and queue them up.
294 creator->set_enabled(true); 298 creator->set_enabled(true);
295 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled()); 299 EXPECT_TRUE(supervised_user_service_->AccessRequestsEnabled());
296 { 300 {
297 AsyncResultHolder result_holder; 301 AsyncResultHolder result_holder;
298 AddAccessRequest(url, &result_holder); 302 AddURLAccessRequest(url, &result_holder);
299 ASSERT_EQ(1u, creator->requested_urls().size()); 303 ASSERT_EQ(1u, creator->requested_urls().size());
300 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 304 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
301 305
302 creator->AnswerRequest(0, true); 306 creator->AnswerRequest(0, true);
303 EXPECT_TRUE(result_holder.GetResult()); 307 EXPECT_TRUE(result_holder.GetResult());
304 } 308 }
305 309
306 { 310 {
307 AsyncResultHolder result_holder; 311 AsyncResultHolder result_holder;
308 AddAccessRequest(url, &result_holder); 312 AddURLAccessRequest(url, &result_holder);
309 ASSERT_EQ(1u, creator->requested_urls().size()); 313 ASSERT_EQ(1u, creator->requested_urls().size());
310 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 314 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
311 315
312 creator->AnswerRequest(0, false); 316 creator->AnswerRequest(0, false);
313 EXPECT_FALSE(result_holder.GetResult()); 317 EXPECT_FALSE(result_holder.GetResult());
314 } 318 }
315 319
316 // Add a second permission request creator. 320 // Add a second permission request creator.
317 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator; 321 MockPermissionRequestCreator* creator_2 = new MockPermissionRequestCreator;
318 creator_2->set_enabled(true); 322 creator_2->set_enabled(true);
319 supervised_user_service_->AddPermissionRequestCreator( 323 supervised_user_service_->AddPermissionRequestCreator(
320 make_scoped_ptr(creator_2)); 324 make_scoped_ptr(creator_2));
321 325
322 { 326 {
323 AsyncResultHolder result_holder; 327 AsyncResultHolder result_holder;
324 AddAccessRequest(url, &result_holder); 328 AddURLAccessRequest(url, &result_holder);
325 ASSERT_EQ(1u, creator->requested_urls().size()); 329 ASSERT_EQ(1u, creator->requested_urls().size());
326 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 330 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
327 331
328 // Make the first creator succeed. This should make the whole thing succeed. 332 // Make the first creator succeed. This should make the whole thing succeed.
329 creator->AnswerRequest(0, true); 333 creator->AnswerRequest(0, true);
330 EXPECT_TRUE(result_holder.GetResult()); 334 EXPECT_TRUE(result_holder.GetResult());
331 } 335 }
332 336
333 { 337 {
334 AsyncResultHolder result_holder; 338 AsyncResultHolder result_holder;
335 AddAccessRequest(url, &result_holder); 339 AddURLAccessRequest(url, &result_holder);
336 ASSERT_EQ(1u, creator->requested_urls().size()); 340 ASSERT_EQ(1u, creator->requested_urls().size());
337 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec()); 341 EXPECT_EQ(url.spec(), creator->requested_urls()[0].spec());
338 342
339 // Make the first creator fail. This should fall back to the second one. 343 // Make the first creator fail. This should fall back to the second one.
340 creator->AnswerRequest(0, false); 344 creator->AnswerRequest(0, false);
341 ASSERT_EQ(1u, creator_2->requested_urls().size()); 345 ASSERT_EQ(1u, creator_2->requested_urls().size());
342 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec()); 346 EXPECT_EQ(url.spec(), creator_2->requested_urls()[0].spec());
343 347
344 // Make the second creator succeed, which will make the whole thing succeed. 348 // Make the second creator succeed, which will make the whole thing succeed.
345 creator_2->AnswerRequest(0, true); 349 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()); 575 ASSERT_EQ(1u, site_list_observer_.sites().size());
572 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); 576 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name);
573 577
574 url_filter_observer_.Wait(); 578 url_filter_observer_.Wait();
575 EXPECT_EQ(SupervisedUserURLFilter::WARN, 579 EXPECT_EQ(SupervisedUserURLFilter::WARN,
576 url_filter->GetFilteringBehaviorForURL(example_url)); 580 url_filter->GetFilteringBehaviorForURL(example_url));
577 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 581 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
578 url_filter->GetFilteringBehaviorForURL(moose_url)); 582 url_filter->GetFilteringBehaviorForURL(moose_url));
579 } 583 }
580 #endif // defined(ENABLE_EXTENSIONS) 584 #endif // defined(ENABLE_EXTENSIONS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698