diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-09 21:36:53 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-09 21:36:53 +0000 |
commit | 4458084d138b2ad2ea5bd1e27088dc00606cb7bc (patch) | |
tree | 02676c5135a6d0e80974141fc3bd0ffb7b3c65ff /chrome/browser/extensions/test_extension_dir.h | |
parent | f52f150675eba3b79e1cd8d7d6de693e4641a899 (diff) | |
download | chromium_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.h | 50 |
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_ |