Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/ui/app_list/apps_model_builder.h" | 5 #include "chrome/browser/ui/app_list/apps_model_builder.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "chrome/browser/extensions/extension_function_test_utils.h" | |
| 11 #include "chrome/browser/extensions/extension_service_unittest.h" | 12 #include "chrome/browser/extensions/extension_service_unittest.h" |
| 12 #include "chrome/browser/extensions/extension_sorting.h" | 13 #include "chrome/browser/extensions/extension_sorting.h" |
| 14 #include "chrome/browser/prefs/pref_service.h" | |
| 15 #include "chrome/common/extensions/manifest.h" | |
| 16 #include "chrome/common/pref_names.h" | |
| 13 #include "chrome/test/base/testing_profile.h" | 17 #include "chrome/test/base/testing_profile.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
| 15 #include "ui/app_list/app_list_item_model.h" | 19 #include "ui/app_list/app_list_item_model.h" |
| 16 | 20 |
| 17 namespace { | 21 namespace { |
| 18 | 22 |
| 19 const char kHostedAppId[] = "dceacbkfkmllgmjmbhgkpjegnodmildf"; | 23 const char kHostedAppId[] = "dceacbkfkmllgmjmbhgkpjegnodmildf"; |
| 20 const char kPackagedApp1Id[] = "emfkafnhnpcmabnnkckkchdilgeoekbo"; | 24 const char kPackagedApp1Id[] = "emfkafnhnpcmabnnkckkchdilgeoekbo"; |
| 21 const char kPackagedApp2Id[] = "jlklkagmeajbjiobondfhiekepofmljl"; | 25 const char kPackagedApp2Id[] = "jlklkagmeajbjiobondfhiekepofmljl"; |
| 22 | 26 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 61 scoped_ptr<app_list::AppListModel::Apps> model( | 65 scoped_ptr<app_list::AppListModel::Apps> model( |
| 62 new app_list::AppListModel::Apps); | 66 new app_list::AppListModel::Apps); |
| 63 AppsModelBuilder builder(profile_.get(), model.get(), NULL); | 67 AppsModelBuilder builder(profile_.get(), model.get(), NULL); |
| 64 builder.Build(); | 68 builder.Build(); |
| 65 | 69 |
| 66 // The apps list would have 3 extension apps in the profile. | 70 // The apps list would have 3 extension apps in the profile. |
| 67 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), | 71 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), |
| 68 GetModelContent(model.get())); | 72 GetModelContent(model.get())); |
| 69 } | 73 } |
| 70 | 74 |
| 75 TEST_F(AppsModelBuilderTest, HideWebStore) { | |
| 76 // Install a "web store" app. | |
| 77 std::string err; | |
| 78 DictionaryValue value; | |
| 79 value.SetString("name", "webstore"); | |
| 80 value.SetString("version", "0.0"); | |
| 81 value.SetString("app.launch.web_url", "http://google.com"); | |
| 82 scoped_refptr<extensions::Extension> store = | |
| 83 extensions::Extension::Create( | |
| 84 FilePath(), | |
| 85 extensions::Extension::INTERNAL, | |
| 86 value, | |
| 87 extensions::Extension::WAS_INSTALLED_BY_DEFAULT, | |
| 88 std::string(extension_misc::kWebStoreAppId), | |
| 89 &err); | |
| 90 EXPECT_EQ(err, ""); | |
| 91 service_->AddExtension(store); | |
| 92 | |
| 93 // Web store should be present in the AppListModel. | |
| 94 scoped_ptr<app_list::AppListModel::Apps> model( | |
| 95 new app_list::AppListModel::Apps); | |
| 96 AppsModelBuilder builder(profile_.get(), model.get(), NULL); | |
| 97 builder.Build(); | |
| 98 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,webstore,Hosted App"), | |
| 99 GetModelContent(model.get())); | |
| 100 | |
| 101 // Activate the HideWebStoreIcon policy. | |
| 102 profile_.get()->GetPrefs()->SetBoolean(prefs::kHideWebStoreIcon, true); | |
|
tfarina
2013/01/24 14:15:23
profile_->GetPrefs()
dconnelly
2013/01/24 14:30:51
Done.
| |
| 103 | |
| 104 // Web store should NOT be in the AppListModel. | |
| 105 model.reset(new app_list::AppListModel::Apps); | |
| 106 AppsModelBuilder builder2(profile_.get(), model.get(), NULL); | |
| 107 builder2.Build(); | |
| 108 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), | |
| 109 GetModelContent(model.get())); | |
| 110 } | |
| 111 | |
| 71 TEST_F(AppsModelBuilderTest, DisableAndEnable) { | 112 TEST_F(AppsModelBuilderTest, DisableAndEnable) { |
| 72 scoped_ptr<app_list::AppListModel::Apps> model( | 113 scoped_ptr<app_list::AppListModel::Apps> model( |
| 73 new app_list::AppListModel::Apps); | 114 new app_list::AppListModel::Apps); |
| 74 AppsModelBuilder builder(profile_.get(), model.get(), NULL); | 115 AppsModelBuilder builder(profile_.get(), model.get(), NULL); |
| 75 builder.Build(); | 116 builder.Build(); |
| 76 | 117 |
| 77 service_->DisableExtension(kHostedAppId, | 118 service_->DisableExtension(kHostedAppId, |
| 78 extensions::Extension::DISABLE_NONE); | 119 extensions::Extension::DISABLE_NONE); |
| 79 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), | 120 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), |
| 80 GetModelContent(model.get())); | 121 GetModelContent(model.get())); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 GetModelContent(model.get())); | 178 GetModelContent(model.get())); |
| 138 | 179 |
| 139 service_->OnExtensionMoved(kHostedAppId, kPackagedApp2Id, std::string()); | 180 service_->OnExtensionMoved(kHostedAppId, kPackagedApp2Id, std::string()); |
| 140 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), | 181 EXPECT_EQ(std::string("Packaged App 1,Packaged App 2,Hosted App"), |
| 141 GetModelContent(model.get())); | 182 GetModelContent(model.get())); |
| 142 | 183 |
| 143 service_->OnExtensionMoved(kHostedAppId, std::string(), kPackagedApp1Id); | 184 service_->OnExtensionMoved(kHostedAppId, std::string(), kPackagedApp1Id); |
| 144 EXPECT_EQ(std::string("Hosted App,Packaged App 1,Packaged App 2"), | 185 EXPECT_EQ(std::string("Hosted App,Packaged App 1,Packaged App 2"), |
| 145 GetModelContent(model.get())); | 186 GetModelContent(model.get())); |
| 146 } | 187 } |
| OLD | NEW |