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

Unified Diff: chrome/browser/extensions/extensions_service_unittest.cc

Issue 118328: chrome.exe --package-extension (Closed)
Patch Set: final Created 11 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/extensions/extensions_service.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extensions_service_unittest.cc
diff --git a/chrome/browser/extensions/extensions_service_unittest.cc b/chrome/browser/extensions/extensions_service_unittest.cc
index 630e71f3733175a36a70b119481fb567e09605d5..720b3a6514f2eb1254b85aec49745dbc898cdb97 100644
--- a/chrome/browser/extensions/extensions_service_unittest.cc
+++ b/chrome/browser/extensions/extensions_service_unittest.cc
@@ -12,6 +12,7 @@
#include "base/path_service.h"
#include "base/string_util.h"
#include "base/time.h"
+#include "chrome/browser/extensions/extension_creator.h"
#include "chrome/browser/extensions/extensions_service.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/url_pattern.h"
@@ -420,6 +421,70 @@ TEST_F(ExtensionsServiceTest, InstallExtension) {
// TODO(erikkay): add tests for upgrade cases.
}
+#if defined(OS_WIN) // TODO(port)
+// Test Packaging and installing an extension.
+// TODO(aa): add a test that uses an openssl-generate private key.
+// TODO(rafaelw): add more tests for failure cases.
+TEST_F(ExtensionsServiceTest, PackExtension) {
+ SetExtensionsEnabled(true);
+
+ FilePath extensions_path;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
+ extensions_path = extensions_path.AppendASCII("extensions");
+ FilePath input_directory = extensions_path.AppendASCII("good")
+ .AppendASCII("extension1").AppendASCII("1");
+
+ FilePath output_directory;
+ file_util::CreateNewTempDirectory(FILE_PATH_LITERAL("chrome_"),
+ &output_directory);
+ FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
+ FilePath privkey_path(output_directory.AppendASCII("privkey.pem"));
+
+ scoped_ptr<ExtensionCreator> creator(new ExtensionCreator());
+ ASSERT_TRUE(creator->Run(input_directory, crx_path, FilePath(),
+ privkey_path));
+
+ InstallExtension(crx_path, true);
+
+ ASSERT_TRUE(file_util::PathExists(privkey_path));
+
+ file_util::Delete(crx_path, false);
+ file_util::Delete(privkey_path, false);
+}
+
+// Test Packaging and installing an extension using an openssl generated key.
+// The openssl is generated with the following:
+// > openssl genrsa -out privkey.pem 1024
+// > openssl pkcs8 -topk8 -nocrypt -in privkey.pem -out privkey_asn1.pem
+// The privkey.pem is a PrivateKey, and the pcks8 -topk8 creates a
+// PrivateKeyInfo ASN.1 structure, we our RSAPrivateKey expects.
+TEST_F(ExtensionsServiceTest, PackExtensionOpenSSLKey) {
+ SetExtensionsEnabled(true);
+
+ FilePath extensions_path;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
+ extensions_path = extensions_path.AppendASCII("extensions");
+ FilePath input_directory = extensions_path.AppendASCII("good")
+ .AppendASCII("extension1").AppendASCII("1");
+ FilePath privkey_path(extensions_path.AppendASCII(
+ "openssl_privkey_asn1.pem"));
+ ASSERT_TRUE(file_util::PathExists(privkey_path));
+
+ FilePath output_directory;
+ file_util::CreateNewTempDirectory(FILE_PATH_LITERAL("chrome_"),
+ &output_directory);
+ FilePath crx_path(output_directory.AppendASCII("ex1.crx"));
+
+ scoped_ptr<ExtensionCreator> creator(new ExtensionCreator());
+ ASSERT_TRUE(creator->Run(input_directory, crx_path, privkey_path,
+ FilePath()));
+
+ InstallExtension(crx_path, true);
+
+ file_util::Delete(crx_path, false);
+}
+#endif // defined(OS_WIN)
+
TEST_F(ExtensionsServiceTest, InstallTheme) {
FilePath extensions_path;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &extensions_path));
« no previous file with comments | « chrome/browser/extensions/extensions_service.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698