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

Side by Side Diff: chrome/browser/extensions/extensions_service_unittest.cc

Issue 3304015: Use PrefChangeRegistrar everywhere (Closed)
Patch Set: final version for commit Created 10 years, 2 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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/extensions/extensions_service_unittest.h" 5 #include "chrome/browser/extensions/extensions_service_unittest.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 service_ = NULL; 280 service_ = NULL;
281 profile_.reset(NULL); 281 profile_.reset(NULL);
282 MessageLoop::current()->RunAllPending(); 282 MessageLoop::current()->RunAllPending();
283 } 283 }
284 284
285 void ExtensionsServiceTestBase::InitializeExtensionsService( 285 void ExtensionsServiceTestBase::InitializeExtensionsService(
286 const FilePath& pref_file, const FilePath& extensions_install_dir) { 286 const FilePath& pref_file, const FilePath& extensions_install_dir) {
287 ExtensionTestingProfile* profile = new ExtensionTestingProfile(); 287 ExtensionTestingProfile* profile = new ExtensionTestingProfile();
288 // Create a preference service that only contains user defined 288 // Create a preference service that only contains user defined
289 // preference values. 289 // preference values.
290 prefs_.reset(PrefService::CreateUserPrefService(pref_file)); 290 PrefService* prefs = PrefService::CreateUserPrefService(pref_file);
291 Profile::RegisterUserPrefs(prefs);
292 browser::RegisterUserPrefs(prefs);
293 profile->SetPrefService(prefs);
291 294
292 Profile::RegisterUserPrefs(prefs_.get());
293 browser::RegisterUserPrefs(prefs_.get());
294 profile_.reset(profile); 295 profile_.reset(profile);
295 296
296 // TODO(scherkus): Remove this when we no longer need to have Talk 297 // TODO(scherkus): Remove this when we no longer need to have Talk
297 // component extension state as a preference http://crbug.com/56429 298 // component extension state as a preference http://crbug.com/56429
298 DictionaryValue* dict = 299 DictionaryValue* dict =
299 prefs_->GetMutableDictionary("extensions.settings"); 300 profile->GetPrefs()->GetMutableDictionary("extensions.settings");
300 dict->Remove("ggnioahjipcehijkhpdjekioddnjoben", NULL); 301 dict->Remove("ggnioahjipcehijkhpdjekioddnjoben", NULL);
301 302
302 service_ = new ExtensionsService(profile_.get(), 303 service_ = profile->CreateExtensionsService(
303 CommandLine::ForCurrentProcess(), 304 CommandLine::ForCurrentProcess(),
304 prefs_.get(), 305 extensions_install_dir);
305 extensions_install_dir,
306 false);
307 service_->set_extensions_enabled(true); 306 service_->set_extensions_enabled(true);
308 service_->set_show_extensions_prompts(false); 307 service_->set_show_extensions_prompts(false);
309 profile->set_extensions_service(service_.get()); 308 profile->set_extensions_service(service_.get());
310 309
311 // When we start up, we want to make sure there is no external provider, 310 // When we start up, we want to make sure there is no external provider,
312 // since the ExtensionService on Windows will use the Registry as a default 311 // since the ExtensionService on Windows will use the Registry as a default
313 // provider and if there is something already registered there then it will 312 // provider and if there is something already registered there then it will
314 // interfere with the tests. Those tests that need an external provider 313 // interfere with the tests. Those tests that need an external provider
315 // will register one specifically. 314 // will register one specifically.
316 service_->ClearProvidersForTesting(); 315 service_->ClearProvidersForTesting();
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 EXPECT_EQ(expected_enabled_extension_count, 516 EXPECT_EQ(expected_enabled_extension_count,
518 enabled_extension_count); 517 enabled_extension_count);
519 } 518 }
520 519
521 // Update() should delete the temporary input file. 520 // Update() should delete the temporary input file.
522 EXPECT_FALSE(file_util::PathExists(path)); 521 EXPECT_FALSE(file_util::PathExists(path));
523 } 522 }
524 523
525 void ValidatePrefKeyCount(size_t count) { 524 void ValidatePrefKeyCount(size_t count) {
526 DictionaryValue* dict = 525 DictionaryValue* dict =
527 prefs_->GetMutableDictionary("extensions.settings"); 526 profile_->GetPrefs()->GetMutableDictionary("extensions.settings");
528 ASSERT_TRUE(dict != NULL); 527 ASSERT_TRUE(dict != NULL);
529 EXPECT_EQ(count, dict->size()); 528 EXPECT_EQ(count, dict->size());
530 } 529 }
531 530
532 void ValidateBooleanPref(const std::string& extension_id, 531 void ValidateBooleanPref(const std::string& extension_id,
533 const std::string& pref_path, 532 const std::string& pref_path,
534 bool expected_val) { 533 bool expected_val) {
535 std::string msg = " while checking: "; 534 std::string msg = " while checking: ";
536 msg += extension_id; 535 msg += extension_id;
537 msg += " "; 536 msg += " ";
538 msg += pref_path; 537 msg += pref_path;
539 msg += " == "; 538 msg += " == ";
540 msg += expected_val ? "true" : "false"; 539 msg += expected_val ? "true" : "false";
541 540
542 const DictionaryValue* dict = prefs_->GetDictionary("extensions.settings"); 541 PrefService* prefs = profile_->GetPrefs();
542 const DictionaryValue* dict =
543 prefs->GetDictionary("extensions.settings");
543 ASSERT_TRUE(dict != NULL) << msg; 544 ASSERT_TRUE(dict != NULL) << msg;
544 DictionaryValue* pref = NULL; 545 DictionaryValue* pref = NULL;
545 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg; 546 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg;
546 EXPECT_TRUE(pref != NULL) << msg; 547 EXPECT_TRUE(pref != NULL) << msg;
547 bool val; 548 bool val;
548 ASSERT_TRUE(pref->GetBoolean(pref_path, &val)) << msg; 549 ASSERT_TRUE(pref->GetBoolean(pref_path, &val)) << msg;
549 EXPECT_EQ(expected_val, val) << msg; 550 EXPECT_EQ(expected_val, val) << msg;
550 } 551 }
551 552
552 bool IsPrefExist(const std::string& extension_id, 553 bool IsPrefExist(const std::string& extension_id,
553 const std::string& pref_path) { 554 const std::string& pref_path) {
554 const DictionaryValue* dict = prefs_->GetDictionary("extensions.settings"); 555 const DictionaryValue* dict =
556 profile_->GetPrefs()->GetDictionary("extensions.settings");
555 if (dict == NULL) return false; 557 if (dict == NULL) return false;
556 DictionaryValue* pref = NULL; 558 DictionaryValue* pref = NULL;
557 if (!dict->GetDictionary(extension_id, &pref)) { 559 if (!dict->GetDictionary(extension_id, &pref)) {
558 return false; 560 return false;
559 } 561 }
560 if (pref == NULL) { 562 if (pref == NULL) {
561 return false; 563 return false;
562 } 564 }
563 bool val; 565 bool val;
564 if (!pref->GetBoolean(pref_path, &val)) { 566 if (!pref->GetBoolean(pref_path, &val)) {
565 return false; 567 return false;
566 } 568 }
567 return true; 569 return true;
568 } 570 }
569 571
570 void ValidateIntegerPref(const std::string& extension_id, 572 void ValidateIntegerPref(const std::string& extension_id,
571 const std::string& pref_path, 573 const std::string& pref_path,
572 int expected_val) { 574 int expected_val) {
573 std::string msg = " while checking: "; 575 std::string msg = " while checking: ";
574 msg += extension_id; 576 msg += extension_id;
575 msg += " "; 577 msg += " ";
576 msg += pref_path; 578 msg += pref_path;
577 msg += " == "; 579 msg += " == ";
578 msg += base::IntToString(expected_val); 580 msg += base::IntToString(expected_val);
579 581
580 const DictionaryValue* dict = prefs_->GetDictionary("extensions.settings"); 582 PrefService* prefs = profile_->GetPrefs();
583 const DictionaryValue* dict =
584 prefs->GetDictionary("extensions.settings");
581 ASSERT_TRUE(dict != NULL) << msg; 585 ASSERT_TRUE(dict != NULL) << msg;
582 DictionaryValue* pref = NULL; 586 DictionaryValue* pref = NULL;
583 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg; 587 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg;
584 EXPECT_TRUE(pref != NULL) << msg; 588 EXPECT_TRUE(pref != NULL) << msg;
585 int val; 589 int val;
586 ASSERT_TRUE(pref->GetInteger(pref_path, &val)) << msg; 590 ASSERT_TRUE(pref->GetInteger(pref_path, &val)) << msg;
587 EXPECT_EQ(expected_val, val) << msg; 591 EXPECT_EQ(expected_val, val) << msg;
588 } 592 }
589 593
590 void ValidateStringPref(const std::string& extension_id, 594 void ValidateStringPref(const std::string& extension_id,
591 const std::string& pref_path, 595 const std::string& pref_path,
592 const std::string& expected_val) { 596 const std::string& expected_val) {
593 std::string msg = " while checking: "; 597 std::string msg = " while checking: ";
594 msg += extension_id; 598 msg += extension_id;
595 msg += ".manifest."; 599 msg += ".manifest.";
596 msg += pref_path; 600 msg += pref_path;
597 msg += " == "; 601 msg += " == ";
598 msg += expected_val; 602 msg += expected_val;
599 603
600 const DictionaryValue* dict = prefs_->GetDictionary("extensions.settings"); 604 const DictionaryValue* dict =
605 profile_->GetPrefs()->GetDictionary("extensions.settings");
601 ASSERT_TRUE(dict != NULL) << msg; 606 ASSERT_TRUE(dict != NULL) << msg;
602 DictionaryValue* pref = NULL; 607 DictionaryValue* pref = NULL;
603 std::string manifest_path = extension_id + ".manifest"; 608 std::string manifest_path = extension_id + ".manifest";
604 ASSERT_TRUE(dict->GetDictionary(manifest_path, &pref)) << msg; 609 ASSERT_TRUE(dict->GetDictionary(manifest_path, &pref)) << msg;
605 EXPECT_TRUE(pref != NULL) << msg; 610 EXPECT_TRUE(pref != NULL) << msg;
606 std::string val; 611 std::string val;
607 ASSERT_TRUE(pref->GetString(pref_path, &val)) << msg; 612 ASSERT_TRUE(pref->GetString(pref_path, &val)) << msg;
608 EXPECT_EQ(expected_val, val) << msg; 613 EXPECT_EQ(expected_val, val) << msg;
609 } 614 }
610 615
611 void SetPrefInteg(const std::string& extension_id, 616 void SetPrefInteg(const std::string& extension_id,
612 const std::string& pref_path, 617 const std::string& pref_path,
613 int value) { 618 int value) {
614 std::string msg = " while setting: "; 619 std::string msg = " while setting: ";
615 msg += extension_id; 620 msg += extension_id;
616 msg += " "; 621 msg += " ";
617 msg += pref_path; 622 msg += pref_path;
618 msg += " = "; 623 msg += " = ";
619 msg += base::IntToString(value); 624 msg += base::IntToString(value);
620 625
621 const DictionaryValue* dict = 626 const DictionaryValue* dict =
622 prefs_->GetMutableDictionary("extensions.settings"); 627 profile_->GetPrefs()->GetMutableDictionary("extensions.settings");
623 ASSERT_TRUE(dict != NULL) << msg; 628 ASSERT_TRUE(dict != NULL) << msg;
624 DictionaryValue* pref = NULL; 629 DictionaryValue* pref = NULL;
625 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg; 630 ASSERT_TRUE(dict->GetDictionary(extension_id, &pref)) << msg;
626 EXPECT_TRUE(pref != NULL) << msg; 631 EXPECT_TRUE(pref != NULL) << msg;
627 pref->SetInteger(pref_path, value); 632 pref->SetInteger(pref_path, value);
628 } 633 }
629 634
630 protected: 635 protected:
631 ExtensionList loaded_; 636 ExtensionList loaded_;
632 std::string unloaded_id_; 637 std::string unloaded_id_;
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 .AppendASCII("extensions") 843 .AppendASCII("extensions")
839 .AppendASCII("good") 844 .AppendASCII("good")
840 .AppendASCII("Extensions"); 845 .AppendASCII("Extensions");
841 FilePath pref_path = source_install_dir 846 FilePath pref_path = source_install_dir
842 .DirName() 847 .DirName()
843 .AppendASCII("Preferences"); 848 .AppendASCII("Preferences");
844 849
845 InitializeInstalledExtensionsService(pref_path, source_install_dir); 850 InitializeInstalledExtensionsService(pref_path, source_install_dir);
846 851
847 // Simulate that one of them got partially deleted by clearing its pref. 852 // Simulate that one of them got partially deleted by clearing its pref.
848 DictionaryValue* dict = prefs_->GetMutableDictionary("extensions.settings"); 853 DictionaryValue* dict =
854 profile_->GetPrefs()->GetMutableDictionary("extensions.settings");
849 ASSERT_TRUE(dict != NULL); 855 ASSERT_TRUE(dict != NULL);
850 dict->Remove("behllobkkfkfnphdnhnkndlbkcpglgmj", NULL); 856 dict->Remove("behllobkkfkfnphdnhnkndlbkcpglgmj", NULL);
851 857
852 service_->Init(); 858 service_->Init();
853 loop_.RunAllPending(); 859 loop_.RunAllPending();
854 860
855 file_util::FileEnumerator dirs(extensions_install_dir_, false, 861 file_util::FileEnumerator dirs(extensions_install_dir_, false,
856 file_util::FileEnumerator::DIRECTORIES); 862 file_util::FileEnumerator::DIRECTORIES);
857 size_t count = 0; 863 size_t count = 0;
858 while (!dirs.Next().empty()) 864 while (!dirs.Next().empty())
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after
1861 1867
1862 EXPECT_NE(std::string(good1), loaded_[0]->id()); 1868 EXPECT_NE(std::string(good1), loaded_[0]->id());
1863 EXPECT_NE(std::string(good1), loaded_[1]->id()); 1869 EXPECT_NE(std::string(good1), loaded_[1]->id());
1864 } 1870 }
1865 #endif 1871 #endif
1866 1872
1867 // Will not install extension blacklisted by policy. 1873 // Will not install extension blacklisted by policy.
1868 TEST_F(ExtensionsServiceTest, BlacklistedByPolicyWillNotInstall) { 1874 TEST_F(ExtensionsServiceTest, BlacklistedByPolicyWillNotInstall) {
1869 InitializeEmptyExtensionsService(); 1875 InitializeEmptyExtensionsService();
1870 1876
1871 ListValue* whitelist = prefs_->GetMutableList("extensions.install.allowlist"); 1877 ListValue* whitelist =
1872 ListValue* blacklist = prefs_->GetMutableList("extensions.install.denylist"); 1878 profile_->GetPrefs()->GetMutableList("extensions.install.allowlist");
1879 ListValue* blacklist =
1880 profile_->GetPrefs()->GetMutableList("extensions.install.denylist");
1873 ASSERT_TRUE(whitelist != NULL && blacklist != NULL); 1881 ASSERT_TRUE(whitelist != NULL && blacklist != NULL);
1874 1882
1875 // Blacklist everything. 1883 // Blacklist everything.
1876 blacklist->Append(Value::CreateStringValue("*")); 1884 blacklist->Append(Value::CreateStringValue("*"));
1877 1885
1878 // Blacklist prevents us from installing good_crx. 1886 // Blacklist prevents us from installing good_crx.
1879 FilePath extensions_path; 1887 FilePath extensions_path;
1880 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path)); 1888 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
1881 extensions_path = extensions_path.AppendASCII("extensions"); 1889 extensions_path = extensions_path.AppendASCII("extensions");
1882 FilePath path = extensions_path.AppendASCII("good.crx"); 1890 FilePath path = extensions_path.AppendASCII("good.crx");
(...skipping 16 matching lines...) Expand all
1899 1907
1900 // Install good_crx. 1908 // Install good_crx.
1901 FilePath extensions_path; 1909 FilePath extensions_path;
1902 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path)); 1910 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
1903 extensions_path = extensions_path.AppendASCII("extensions"); 1911 extensions_path = extensions_path.AppendASCII("extensions");
1904 FilePath path = extensions_path.AppendASCII("good.crx"); 1912 FilePath path = extensions_path.AppendASCII("good.crx");
1905 service_->InstallExtension(path); 1913 service_->InstallExtension(path);
1906 loop_.RunAllPending(); 1914 loop_.RunAllPending();
1907 EXPECT_EQ(1u, service_->extensions()->size()); 1915 EXPECT_EQ(1u, service_->extensions()->size());
1908 1916
1909 ListValue* blacklist = prefs_->GetMutableList("extensions.install.denylist"); 1917 PrefService* prefs = profile_->GetPrefs();
1918 ListValue* blacklist =
1919 prefs->GetMutableList("extensions.install.denylist");
1910 ASSERT_TRUE(blacklist != NULL); 1920 ASSERT_TRUE(blacklist != NULL);
1911 1921
1912 // Blacklist this extension. 1922 // Blacklist this extension.
1913 blacklist->Append(Value::CreateStringValue(good_crx)); 1923 blacklist->Append(Value::CreateStringValue(good_crx));
1914 prefs_->ScheduleSavePersistentPrefs(); 1924 prefs->ScheduleSavePersistentPrefs();
1915 1925
1916 // Programmatically appending to the prefs doesn't seem to notify the 1926 // Programmatically appending to the prefs doesn't seem to notify the
1917 // observers... :/ 1927 // observers... :/
1918 prefs_->pref_notifier()->FireObservers("extensions.install.denylist"); 1928 prefs->pref_notifier()->FireObservers("extensions.install.denylist");
1919 1929
1920 // Extension should not be running now. 1930 // Extension should not be running now.
1921 loop_.RunAllPending(); 1931 loop_.RunAllPending();
1922 EXPECT_EQ(0u, service_->extensions()->size()); 1932 EXPECT_EQ(0u, service_->extensions()->size());
1923 } 1933 }
1924 1934
1925 // Tests disabling extensions 1935 // Tests disabling extensions
1926 TEST_F(ExtensionsServiceTest, DisableExtension) { 1936 TEST_F(ExtensionsServiceTest, DisableExtension) {
1927 InitializeEmptyExtensionsService(); 1937 InitializeEmptyExtensionsService();
1928 FilePath extensions_path; 1938 FilePath extensions_path;
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
2226 loaded_.clear(); 2236 loaded_.clear();
2227 service_->CheckForExternalUpdates(); 2237 service_->CheckForExternalUpdates();
2228 loop_.RunAllPending(); 2238 loop_.RunAllPending();
2229 ASSERT_EQ(0u, loaded_.size()); 2239 ASSERT_EQ(0u, loaded_.size());
2230 ValidatePrefKeyCount(1); 2240 ValidatePrefKeyCount(1);
2231 ValidateIntegerPref(good_crx, "state", Extension::KILLBIT); 2241 ValidateIntegerPref(good_crx, "state", Extension::KILLBIT);
2232 ValidateIntegerPref(good_crx, "location", location); 2242 ValidateIntegerPref(good_crx, "location", location);
2233 2243
2234 // Now clear the preference and reinstall. 2244 // Now clear the preference and reinstall.
2235 SetPrefInteg(good_crx, "state", Extension::ENABLED); 2245 SetPrefInteg(good_crx, "state", Extension::ENABLED);
2236 prefs_->ScheduleSavePersistentPrefs(); 2246 profile_->GetPrefs()->ScheduleSavePersistentPrefs();
2237 2247
2238 loaded_.clear(); 2248 loaded_.clear();
2239 service_->CheckForExternalUpdates(); 2249 service_->CheckForExternalUpdates();
2240 loop_.RunAllPending(); 2250 loop_.RunAllPending();
2241 ASSERT_EQ(1u, loaded_.size()); 2251 ASSERT_EQ(1u, loaded_.size());
2242 ValidatePrefKeyCount(1); 2252 ValidatePrefKeyCount(1);
2243 ValidateIntegerPref(good_crx, "state", Extension::ENABLED); 2253 ValidateIntegerPref(good_crx, "state", Extension::ENABLED);
2244 ValidateIntegerPref(good_crx, "location", location); 2254 ValidateIntegerPref(good_crx, "location", location);
2245 2255
2246 // Now test an externally triggered uninstall (deleting the registry key or 2256 // Now test an externally triggered uninstall (deleting the registry key or
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 MessageLoop loop; 2464 MessageLoop loop;
2455 ChromeThread ui_thread(ChromeThread::UI, &loop); 2465 ChromeThread ui_thread(ChromeThread::UI, &loop);
2456 ChromeThread file_thread(ChromeThread::FILE, &loop); 2466 ChromeThread file_thread(ChromeThread::FILE, &loop);
2457 scoped_ptr<CommandLine> command_line; 2467 scoped_ptr<CommandLine> command_line;
2458 scoped_refptr<ExtensionsService> service; 2468 scoped_refptr<ExtensionsService> service;
2459 FilePath install_dir = profile->GetPath() 2469 FilePath install_dir = profile->GetPath()
2460 .AppendASCII(ExtensionsService::kInstallDirectoryName); 2470 .AppendASCII(ExtensionsService::kInstallDirectoryName);
2461 2471
2462 // By default, we are enabled. 2472 // By default, we are enabled.
2463 command_line.reset(new CommandLine(CommandLine::ARGUMENTS_ONLY)); 2473 command_line.reset(new CommandLine(CommandLine::ARGUMENTS_ONLY));
2464 service = new ExtensionsService(profile.get(), command_line.get(), 2474 service = profile->CreateExtensionsService(command_line.get(),
2465 profile->GetPrefs(), install_dir, false); 2475 install_dir);
2466 EXPECT_TRUE(service->extensions_enabled()); 2476 EXPECT_TRUE(service->extensions_enabled());
2467 service->Init(); 2477 service->Init();
2468 loop.RunAllPending(); 2478 loop.RunAllPending();
2469 EXPECT_TRUE(recorder.ready()); 2479 EXPECT_TRUE(recorder.ready());
2470 2480
2471 // If either the command line or pref is set, we are disabled. 2481 // If either the command line or pref is set, we are disabled.
2472 recorder.set_ready(false); 2482 recorder.set_ready(false);
2473 profile.reset(new TestingProfile()); 2483 profile.reset(new TestingProfile());
2474 command_line->AppendSwitch(switches::kDisableExtensions); 2484 command_line->AppendSwitch(switches::kDisableExtensions);
2475 service = new ExtensionsService(profile.get(), command_line.get(), 2485 service = profile->CreateExtensionsService(command_line.get(),
2476 profile->GetPrefs(), install_dir, false); 2486 install_dir);
2477 EXPECT_FALSE(service->extensions_enabled()); 2487 EXPECT_FALSE(service->extensions_enabled());
2478 service->Init(); 2488 service->Init();
2479 loop.RunAllPending(); 2489 loop.RunAllPending();
2480 EXPECT_TRUE(recorder.ready()); 2490 EXPECT_TRUE(recorder.ready());
2481 2491
2482 recorder.set_ready(false); 2492 recorder.set_ready(false);
2483 profile.reset(new TestingProfile()); 2493 profile.reset(new TestingProfile());
2484 profile->GetPrefs()->SetBoolean(prefs::kDisableExtensions, true); 2494 profile->GetPrefs()->SetBoolean(prefs::kDisableExtensions, true);
2485 service = new ExtensionsService(profile.get(), command_line.get(), 2495 service = profile->CreateExtensionsService(command_line.get(),
2486 profile->GetPrefs(), install_dir, false); 2496 install_dir);
2487 EXPECT_FALSE(service->extensions_enabled()); 2497 EXPECT_FALSE(service->extensions_enabled());
2488 service->Init(); 2498 service->Init();
2489 loop.RunAllPending(); 2499 loop.RunAllPending();
2490 EXPECT_TRUE(recorder.ready()); 2500 EXPECT_TRUE(recorder.ready());
2491 2501
2492 recorder.set_ready(false); 2502 recorder.set_ready(false);
2493 profile.reset(new TestingProfile()); 2503 profile.reset(new TestingProfile());
2494 profile->GetPrefs()->SetBoolean(prefs::kDisableExtensions, true); 2504 profile->GetPrefs()->SetBoolean(prefs::kDisableExtensions, true);
2495 command_line.reset(new CommandLine(CommandLine::ARGUMENTS_ONLY)); 2505 command_line.reset(new CommandLine(CommandLine::ARGUMENTS_ONLY));
2496 service = new ExtensionsService(profile.get(), command_line.get(), 2506 service = profile->CreateExtensionsService(command_line.get(),
2497 profile->GetPrefs(), install_dir, false); 2507 install_dir);
2498 EXPECT_FALSE(service->extensions_enabled()); 2508 EXPECT_FALSE(service->extensions_enabled());
2499 service->Init(); 2509 service->Init();
2500 loop.RunAllPending(); 2510 loop.RunAllPending();
2501 EXPECT_TRUE(recorder.ready()); 2511 EXPECT_TRUE(recorder.ready());
2502 } 2512 }
2503 2513
2504 // Test loading extensions that require limited and unlimited storage quotas. 2514 // Test loading extensions that require limited and unlimited storage quotas.
2505 TEST_F(ExtensionsServiceTest, StorageQuota) { 2515 TEST_F(ExtensionsServiceTest, StorageQuota) {
2506 InitializeEmptyExtensionsService(); 2516 InitializeEmptyExtensionsService();
2507 2517
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
2592 // Component extensions shouldn't get recourded in the prefs. 2602 // Component extensions shouldn't get recourded in the prefs.
2593 ValidatePrefKeyCount(0); 2603 ValidatePrefKeyCount(0);
2594 2604
2595 // Reload all extensions, and make sure it comes back. 2605 // Reload all extensions, and make sure it comes back.
2596 std::string extension_id = service_->extensions()->at(0)->id(); 2606 std::string extension_id = service_->extensions()->at(0)->id();
2597 loaded_.clear(); 2607 loaded_.clear();
2598 service_->ReloadExtensions(); 2608 service_->ReloadExtensions();
2599 ASSERT_EQ(1u, service_->extensions()->size()); 2609 ASSERT_EQ(1u, service_->extensions()->size());
2600 EXPECT_EQ(extension_id, service_->extensions()->at(0)->id()); 2610 EXPECT_EQ(extension_id, service_->extensions()->at(0)->id());
2601 } 2611 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extensions_service_unittest.h ('k') | chrome/browser/gtk/gtk_theme_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698