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

Unified Diff: extensions/common/manifest_test.h

Issue 574173002: Reland: Refactor ExtensionManifestTest to allow usage in src/extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: (manifest-test) add ScopedChannel Created 6 years, 3 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
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_
« no previous file with comments | « extensions/common/manifest_handlers/shared_module_manifest_unittest.cc ('k') | extensions/common/manifest_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698