Index: chrome/common/extensions/manifest_handler_unittest.cc |
diff --git a/chrome/common/extensions/manifest_handler_unittest.cc b/chrome/common/extensions/manifest_handler_unittest.cc |
index 2cad12e49e7be50491c8e7686d8a873e0e397926..52694ae8f632a30d86a7d041b623bd7e08b72382 100644 |
--- a/chrome/common/extensions/manifest_handler_unittest.cc |
+++ b/chrome/common/extensions/manifest_handler_unittest.cc |
@@ -16,6 +16,14 @@ |
namespace extensions { |
+namespace { |
+ |
+std::vector<std::string> SingleKey(const std::string& key) { |
+ return std::vector<std::string>(1, key); |
+} |
+ |
+} // namespace |
+ |
class ManifestHandlerTest : public testing::Test { |
public: |
class ParsingWatcher { |
@@ -53,9 +61,10 @@ class ManifestHandlerTest : public testing::Test { |
class TestManifestHandler : public ManifestHandler { |
public: |
TestManifestHandler(const std::string& name, |
+ const std::vector<std::string>& keys, |
const std::vector<std::string>& prereqs, |
ParsingWatcher* watcher) |
- : name_(name), prereqs_(prereqs), watcher_(watcher) { |
+ : name_(name), keys_(keys), prereqs_(prereqs), watcher_(watcher) { |
} |
virtual bool Parse(Extension* extension, string16* error) OVERRIDE { |
@@ -63,22 +72,29 @@ class ManifestHandlerTest : public testing::Test { |
return true; |
} |
- virtual const std::vector<std::string>& PrerequisiteKeys() OVERRIDE { |
+ virtual const std::vector<std::string> PrerequisiteKeys() const OVERRIDE { |
return prereqs_; |
} |
protected: |
std::string name_; |
+ std::vector<std::string> keys_; |
std::vector<std::string> prereqs_; |
ParsingWatcher* watcher_; |
+ |
+ private: |
+ virtual const std::vector<std::string> Keys() const OVERRIDE { |
+ return keys_; |
+ } |
}; |
class FailingTestManifestHandler : public TestManifestHandler { |
public: |
FailingTestManifestHandler(const std::string& name, |
- const std::vector<std::string> prereqs, |
+ const std::vector<std::string>& keys, |
+ const std::vector<std::string>& prereqs, |
ParsingWatcher* watcher) |
- : TestManifestHandler(name, prereqs, watcher) { |
+ : TestManifestHandler(name, keys, prereqs, watcher) { |
} |
virtual bool Parse(Extension* extension, string16* error) OVERRIDE { |
*error = ASCIIToUTF16(name_); |
@@ -89,12 +105,13 @@ class ManifestHandlerTest : public testing::Test { |
class AlwaysParseTestManifestHandler : public TestManifestHandler { |
public: |
AlwaysParseTestManifestHandler(const std::string& name, |
- const std::vector<std::string> prereqs, |
+ const std::vector<std::string>& keys, |
+ const std::vector<std::string>& prereqs, |
ParsingWatcher* watcher) |
- : TestManifestHandler(name, prereqs, watcher) { |
+ : TestManifestHandler(name, keys, prereqs, watcher) { |
} |
- virtual bool AlwaysParseForType(Manifest::Type type) OVERRIDE { |
+ virtual bool AlwaysParseForType(Manifest::Type type) const OVERRIDE { |
return true; |
} |
}; |
@@ -108,26 +125,21 @@ class ManifestHandlerTest : public testing::Test { |
TEST_F(ManifestHandlerTest, DependentHandlers) { |
ParsingWatcher watcher; |
std::vector<std::string> prereqs; |
- ManifestHandler::Register( |
- "a", make_linked_ptr(new TestManifestHandler("A", prereqs, &watcher))); |
- ManifestHandler::Register( |
- "b", make_linked_ptr(new TestManifestHandler("B", prereqs, &watcher))); |
- ManifestHandler::Register( |
- "j", make_linked_ptr(new TestManifestHandler("J", prereqs, &watcher))); |
- ManifestHandler::Register( |
- "k", make_linked_ptr( |
- new AlwaysParseTestManifestHandler("K", prereqs, &watcher))); |
+ (new TestManifestHandler("A", SingleKey("a"), prereqs, &watcher))->Register(); |
+ (new TestManifestHandler("B", SingleKey("b"), prereqs, &watcher))->Register(); |
+ (new TestManifestHandler("J", SingleKey("j"), prereqs, &watcher))->Register(); |
+ (new AlwaysParseTestManifestHandler("K", SingleKey("k"), prereqs, &watcher))-> |
+ Register(); |
prereqs.push_back("c.d"); |
- linked_ptr<TestManifestHandler> handler_c2( |
- new TestManifestHandler("C.EZ", prereqs, &watcher)); |
- ManifestHandler::Register("c.e", handler_c2); |
- ManifestHandler::Register("c.z", handler_c2); |
+ std::vector<std::string> keys; |
+ keys.push_back("c.e"); |
+ keys.push_back("c.z"); |
+ (new TestManifestHandler("C.EZ", keys, prereqs, &watcher))->Register(); |
prereqs.clear(); |
prereqs.push_back("b"); |
prereqs.push_back("k"); |
- ManifestHandler::Register( |
- "c.d", make_linked_ptr(new TestManifestHandler( |
- "C.D", prereqs, &watcher))); |
+ (new TestManifestHandler("C.D", SingleKey("c.d"), prereqs, &watcher))-> |
+ Register(); |
scoped_refptr<Extension> extension = ExtensionBuilder() |
.SetManifest(DictionaryBuilder() |
@@ -173,9 +185,8 @@ TEST_F(ManifestHandlerTest, FailingHandlers) { |
// Register a handler for "a" that fails. |
ParsingWatcher watcher; |
- ManifestHandler::Register( |
- "a", make_linked_ptr(new FailingTestManifestHandler( |
- "A", std::vector<std::string>(), &watcher))); |
+ (new FailingTestManifestHandler( |
+ "A", SingleKey("a"), std::vector<std::string>(), &watcher))->Register(); |
extension = Extension::Create( |
base::FilePath(), |