| Index: chrome/browser/ui/app_list/apps_model_builder_unittest.cc
|
| diff --git a/chrome/browser/ui/app_list/apps_model_builder_unittest.cc b/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
|
| index af154d2b509c5a48132bf1297f47b44af9730265..61b4f239f7bf4a9eace393c1ac94126fde2eb689 100644
|
| --- a/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
|
| +++ b/chrome/browser/ui/app_list/apps_model_builder_unittest.cc
|
| @@ -8,9 +8,14 @@
|
|
|
| #include "base/files/file_path.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/prefs/pref_service.h"
|
| #include "base/values.h"
|
| +#include "chrome/browser/extensions/extension_function_test_utils.h"
|
| #include "chrome/browser/extensions/extension_service_unittest.h"
|
| #include "chrome/browser/extensions/extension_sorting.h"
|
| +#include "chrome/common/extensions/extension_constants.h"
|
| +#include "chrome/common/extensions/manifest.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "chrome/test/base/testing_profile.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/app_list/app_list_item_model.h"
|
| @@ -32,6 +37,27 @@ std::string GetModelContent(app_list::AppListModel::Apps* model) {
|
| return content;
|
| }
|
|
|
| +scoped_refptr<extensions::Extension> MakeApp(const std::string& name,
|
| + const std::string& version,
|
| + const std::string& url,
|
| + const std::string& id) {
|
| + std::string err;
|
| + DictionaryValue value;
|
| + value.SetString("name", name);
|
| + value.SetString("version", version);
|
| + value.SetString("app.launch.web_url", url);
|
| + scoped_refptr<extensions::Extension> app =
|
| + extensions::Extension::Create(
|
| + base::FilePath(),
|
| + extensions::Manifest::INTERNAL,
|
| + value,
|
| + extensions::Extension::WAS_INSTALLED_BY_DEFAULT,
|
| + id,
|
| + &err);
|
| + EXPECT_EQ(err, "");
|
| + return app;
|
| +}
|
| +
|
| } // namespace
|
|
|
| class AppsModelBuilderTest : public ExtensionServiceTestBase {
|
| @@ -69,6 +95,43 @@ TEST_F(AppsModelBuilderTest, Build) {
|
| GetModelContent(model.get()));
|
| }
|
|
|
| +TEST_F(AppsModelBuilderTest, HideWebStore) {
|
| + // Install a "web store" app.
|
| + scoped_refptr<extensions::Extension> store =
|
| + MakeApp("webstore",
|
| + "0.0",
|
| + "http://google.com",
|
| + std::string(extension_misc::kWebStoreAppId));
|
| + service_->AddExtension(store);
|
| +
|
| + // Install an "enterprise web store" app.
|
| + scoped_refptr<extensions::Extension> enterprise_store =
|
| + MakeApp("enterprise_webstore",
|
| + "0.0",
|
| + "http://google.com",
|
| + std::string(extension_misc::kEnterpriseWebStoreAppId));
|
| + service_->AddExtension(enterprise_store);
|
| +
|
| + // Web stores should be present in the AppListModel.
|
| + app_list::AppListModel::Apps model1;
|
| + AppsModelBuilder builder1(profile_.get(), &model1, NULL);
|
| + builder1.Build();
|
| + std::string content = GetModelContent(&model1);
|
| + EXPECT_NE(std::string::npos, content.find("webstore"));
|
| + EXPECT_NE(std::string::npos, content.find("enterprise_webstore"));
|
| +
|
| + // Activate the HideWebStoreIcon policy.
|
| + profile_->GetPrefs()->SetBoolean(prefs::kHideWebStoreIcon, true);
|
| +
|
| + // Web stores should NOT be in the AppListModel.
|
| + app_list::AppListModel::Apps model2;
|
| + AppsModelBuilder builder2(profile_.get(), &model2, NULL);
|
| + builder2.Build();
|
| + content = GetModelContent(&model2);
|
| + EXPECT_EQ(std::string::npos, content.find("webstore"));
|
| + EXPECT_EQ(std::string::npos, content.find("enterprise_webstore"));
|
| +}
|
| +
|
| TEST_F(AppsModelBuilderTest, DisableAndEnable) {
|
| scoped_ptr<app_list::AppListModel::Apps> model(
|
| new app_list::AppListModel::Apps);
|
|
|