| Index: chrome/browser/extensions/extension_webstore_private_apitest.cc
|
| diff --git a/chrome/browser/extensions/extension_webstore_private_apitest.cc b/chrome/browser/extensions/extension_webstore_private_apitest.cc
|
| index d7fbf65a7050d69733c5cb82cea3d79e1cc93996..18d49e4ccc7b9d5899ba484716be64722f1cae41 100644
|
| --- a/chrome/browser/extensions/extension_webstore_private_apitest.cc
|
| +++ b/chrome/browser/extensions/extension_webstore_private_apitest.cc
|
| @@ -2,6 +2,10 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include <vector>
|
| +
|
| +#include "base/file_path.h"
|
| +#include "base/file_util.h"
|
| #include "base/stringprintf.h"
|
| #include "chrome/browser/extensions/extension_apitest.h"
|
| #include "chrome/browser/extensions/extension_install_dialog.h"
|
| @@ -125,6 +129,47 @@ class ExtensionWebstorePrivateApiTest : public ExtensionApiTest {
|
| }
|
| };
|
|
|
| +class ExtensionWebstorePrivateBundleTest
|
| + : public ExtensionWebstorePrivateApiTest {
|
| + public:
|
| + void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| + ExtensionWebstorePrivateApiTest::SetUpInProcessBrowserTestFixture();
|
| +
|
| + // The test server needs to have already started, so setup the switch here
|
| + // rather than in SetUpCommandLine.
|
| + CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + switches::kAppsGalleryDownloadURL,
|
| + GetTestServerURL("bundle/%s.crx").spec());
|
| +
|
| + PackCRX("begfmnajjkbjdgmffnjaojchoncnmngg");
|
| + PackCRX("bmfoocgfinpmkmlbjhcbofejhkhlbchk");
|
| + PackCRX("mpneghmdnmaolkljkipbhaienajcflfe");
|
| + }
|
| +
|
| + void TearDownInProcessBrowserTestFixture() OVERRIDE {
|
| + ExtensionWebstorePrivateApiTest::TearDownInProcessBrowserTestFixture();
|
| + for (size_t i = 0; i < test_crx_.size(); ++i)
|
| + ASSERT_TRUE(file_util::Delete(test_crx_[i], false));
|
| + }
|
| +
|
| + private:
|
| + void PackCRX(const std::string& id) {
|
| + FilePath data_path = test_data_dir_.AppendASCII("webstore_private/bundle");
|
| + FilePath dir_path = data_path.AppendASCII(id);
|
| + FilePath pem_path = data_path.AppendASCII(id + ".pem");
|
| + FilePath crx_path = data_path.AppendASCII(id + ".crx");
|
| + FilePath destination = PackExtensionWithOptions(
|
| + dir_path, crx_path, pem_path, FilePath());
|
| +
|
| + ASSERT_FALSE(destination.empty());
|
| + ASSERT_EQ(destination, crx_path);
|
| +
|
| + test_crx_.push_back(destination);
|
| + }
|
| +
|
| + std::vector<FilePath> test_crx_;
|
| +};
|
| +
|
| // Test cases where the user accepts the install confirmation dialog.
|
| IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest, InstallAccepted) {
|
| ASSERT_TRUE(RunInstallTest("accepted.html", "extension.crx"));
|
| @@ -178,3 +223,9 @@ IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateApiTest,
|
| IconUrl) {
|
| ASSERT_TRUE(RunInstallTest("icon_url.html", "extension.crx"));
|
| }
|
| +
|
| +// Tests using silentlyInstall to install extensions.
|
| +IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateBundleTest, SilentlyInstall) {
|
| + WebstorePrivateApi::SetTrustTestIDsForTesting(true);
|
| + ASSERT_TRUE(RunPageTest(GetTestServerURL("silently_install.html").spec()));
|
| +}
|
|
|