// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/extensions/extension_apitest.h" #include "extensions/test/extension_test_message_listener.h" using extensions::Extension; // NB: We use LoadExtension instead of InstallExtension for shared modules so // the public-keys in their manifests are used to generate the extension ID, so // it can be imported correctly. We use InstallExtension otherwise so the loads // happen through the CRX installer which validates imports. IN_PROC_BROWSER_TEST_F(ExtensionApiTest, SharedModule) { // import_pass depends on this shared module. ASSERT_TRUE(LoadExtension( test_data_dir_.AppendASCII("shared_module").AppendASCII("shared"))); EXPECT_TRUE(RunExtensionTest("shared_module/import_pass")); EXPECT_FALSE(InstallExtension( test_data_dir_.AppendASCII("shared_module") .AppendASCII("import_wrong_version"), 0)); EXPECT_FALSE(InstallExtension( test_data_dir_.AppendASCII("shared_module") .AppendASCII("import_non_existent"), 0)); } IN_PROC_BROWSER_TEST_F(ExtensionApiTest, SharedModuleWhitelist) { ASSERT_TRUE(LoadExtension( test_data_dir_.AppendASCII("shared_module") .AppendASCII("shared_whitelist"))); EXPECT_FALSE(InstallExtension( test_data_dir_.AppendASCII("shared_module") .AppendASCII("import_not_in_whitelist"), 0)); } IN_PROC_BROWSER_TEST_F(ExtensionApiTest, SharedModuleInstallEvent) { ExtensionTestMessageListener listener1("ready", false); const Extension* extension = LoadExtension( test_data_dir_.AppendASCII("shared_module").AppendASCII("shared")); ASSERT_TRUE(extension); ASSERT_TRUE(InstallExtension( test_data_dir_.AppendASCII("shared_module").AppendASCII("import_pass"), 1)); } IN_PROC_BROWSER_TEST_F(ExtensionApiTest, SharedModuleLocale) { const Extension* extension = LoadExtension( test_data_dir_.AppendASCII("shared_module").AppendASCII("shared")); ASSERT_TRUE(extension); EXPECT_TRUE(RunExtensionTest("shared_module/import_locales")); }