OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/browser/chromeos/customization/customization_document.h" | 5 #include "chrome/browser/chromeos/customization/customization_document.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 | 153 |
154 TEST(StartupCustomizationDocumentTest, BadManifest) { | 154 TEST(StartupCustomizationDocumentTest, BadManifest) { |
155 system::ScopedFakeStatisticsProvider fake_statistics_provider; | 155 system::ScopedFakeStatisticsProvider fake_statistics_provider; |
156 StartupCustomizationDocument customization(&fake_statistics_provider, | 156 StartupCustomizationDocument customization(&fake_statistics_provider, |
157 kBadManifest); | 157 kBadManifest); |
158 EXPECT_FALSE(customization.IsReady()); | 158 EXPECT_FALSE(customization.IsReady()); |
159 } | 159 } |
160 | 160 |
161 class TestURLFetcherCallback { | 161 class TestURLFetcherCallback { |
162 public: | 162 public: |
163 scoped_ptr<net::FakeURLFetcher> CreateURLFetcher( | 163 std::unique_ptr<net::FakeURLFetcher> CreateURLFetcher( |
164 const GURL& url, | 164 const GURL& url, |
165 net::URLFetcherDelegate* d, | 165 net::URLFetcherDelegate* d, |
166 const std::string& response_data, | 166 const std::string& response_data, |
167 net::HttpStatusCode response_code, | 167 net::HttpStatusCode response_code, |
168 net::URLRequestStatus::Status status) { | 168 net::URLRequestStatus::Status status) { |
169 scoped_ptr<net::FakeURLFetcher> fetcher( | 169 std::unique_ptr<net::FakeURLFetcher> fetcher( |
170 new net::FakeURLFetcher(url, d, response_data, response_code, status)); | 170 new net::FakeURLFetcher(url, d, response_data, response_code, status)); |
171 OnRequestCreate(url, fetcher.get()); | 171 OnRequestCreate(url, fetcher.get()); |
172 return fetcher; | 172 return fetcher; |
173 } | 173 } |
174 MOCK_METHOD2(OnRequestCreate, | 174 MOCK_METHOD2(OnRequestCreate, |
175 void(const GURL&, net::FakeURLFetcher*)); | 175 void(const GURL&, net::FakeURLFetcher*)); |
176 }; | 176 }; |
177 | 177 |
178 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) { | 178 void AddMimeHeader(const GURL& url, net::FakeURLFetcher* fetcher) { |
179 scoped_refptr<net::HttpResponseHeaders> download_headers = | 179 scoped_refptr<net::HttpResponseHeaders> download_headers = |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 id.c_str())); | 271 id.c_str())); |
272 factory_.SetFakeResponse(url, | 272 factory_.SetFakeResponse(url, |
273 std::string(), | 273 std::string(), |
274 net::HTTP_NOT_FOUND, | 274 net::HTTP_NOT_FOUND, |
275 net::URLRequestStatus::SUCCESS); | 275 net::URLRequestStatus::SUCCESS); |
276 EXPECT_CALL(url_callback_, OnRequestCreate(url, _)) | 276 EXPECT_CALL(url_callback_, OnRequestCreate(url, _)) |
277 .Times(Exactly(1)) | 277 .Times(Exactly(1)) |
278 .WillRepeatedly(Invoke(AddMimeHeader)); | 278 .WillRepeatedly(Invoke(AddMimeHeader)); |
279 } | 279 } |
280 | 280 |
281 scoped_ptr<TestingProfile> CreateProfile() { | 281 std::unique_ptr<TestingProfile> CreateProfile() { |
282 TestingProfile::Builder profile_builder; | 282 TestingProfile::Builder profile_builder; |
283 syncable_prefs::PrefServiceMockFactory factory; | 283 syncable_prefs::PrefServiceMockFactory factory; |
284 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( | 284 scoped_refptr<user_prefs::PrefRegistrySyncable> registry( |
285 new user_prefs::PrefRegistrySyncable); | 285 new user_prefs::PrefRegistrySyncable); |
286 scoped_ptr<syncable_prefs::PrefServiceSyncable> prefs( | 286 std::unique_ptr<syncable_prefs::PrefServiceSyncable> prefs( |
287 factory.CreateSyncable(registry.get())); | 287 factory.CreateSyncable(registry.get())); |
288 chrome::RegisterUserProfilePrefs(registry.get()); | 288 chrome::RegisterUserProfilePrefs(registry.get()); |
289 profile_builder.SetPrefService(std::move(prefs)); | 289 profile_builder.SetPrefService(std::move(prefs)); |
290 return profile_builder.Build(); | 290 return profile_builder.Build(); |
291 } | 291 } |
292 | 292 |
293 private: | 293 private: |
294 system::ScopedFakeStatisticsProvider fake_statistics_provider_; | 294 system::ScopedFakeStatisticsProvider fake_statistics_provider_; |
295 content::TestBrowserThreadBundle thread_bundle_; | 295 content::TestBrowserThreadBundle thread_bundle_; |
296 TestingPrefServiceSimple local_state_; | 296 TestingPrefServiceSimple local_state_; |
(...skipping 11 matching lines...) Expand all Loading... |
308 EXPECT_FALSE(doc->IsReady()); | 308 EXPECT_FALSE(doc->IsReady()); |
309 | 309 |
310 doc->StartFetching(); | 310 doc->StartFetching(); |
311 RunUntilIdle(); | 311 RunUntilIdle(); |
312 EXPECT_TRUE(doc->IsReady()); | 312 EXPECT_TRUE(doc->IsReady()); |
313 | 313 |
314 GURL wallpaper_url; | 314 GURL wallpaper_url; |
315 EXPECT_FALSE(doc->GetDefaultWallpaperUrl(&wallpaper_url)); | 315 EXPECT_FALSE(doc->GetDefaultWallpaperUrl(&wallpaper_url)); |
316 EXPECT_EQ("", wallpaper_url.spec()); | 316 EXPECT_EQ("", wallpaper_url.spec()); |
317 | 317 |
318 scoped_ptr<base::DictionaryValue> default_apps(doc->GetDefaultApps()); | 318 std::unique_ptr<base::DictionaryValue> default_apps(doc->GetDefaultApps()); |
319 ASSERT_TRUE(default_apps); | 319 ASSERT_TRUE(default_apps); |
320 EXPECT_EQ(default_apps->size(), 2u); | 320 EXPECT_EQ(default_apps->size(), 2u); |
321 | 321 |
322 const base::DictionaryValue* app_entry = nullptr; | 322 const base::DictionaryValue* app_entry = nullptr; |
323 ASSERT_TRUE(default_apps->GetDictionary("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", | 323 ASSERT_TRUE(default_apps->GetDictionary("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", |
324 &app_entry)); | 324 &app_entry)); |
325 EXPECT_EQ(app_entry->size(), 1u); | 325 EXPECT_EQ(app_entry->size(), 1u); |
326 EXPECT_TRUE( | 326 EXPECT_TRUE( |
327 app_entry->HasKey(extensions::ExternalProviderImpl::kExternalUpdateUrl)); | 327 app_entry->HasKey(extensions::ExternalProviderImpl::kExternalUpdateUrl)); |
328 | 328 |
329 ASSERT_TRUE(default_apps->GetDictionary("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", | 329 ASSERT_TRUE(default_apps->GetDictionary("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", |
330 &app_entry)); | 330 &app_entry)); |
331 EXPECT_EQ(app_entry->size(), 2u); | 331 EXPECT_EQ(app_entry->size(), 2u); |
332 EXPECT_TRUE( | 332 EXPECT_TRUE( |
333 app_entry->HasKey(extensions::ExternalProviderImpl::kExternalUpdateUrl)); | 333 app_entry->HasKey(extensions::ExternalProviderImpl::kExternalUpdateUrl)); |
334 EXPECT_TRUE(app_entry->HasKey( | 334 EXPECT_TRUE(app_entry->HasKey( |
335 extensions::ExternalProviderImpl::kDoNotInstallForEnterprise)); | 335 extensions::ExternalProviderImpl::kDoNotInstallForEnterprise)); |
336 | 336 |
337 EXPECT_EQ("EN-US OEM Name", doc->GetOemAppsFolderName("en-US")); | 337 EXPECT_EQ("EN-US OEM Name", doc->GetOemAppsFolderName("en-US")); |
338 EXPECT_EQ("EN OEM Name", doc->GetOemAppsFolderName("en")); | 338 EXPECT_EQ("EN OEM Name", doc->GetOemAppsFolderName("en")); |
339 EXPECT_EQ("Default OEM Name", doc->GetOemAppsFolderName("ru")); | 339 EXPECT_EQ("Default OEM Name", doc->GetOemAppsFolderName("ru")); |
340 } | 340 } |
341 | 341 |
342 TEST_F(ServicesCustomizationDocumentTest, NoCustomizationIdInVpd) { | 342 TEST_F(ServicesCustomizationDocumentTest, NoCustomizationIdInVpd) { |
343 ServicesCustomizationDocument* doc = | 343 ServicesCustomizationDocument* doc = |
344 ServicesCustomizationDocument::GetInstance(); | 344 ServicesCustomizationDocument::GetInstance(); |
345 EXPECT_FALSE(doc->IsReady()); | 345 EXPECT_FALSE(doc->IsReady()); |
346 | 346 |
347 scoped_ptr<TestingProfile> profile = CreateProfile(); | 347 std::unique_ptr<TestingProfile> profile = CreateProfile(); |
348 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); | 348 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); |
349 EXPECT_TRUE(loader); | 349 EXPECT_TRUE(loader); |
350 | 350 |
351 MockExternalProviderVisitor visitor; | 351 MockExternalProviderVisitor visitor; |
352 scoped_ptr<extensions::ExternalProviderImpl> provider( | 352 std::unique_ptr<extensions::ExternalProviderImpl> provider( |
353 new extensions::ExternalProviderImpl( | 353 new extensions::ExternalProviderImpl( |
354 &visitor, | 354 &visitor, loader, profile.get(), extensions::Manifest::EXTERNAL_PREF, |
355 loader, | |
356 profile.get(), | |
357 extensions::Manifest::EXTERNAL_PREF, | |
358 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, | 355 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, |
359 extensions::Extension::FROM_WEBSTORE | | 356 extensions::Extension::FROM_WEBSTORE | |
360 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); | 357 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); |
361 | 358 |
362 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); | 359 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); |
363 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); | 360 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); |
364 EXPECT_CALL(visitor, OnExternalProviderReady(_)) | 361 EXPECT_CALL(visitor, OnExternalProviderReady(_)) |
365 .Times(1); | 362 .Times(1); |
366 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); | 363 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); |
367 | 364 |
368 // Manually request a load. | 365 // Manually request a load. |
369 RunUntilIdle(); | 366 RunUntilIdle(); |
370 loader->StartLoading(); | 367 loader->StartLoading(); |
371 Mock::VerifyAndClearExpectations(&visitor); | 368 Mock::VerifyAndClearExpectations(&visitor); |
372 | 369 |
373 RunUntilIdle(); | 370 RunUntilIdle(); |
374 // Empty customization is used when there is no customization ID in VPD. | 371 // Empty customization is used when there is no customization ID in VPD. |
375 EXPECT_TRUE(doc->IsReady()); | 372 EXPECT_TRUE(doc->IsReady()); |
376 } | 373 } |
377 | 374 |
378 TEST_F(ServicesCustomizationDocumentTest, DefaultApps) { | 375 TEST_F(ServicesCustomizationDocumentTest, DefaultApps) { |
379 AddCustomizationIdToVp(kDummyCustomizationID); | 376 AddCustomizationIdToVp(kDummyCustomizationID); |
380 AddExpectedManifest(kDummyCustomizationID, kGoodServicesManifest); | 377 AddExpectedManifest(kDummyCustomizationID, kGoodServicesManifest); |
381 | 378 |
382 ServicesCustomizationDocument* doc = | 379 ServicesCustomizationDocument* doc = |
383 ServicesCustomizationDocument::GetInstance(); | 380 ServicesCustomizationDocument::GetInstance(); |
384 EXPECT_FALSE(doc->IsReady()); | 381 EXPECT_FALSE(doc->IsReady()); |
385 | 382 |
386 scoped_ptr<TestingProfile> profile = CreateProfile(); | 383 std::unique_ptr<TestingProfile> profile = CreateProfile(); |
387 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); | 384 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); |
388 EXPECT_TRUE(loader); | 385 EXPECT_TRUE(loader); |
389 | 386 |
390 app_list::AppListSyncableServiceFactory::GetInstance()-> | 387 app_list::AppListSyncableServiceFactory::GetInstance()-> |
391 SetTestingFactoryAndUse( | 388 SetTestingFactoryAndUse( |
392 profile.get(), | 389 profile.get(), |
393 &app_list::AppListSyncableServiceFactory::BuildInstanceFor); | 390 &app_list::AppListSyncableServiceFactory::BuildInstanceFor); |
394 | 391 |
395 MockExternalProviderVisitor visitor; | 392 MockExternalProviderVisitor visitor; |
396 scoped_ptr<extensions::ExternalProviderImpl> provider( | 393 std::unique_ptr<extensions::ExternalProviderImpl> provider( |
397 new extensions::ExternalProviderImpl( | 394 new extensions::ExternalProviderImpl( |
398 &visitor, | 395 &visitor, loader, profile.get(), extensions::Manifest::EXTERNAL_PREF, |
399 loader, | |
400 profile.get(), | |
401 extensions::Manifest::EXTERNAL_PREF, | |
402 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, | 396 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, |
403 extensions::Extension::FROM_WEBSTORE | | 397 extensions::Extension::FROM_WEBSTORE | |
404 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); | 398 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); |
405 | 399 |
406 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); | 400 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); |
407 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); | 401 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); |
408 EXPECT_CALL(visitor, OnExternalProviderReady(_)) | 402 EXPECT_CALL(visitor, OnExternalProviderReady(_)) |
409 .Times(1); | 403 .Times(1); |
410 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); | 404 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); |
411 | 405 |
(...skipping 17 matching lines...) Expand all Loading... |
429 } | 423 } |
430 | 424 |
431 TEST_F(ServicesCustomizationDocumentTest, CustomizationManifestNotFound) { | 425 TEST_F(ServicesCustomizationDocumentTest, CustomizationManifestNotFound) { |
432 AddCustomizationIdToVp(kDummyCustomizationID); | 426 AddCustomizationIdToVp(kDummyCustomizationID); |
433 AddManifestNotFound(kDummyCustomizationID); | 427 AddManifestNotFound(kDummyCustomizationID); |
434 | 428 |
435 ServicesCustomizationDocument* doc = | 429 ServicesCustomizationDocument* doc = |
436 ServicesCustomizationDocument::GetInstance(); | 430 ServicesCustomizationDocument::GetInstance(); |
437 EXPECT_FALSE(doc->IsReady()); | 431 EXPECT_FALSE(doc->IsReady()); |
438 | 432 |
439 scoped_ptr<TestingProfile> profile = CreateProfile(); | 433 std::unique_ptr<TestingProfile> profile = CreateProfile(); |
440 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); | 434 extensions::ExternalLoader* loader = doc->CreateExternalLoader(profile.get()); |
441 EXPECT_TRUE(loader); | 435 EXPECT_TRUE(loader); |
442 | 436 |
443 MockExternalProviderVisitor visitor; | 437 MockExternalProviderVisitor visitor; |
444 scoped_ptr<extensions::ExternalProviderImpl> provider( | 438 std::unique_ptr<extensions::ExternalProviderImpl> provider( |
445 new extensions::ExternalProviderImpl( | 439 new extensions::ExternalProviderImpl( |
446 &visitor, | 440 &visitor, loader, profile.get(), extensions::Manifest::EXTERNAL_PREF, |
447 loader, | |
448 profile.get(), | |
449 extensions::Manifest::EXTERNAL_PREF, | |
450 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, | 441 extensions::Manifest::EXTERNAL_PREF_DOWNLOAD, |
451 extensions::Extension::FROM_WEBSTORE | | 442 extensions::Extension::FROM_WEBSTORE | |
452 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); | 443 extensions::Extension::WAS_INSTALLED_BY_DEFAULT)); |
453 | 444 |
454 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); | 445 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); |
455 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); | 446 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); |
456 EXPECT_CALL(visitor, OnExternalProviderReady(_)) | 447 EXPECT_CALL(visitor, OnExternalProviderReady(_)) |
457 .Times(1); | 448 .Times(1); |
458 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); | 449 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); |
459 | 450 |
460 // Manually request a load. | 451 // Manually request a load. |
461 loader->StartLoading(); | 452 loader->StartLoading(); |
462 Mock::VerifyAndClearExpectations(&visitor); | 453 Mock::VerifyAndClearExpectations(&visitor); |
463 | 454 |
464 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); | 455 EXPECT_CALL(visitor, OnExternalExtensionFileFound(_)).Times(0); |
465 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); | 456 EXPECT_CALL(visitor, OnExternalExtensionUpdateUrlFound(_, _)).Times(0); |
466 EXPECT_CALL(visitor, OnExternalProviderReady(_)) | 457 EXPECT_CALL(visitor, OnExternalProviderReady(_)) |
467 .Times(1); | 458 .Times(1); |
468 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); | 459 EXPECT_CALL(visitor, OnExternalProviderUpdateComplete(_, _, _, _)).Times(0); |
469 | 460 |
470 RunUntilIdle(); | 461 RunUntilIdle(); |
471 EXPECT_TRUE(doc->IsReady()); | 462 EXPECT_TRUE(doc->IsReady()); |
472 } | 463 } |
473 | 464 |
474 } // namespace chromeos | 465 } // namespace chromeos |
OLD | NEW |