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

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

Issue 11027070: Moved JsonPrefStore to use SequencedWorkerPool (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 | 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/browser/extensions/extension_sorting.h" 5 #include "chrome/browser/extensions/extension_sorting.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "chrome/browser/extensions/extension_prefs_unittest.h" 9 #include "chrome/browser/extensions/extension_prefs_unittest.h"
10 #include "chrome/common/extensions/extension_manifest_constants.h" 10 #include "chrome/common/extensions/extension_manifest_constants.h"
11 #include "sync/api/string_ordinal.h" 11 #include "sync/api/string_ordinal.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 using extensions::Extension; 14 using extensions::Extension;
15 15
16 namespace keys = extension_manifest_keys; 16 namespace keys = extension_manifest_keys;
17 17
18 class ExtensionSortingTest : public extensions::ExtensionPrefsTest { 18 class ExtensionSortingTest : public extensions::ExtensionPrefsTest {
19 protected: 19 protected:
20 ExtensionSorting* extension_sorting() { 20 ExtensionSorting* extension_sorting() {
21 return prefs()->extension_sorting(); 21 return prefs()->extension_sorting();
22 } 22 }
23 }; 23 };
24 24
25 class ExtensionSortingAppLocation : public ExtensionSortingTest { 25 class ExtensionSortingAppLocation : public ExtensionSortingTest {
26 public: 26 public:
27 virtual void Initialize() OVERRIDE { 27 virtual void Initialize() OVERRIDE {
28 extension_ = prefs_.AddExtension("not_an_app"); 28 extension_ = prefs_->AddExtension("not_an_app");
29 // Non-apps should not have any app launch ordinal or page ordinal. 29 // Non-apps should not have any app launch ordinal or page ordinal.
30 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 30 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
31 syncer::StringOrdinal()); 31 syncer::StringOrdinal());
32 } 32 }
33 33
34 virtual void Verify() OVERRIDE { 34 virtual void Verify() OVERRIDE {
35 EXPECT_FALSE( 35 EXPECT_FALSE(
36 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid()); 36 extension_sorting()->GetAppLaunchOrdinal(extension_->id()).IsValid());
37 EXPECT_FALSE( 37 EXPECT_FALSE(
38 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid()); 38 extension_sorting()->GetPageOrdinal(extension_->id()).IsValid());
39 } 39 }
40 40
41 private: 41 private:
42 scoped_refptr<Extension> extension_; 42 scoped_refptr<Extension> extension_;
43 }; 43 };
44 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {} 44 TEST_F(ExtensionSortingAppLocation, ExtensionSortingAppLocation) {}
45 45
46 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest { 46 class ExtensionSortingAppLaunchOrdinal : public ExtensionSortingTest {
47 public: 47 public:
48 virtual void Initialize() OVERRIDE { 48 virtual void Initialize() OVERRIDE {
49 // No extensions yet. 49 // No extensions yet.
50 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal(); 50 syncer::StringOrdinal page = syncer::StringOrdinal::CreateInitialOrdinal();
51 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals( 51 EXPECT_TRUE(syncer::StringOrdinal::CreateInitialOrdinal().Equals(
52 extension_sorting()->CreateNextAppLaunchOrdinal(page))); 52 extension_sorting()->CreateNextAppLaunchOrdinal(page)));
53 53
54 extension_ = prefs_.AddApp("on_extension_installed"); 54 extension_ = prefs_->AddApp("on_extension_installed");
55 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id())); 55 EXPECT_FALSE(prefs()->IsExtensionDisabled(extension_->id()));
56 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 56 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
57 syncer::StringOrdinal()); 57 syncer::StringOrdinal());
58 } 58 }
59 59
60 virtual void Verify() OVERRIDE { 60 virtual void Verify() OVERRIDE {
61 syncer::StringOrdinal launch_ordinal = 61 syncer::StringOrdinal launch_ordinal =
62 extension_sorting()->GetAppLaunchOrdinal(extension_->id()); 62 extension_sorting()->GetAppLaunchOrdinal(extension_->id());
63 syncer::StringOrdinal page_ordinal = 63 syncer::StringOrdinal page_ordinal =
64 syncer::StringOrdinal::CreateInitialOrdinal(); 64 syncer::StringOrdinal::CreateInitialOrdinal();
(...skipping 28 matching lines...) Expand all
93 } 93 }
94 94
95 private: 95 private:
96 scoped_refptr<Extension> extension_; 96 scoped_refptr<Extension> extension_;
97 }; 97 };
98 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {} 98 TEST_F(ExtensionSortingAppLaunchOrdinal, ExtensionSortingAppLaunchOrdinal) {}
99 99
100 class ExtensionSortingPageOrdinal : public ExtensionSortingTest { 100 class ExtensionSortingPageOrdinal : public ExtensionSortingTest {
101 public: 101 public:
102 virtual void Initialize() OVERRIDE { 102 virtual void Initialize() OVERRIDE {
103 extension_ = prefs_.AddApp("page_ordinal"); 103 extension_ = prefs_->AddApp("page_ordinal");
104 // Install with a page preference. 104 // Install with a page preference.
105 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal(); 105 first_page_ = syncer::StringOrdinal::CreateInitialOrdinal();
106 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED, 106 prefs()->OnExtensionInstalled(extension_.get(), Extension::ENABLED,
107 first_page_); 107 first_page_);
108 EXPECT_TRUE(first_page_.Equals( 108 EXPECT_TRUE(first_page_.Equals(
109 extension_sorting()->GetPageOrdinal(extension_->id()))); 109 extension_sorting()->GetPageOrdinal(extension_->id())));
110 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_)); 110 EXPECT_EQ(0, extension_sorting()->PageStringOrdinalAsInteger(first_page_));
111 111
112 scoped_refptr<Extension> extension2 = prefs_.AddApp("page_ordinal_2"); 112 scoped_refptr<Extension> extension2 = prefs_->AddApp("page_ordinal_2");
113 // Install without any page preference. 113 // Install without any page preference.
114 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED, 114 prefs()->OnExtensionInstalled(extension2.get(), Extension::ENABLED,
115 syncer::StringOrdinal()); 115 syncer::StringOrdinal());
116 EXPECT_TRUE(first_page_.Equals( 116 EXPECT_TRUE(first_page_.Equals(
117 extension_sorting()->GetPageOrdinal(extension2->id()))); 117 extension_sorting()->GetPageOrdinal(extension2->id())));
118 } 118 }
119 virtual void Verify() OVERRIDE { 119 virtual void Verify() OVERRIDE {
120 // Set the page ordinal. 120 // Set the page ordinal.
121 syncer::StringOrdinal new_page = first_page_.CreateAfter(); 121 syncer::StringOrdinal new_page = first_page_.CreateAfter();
122 extension_sorting()->SetPageOrdinal(extension_->id(), new_page); 122 extension_sorting()->SetPageOrdinal(extension_->id(), new_page);
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 public: 620 public:
621 ExtensionSortingPreinstalledAppsBase() { 621 ExtensionSortingPreinstalledAppsBase() {
622 DictionaryValue simple_dict; 622 DictionaryValue simple_dict;
623 simple_dict.SetString(keys::kVersion, "1.0.0.0"); 623 simple_dict.SetString(keys::kVersion, "1.0.0.0");
624 simple_dict.SetString(keys::kName, "unused"); 624 simple_dict.SetString(keys::kName, "unused");
625 simple_dict.SetString(keys::kApp, "true"); 625 simple_dict.SetString(keys::kApp, "true");
626 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); 626 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html");
627 627
628 std::string error; 628 std::string error;
629 app1_scoped_ = Extension::Create( 629 app1_scoped_ = Extension::Create(
630 prefs_.temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF, 630 prefs_->temp_dir().AppendASCII("app1_"), Extension::EXTERNAL_PREF,
631 simple_dict, Extension::NO_FLAGS, &error); 631 simple_dict, Extension::NO_FLAGS, &error);
632 prefs()->OnExtensionInstalled(app1_scoped_.get(), 632 prefs()->OnExtensionInstalled(app1_scoped_.get(),
633 Extension::ENABLED, 633 Extension::ENABLED,
634 syncer::StringOrdinal()); 634 syncer::StringOrdinal());
635 635
636 app2_scoped_ = Extension::Create( 636 app2_scoped_ = Extension::Create(
637 prefs_.temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF, 637 prefs_->temp_dir().AppendASCII("app2_"), Extension::EXTERNAL_PREF,
638 simple_dict, Extension::NO_FLAGS, &error); 638 simple_dict, Extension::NO_FLAGS, &error);
639 prefs()->OnExtensionInstalled(app2_scoped_.get(), 639 prefs()->OnExtensionInstalled(app2_scoped_.get(),
640 Extension::ENABLED, 640 Extension::ENABLED,
641 syncer::StringOrdinal()); 641 syncer::StringOrdinal());
642 642
643 app1_ = app1_scoped_.get(); 643 app1_ = app1_scoped_.get();
644 app2_ = app2_scoped_.get(); 644 app2_ = app2_scoped_.get();
645 } 645 }
646 virtual ~ExtensionSortingPreinstalledAppsBase() {} 646 virtual ~ExtensionSortingPreinstalledAppsBase() {}
647 647
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 protected: 797 protected:
798 scoped_refptr<Extension> CreateApp(const std::string& name) { 798 scoped_refptr<Extension> CreateApp(const std::string& name) {
799 DictionaryValue simple_dict; 799 DictionaryValue simple_dict;
800 simple_dict.SetString(keys::kVersion, "1.0.0.0"); 800 simple_dict.SetString(keys::kVersion, "1.0.0.0");
801 simple_dict.SetString(keys::kName, name); 801 simple_dict.SetString(keys::kName, name);
802 simple_dict.SetString(keys::kApp, "true"); 802 simple_dict.SetString(keys::kApp, "true");
803 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html"); 803 simple_dict.SetString(keys::kLaunchLocalPath, "fake.html");
804 804
805 std::string errors; 805 std::string errors;
806 scoped_refptr<Extension> app = Extension::Create( 806 scoped_refptr<Extension> app = Extension::Create(
807 prefs_.temp_dir().AppendASCII(name), Extension::EXTERNAL_PREF, 807 prefs_->temp_dir().AppendASCII(name), Extension::EXTERNAL_PREF,
808 simple_dict, Extension::NO_FLAGS, &errors); 808 simple_dict, Extension::NO_FLAGS, &errors);
809 EXPECT_TRUE(app) << errors; 809 EXPECT_TRUE(app) << errors;
810 EXPECT_TRUE(Extension::IdIsValid(app->id())); 810 EXPECT_TRUE(Extension::IdIsValid(app->id()));
811 return app; 811 return app;
812 } 812 }
813 813
814 void InitDefaultOrdinals() { 814 void InitDefaultOrdinals() {
815 default_page_ordinal_ = 815 default_page_ordinal_ =
816 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter(); 816 syncer::StringOrdinal::CreateInitialOrdinal().CreateAfter();
817 default_app_launch_ordinal_ = 817 default_app_launch_ordinal_ =
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 // Use the default page. 924 // Use the default page.
925 EXPECT_TRUE(extension_sorting->GetPageOrdinal(app_->id()).Equals( 925 EXPECT_TRUE(extension_sorting->GetPageOrdinal(app_->id()).Equals(
926 default_page_ordinal_)); 926 default_page_ordinal_));
927 // Not using the default app launch ordinal because of the collision. 927 // Not using the default app launch ordinal because of the collision.
928 EXPECT_FALSE(extension_sorting->GetAppLaunchOrdinal(app_->id()).Equals( 928 EXPECT_FALSE(extension_sorting->GetAppLaunchOrdinal(app_->id()).Equals(
929 default_app_launch_ordinal_)); 929 default_app_launch_ordinal_));
930 } 930 }
931 931
932 protected: 932 protected:
933 virtual void SetupUserOrdinals() { 933 virtual void SetupUserOrdinals() {
934 other_app_ = prefs_.AddApp("other_app"); 934 other_app_ = prefs_->AddApp("other_app");
935 // Creates a collision. 935 // Creates a collision.
936 ExtensionSorting* extension_sorting = prefs()->extension_sorting(); 936 ExtensionSorting* extension_sorting = prefs()->extension_sorting();
937 extension_sorting->SetPageOrdinal(other_app_->id(), default_page_ordinal_); 937 extension_sorting->SetPageOrdinal(other_app_->id(), default_page_ordinal_);
938 extension_sorting->SetAppLaunchOrdinal(other_app_->id(), 938 extension_sorting->SetAppLaunchOrdinal(other_app_->id(),
939 default_app_launch_ordinal_); 939 default_app_launch_ordinal_);
940 940
941 yet_another_app_ = prefs_.AddApp("yet_aother_app"); 941 yet_another_app_ = prefs_.AddApp("yet_aother_app");
942 extension_sorting->SetPageOrdinal(yet_another_app_->id(), 942 extension_sorting->SetPageOrdinal(yet_another_app_->id(),
943 default_page_ordinal_); 943 default_page_ordinal_);
944 extension_sorting->SetAppLaunchOrdinal(yet_another_app_->id(), 944 extension_sorting->SetAppLaunchOrdinal(yet_another_app_->id(),
945 default_app_launch_ordinal_); 945 default_app_launch_ordinal_);
946 } 946 }
947 947
948 private: 948 private:
949 scoped_refptr<Extension> other_app_; 949 scoped_refptr<Extension> other_app_;
950 scoped_refptr<Extension> yet_another_app_; 950 scoped_refptr<Extension> yet_another_app_;
951 }; 951 };
952 TEST_F(ExtensionSortingDefaultOrdinalNoCollision, 952 TEST_F(ExtensionSortingDefaultOrdinalNoCollision,
953 ExtensionSortingDefaultOrdinalNoCollision) {} 953 ExtensionSortingDefaultOrdinalNoCollision) {}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698