summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/test_extension_dir.h
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-09 21:36:53 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-09 21:36:53 +0000
commit4458084d138b2ad2ea5bd1e27088dc00606cb7bc (patch)
tree02676c5135a6d0e80974141fc3bd0ffb7b3c65ff /chrome/browser/extensions/test_extension_dir.h
parentf52f150675eba3b79e1cd8d7d6de693e4641a899 (diff)
downloadchromium_src-4458084d138b2ad2ea5bd1e27088dc00606cb7bc.zip
chromium_src-4458084d138b2ad2ea5bd1e27088dc00606cb7bc.tar.gz
chromium_src-4458084d138b2ad2ea5bd1e27088dc00606cb7bc.tar.bz2
Pull TestExtensionDir out of ExtensionLoadingBrowsertest into its own file, then
use it in ExtensionMessagesApitest. R=jyasskin@chromium.org Review URL: https://chromiumcodereview.appspot.com/18298010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210639 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/test_extension_dir.h')
-rw-r--r--chrome/browser/extensions/test_extension_dir.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/extensions/test_extension_dir.h b/chrome/browser/extensions/test_extension_dir.h
new file mode 100644
index 0000000..df1d731
--- /dev/null
+++ b/chrome/browser/extensions/test_extension_dir.h
@@ -0,0 +1,50 @@
+// Copyright 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.
+
+#ifndef CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_DIR_H_
+#define CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_DIR_H_
+
+#include "base/files/file_path.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/strings/string_piece.h"
+
+namespace extensions {
+
+// Provides a temporary directory to build an extension into. This lets all of
+// an extension's code live inside the test instead of in a separate directory.
+class TestExtensionDir {
+ public:
+ TestExtensionDir();
+
+ ~TestExtensionDir();
+
+ // Writes |manifest| to manifest.json within the unpacked dir. No validation
+ // is performed. If desired this should be done on extension installation.
+ void WriteManifest(base::StringPiece manifest);
+
+ // Writes |contents| to |filename| within the unpacked dir, overwriting
+ // anything that was already there.
+ void WriteFile(const base::FilePath::StringType& filename,
+ base::StringPiece contents);
+
+ // Packs the extension into a .crx, and returns the path to that
+ // .crx. Multiple calls to Pack() will produce extensions with the same ID.
+ base::FilePath Pack();
+
+ // Returns the path to the unpacked directory.
+ base::FilePath unpacked_path() {
+ return dir_.path();
+ }
+
+ private:
+ // Stores files that make up the extension.
+ base::ScopedTempDir dir_;
+
+ // Stores the generated .crx and .pem.
+ base::ScopedTempDir crx_dir_;
+};
+
+} // namespace extensions
+
+#endif // CHROME_BROWSER_EXTENSIONS_TEST_EXTENSION_DIR_H_