| Index: extensions/common/manifest_test.h
|
| diff --git a/chrome/common/extensions/manifest_tests/extension_manifest_test.h b/extensions/common/manifest_test.h
|
| similarity index 71%
|
| rename from chrome/common/extensions/manifest_tests/extension_manifest_test.h
|
| rename to extensions/common/manifest_test.h
|
| index 6d68cf9d5b7c157b3a03bb4f55c263fa9faa037c..d331a3bff368de2011fafde1ed0b5aafa1357fc1 100644
|
| --- a/chrome/common/extensions/manifest_tests/extension_manifest_test.h
|
| +++ b/extensions/common/manifest_test.h
|
| @@ -2,29 +2,36 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CHROME_COMMON_EXTENSIONS_MANIFEST_TESTS_EXTENSION_MANIFEST_TEST_H_
|
| -#define CHROME_COMMON_EXTENSIONS_MANIFEST_TESTS_EXTENSION_MANIFEST_TEST_H_
|
| +#ifndef EXTENSIONS_COMMON_MANIFEST_TEST_H_
|
| +#define EXTENSIONS_COMMON_MANIFEST_TEST_H_
|
|
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/values.h"
|
| -#include "chrome/common/extensions/features/feature_channel.h"
|
| #include "extensions/common/extension.h"
|
| #include "extensions/common/manifest.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| -class ExtensionManifestTest : public testing::Test {
|
| +namespace base {
|
| +class FilePath;
|
| +}
|
| +
|
| +namespace extensions {
|
| +
|
| +// Base class for tests that parse a manifest file.
|
| +class ManifestTest : public testing::Test {
|
| public:
|
| - ExtensionManifestTest();
|
| + ManifestTest();
|
| + virtual ~ManifestTest();
|
|
|
| protected:
|
| // Helper class that simplifies creating methods that take either a filename
|
| // to a manifest or the manifest itself.
|
| - class Manifest {
|
| + class ManifestData {
|
| public:
|
| - explicit Manifest(const char* name);
|
| - Manifest(base::DictionaryValue* manifest, const char* name);
|
| - explicit Manifest(scoped_ptr<base::DictionaryValue> manifest);
|
| + explicit ManifestData(const char* name);
|
| + ManifestData(base::DictionaryValue* manifest, const char* name);
|
| + explicit ManifestData(scoped_ptr<base::DictionaryValue> manifest);
|
| // C++98 requires the copy constructor for a type to be visible if you
|
| // take a const-ref of a temporary for that type. Since Manifest
|
| // contains a scoped_ptr, its implicit copy constructor is declared
|
| @@ -34,13 +41,13 @@ class ExtensionManifestTest : public testing::Test {
|
| //
|
| // To get around this spec pedantry, we declare the copy constructor
|
| // explicitly. It will never get invoked.
|
| - Manifest(const Manifest& m);
|
| + ManifestData(const ManifestData& m);
|
|
|
| - ~Manifest();
|
| + ~ManifestData();
|
|
|
| const std::string& name() const { return name_; };
|
|
|
| - base::DictionaryValue* GetManifest(char const* test_data_dir,
|
| + base::DictionaryValue* GetManifest(base::FilePath manifest_path,
|
| std::string* error) const;
|
|
|
| private:
|
| @@ -49,22 +56,23 @@ class ExtensionManifestTest : public testing::Test {
|
| mutable scoped_ptr<base::DictionaryValue> manifest_holder_;
|
| };
|
|
|
| - // The subdirectory in which to find test data files.
|
| - virtual char const* test_data_dir();
|
| + // Returns the path in which to find test manifest data files, for example
|
| + // extensions/test/data/manifest_tests.
|
| + virtual base::FilePath GetTestDataDir();
|
|
|
| scoped_ptr<base::DictionaryValue> LoadManifest(
|
| char const* manifest_name,
|
| std::string* error);
|
|
|
| scoped_refptr<extensions::Extension> LoadExtension(
|
| - const Manifest& manifest,
|
| + const ManifestData& manifest,
|
| std::string* error,
|
| extensions::Manifest::Location location =
|
| extensions::Manifest::INTERNAL,
|
| int flags = extensions::Extension::NO_FLAGS);
|
|
|
| scoped_refptr<extensions::Extension> LoadAndExpectSuccess(
|
| - const Manifest& manifest,
|
| + const ManifestData& manifest,
|
| extensions::Manifest::Location location =
|
| extensions::Manifest::INTERNAL,
|
| int flags = extensions::Extension::NO_FLAGS);
|
| @@ -75,13 +83,8 @@ class ExtensionManifestTest : public testing::Test {
|
| extensions::Manifest::INTERNAL,
|
| int flags = extensions::Extension::NO_FLAGS);
|
|
|
| - // Load and expect success from a manifest provided as a json string. Single
|
| - // quotes will be replaced with double quotes for test readability.
|
| - scoped_refptr<extensions::Extension> LoadFromStringAndExpectSuccess(
|
| - char const* manifest_json);
|
| -
|
| scoped_refptr<extensions::Extension> LoadAndExpectWarning(
|
| - const Manifest& manifest,
|
| + const ManifestData& manifest,
|
| const std::string& expected_error,
|
| extensions::Manifest::Location location =
|
| extensions::Manifest::INTERNAL,
|
| @@ -105,17 +108,12 @@ class ExtensionManifestTest : public testing::Test {
|
| extensions::Manifest::INTERNAL,
|
| int flags = extensions::Extension::NO_FLAGS);
|
|
|
| - void LoadAndExpectError(const Manifest& manifest,
|
| + void LoadAndExpectError(const ManifestData& manifest,
|
| const std::string& expected_error,
|
| extensions::Manifest::Location location =
|
| extensions::Manifest::INTERNAL,
|
| int flags = extensions::Extension::NO_FLAGS);
|
|
|
| - // Load and expect an error from a manifest provided as a json string. Single
|
| - // quotes will be replaced with double quotes for test readability.
|
| - void LoadFromStringAndExpectError(char const* manifest_json,
|
| - const std::string& expected_error);
|
| -
|
| void AddPattern(extensions::URLPatternSet* extent,
|
| const std::string& pattern);
|
|
|
| @@ -153,13 +151,10 @@ class ExtensionManifestTest : public testing::Test {
|
|
|
| bool enable_apps_;
|
|
|
| - // Force the manifest tests to run as though they are on trunk, since several
|
| - // tests rely on manifest features being available that aren't on
|
| - // stable/beta.
|
| - //
|
| - // These objects nest, so if a test wants to explicitly test the behaviour
|
| - // on stable or beta, declare it inside that test.
|
| - extensions::ScopedCurrentChannel current_channel_;
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ManifestTest);
|
| };
|
|
|
| -#endif // CHROME_COMMON_EXTENSIONS_MANIFEST_TESTS_EXTENSION_MANIFEST_TEST_H_
|
| +} // namespace extensions
|
| +
|
| +#endif // EXTENSIONS_COMMON_MANIFEST_TEST_H_
|
|
|