| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <string> | 5 #include <string> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 76 |
| 77 class TestManifestHandler : public ManifestHandler { | 77 class TestManifestHandler : public ManifestHandler { |
| 78 public: | 78 public: |
| 79 TestManifestHandler(const std::string& name, | 79 TestManifestHandler(const std::string& name, |
| 80 const std::vector<std::string>& keys, | 80 const std::vector<std::string>& keys, |
| 81 const std::vector<std::string>& prereqs, | 81 const std::vector<std::string>& prereqs, |
| 82 ParsingWatcher* watcher) | 82 ParsingWatcher* watcher) |
| 83 : name_(name), keys_(keys), prereqs_(prereqs), watcher_(watcher) { | 83 : name_(name), keys_(keys), prereqs_(prereqs), watcher_(watcher) { |
| 84 } | 84 } |
| 85 | 85 |
| 86 virtual bool Parse(Extension* extension, base::string16* error) override { | 86 bool Parse(Extension* extension, base::string16* error) override { |
| 87 watcher_->Record(name_); | 87 watcher_->Record(name_); |
| 88 return true; | 88 return true; |
| 89 } | 89 } |
| 90 | 90 |
| 91 virtual const std::vector<std::string> PrerequisiteKeys() const override { | 91 const std::vector<std::string> PrerequisiteKeys() const override { |
| 92 return prereqs_; | 92 return prereqs_; |
| 93 } | 93 } |
| 94 | 94 |
| 95 protected: | 95 protected: |
| 96 std::string name_; | 96 std::string name_; |
| 97 std::vector<std::string> keys_; | 97 std::vector<std::string> keys_; |
| 98 std::vector<std::string> prereqs_; | 98 std::vector<std::string> prereqs_; |
| 99 ParsingWatcher* watcher_; | 99 ParsingWatcher* watcher_; |
| 100 | 100 |
| 101 virtual const std::vector<std::string> Keys() const override { | 101 const std::vector<std::string> Keys() const override { return keys_; } |
| 102 return keys_; | |
| 103 } | |
| 104 }; | 102 }; |
| 105 | 103 |
| 106 class FailingTestManifestHandler : public TestManifestHandler { | 104 class FailingTestManifestHandler : public TestManifestHandler { |
| 107 public: | 105 public: |
| 108 FailingTestManifestHandler(const std::string& name, | 106 FailingTestManifestHandler(const std::string& name, |
| 109 const std::vector<std::string>& keys, | 107 const std::vector<std::string>& keys, |
| 110 const std::vector<std::string>& prereqs, | 108 const std::vector<std::string>& prereqs, |
| 111 ParsingWatcher* watcher) | 109 ParsingWatcher* watcher) |
| 112 : TestManifestHandler(name, keys, prereqs, watcher) { | 110 : TestManifestHandler(name, keys, prereqs, watcher) { |
| 113 } | 111 } |
| 114 virtual bool Parse(Extension* extension, base::string16* error) override { | 112 bool Parse(Extension* extension, base::string16* error) override { |
| 115 *error = base::ASCIIToUTF16(name_); | 113 *error = base::ASCIIToUTF16(name_); |
| 116 return false; | 114 return false; |
| 117 } | 115 } |
| 118 }; | 116 }; |
| 119 | 117 |
| 120 class AlwaysParseTestManifestHandler : public TestManifestHandler { | 118 class AlwaysParseTestManifestHandler : public TestManifestHandler { |
| 121 public: | 119 public: |
| 122 AlwaysParseTestManifestHandler(const std::string& name, | 120 AlwaysParseTestManifestHandler(const std::string& name, |
| 123 const std::vector<std::string>& keys, | 121 const std::vector<std::string>& keys, |
| 124 const std::vector<std::string>& prereqs, | 122 const std::vector<std::string>& prereqs, |
| 125 ParsingWatcher* watcher) | 123 ParsingWatcher* watcher) |
| 126 : TestManifestHandler(name, keys, prereqs, watcher) { | 124 : TestManifestHandler(name, keys, prereqs, watcher) { |
| 127 } | 125 } |
| 128 | 126 |
| 129 virtual bool AlwaysParseForType(Manifest::Type type) const override { | 127 bool AlwaysParseForType(Manifest::Type type) const override { return true; } |
| 130 return true; | |
| 131 } | |
| 132 }; | 128 }; |
| 133 | 129 |
| 134 class TestManifestValidator : public ManifestHandler { | 130 class TestManifestValidator : public ManifestHandler { |
| 135 public: | 131 public: |
| 136 TestManifestValidator(bool return_value, | 132 TestManifestValidator(bool return_value, |
| 137 bool always_validate, | 133 bool always_validate, |
| 138 std::vector<std::string> keys) | 134 std::vector<std::string> keys) |
| 139 : return_value_(return_value), | 135 : return_value_(return_value), |
| 140 always_validate_(always_validate), | 136 always_validate_(always_validate), |
| 141 keys_(keys) { | 137 keys_(keys) { |
| 142 } | 138 } |
| 143 | 139 |
| 144 virtual bool Parse(Extension* extension, base::string16* error) override { | 140 bool Parse(Extension* extension, base::string16* error) override { |
| 145 return true; | 141 return true; |
| 146 } | 142 } |
| 147 | 143 |
| 148 virtual bool Validate( | 144 bool Validate(const Extension* extension, |
| 149 const Extension* extension, | 145 std::string* error, |
| 150 std::string* error, | 146 std::vector<InstallWarning>* warnings) const override { |
| 151 std::vector<InstallWarning>* warnings) const override { | |
| 152 return return_value_; | 147 return return_value_; |
| 153 } | 148 } |
| 154 | 149 |
| 155 virtual bool AlwaysValidateForType(Manifest::Type type) const override { | 150 bool AlwaysValidateForType(Manifest::Type type) const override { |
| 156 return always_validate_; | 151 return always_validate_; |
| 157 } | 152 } |
| 158 | 153 |
| 159 private: | 154 private: |
| 160 virtual const std::vector<std::string> Keys() const override { | 155 const std::vector<std::string> Keys() const override { return keys_; } |
| 161 return keys_; | |
| 162 } | |
| 163 | 156 |
| 164 protected: | 157 protected: |
| 165 bool return_value_; | 158 bool return_value_; |
| 166 bool always_validate_; | 159 bool always_validate_; |
| 167 std::vector<std::string> keys_; | 160 std::vector<std::string> keys_; |
| 168 }; | 161 }; |
| 169 }; | 162 }; |
| 170 | 163 |
| 171 TEST_F(ManifestHandlerTest, DependentHandlers) { | 164 TEST_F(ManifestHandlerTest, DependentHandlers) { |
| 172 ScopedTestingManifestHandlerRegistry registry; | 165 ScopedTestingManifestHandlerRegistry registry; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 EXPECT_TRUE( | 265 EXPECT_TRUE( |
| 273 ManifestHandler::ValidateExtension(extension.get(), &error, &warnings)); | 266 ManifestHandler::ValidateExtension(extension.get(), &error, &warnings)); |
| 274 | 267 |
| 275 // Validates "a" and fails. | 268 // Validates "a" and fails. |
| 276 (new TestManifestValidator(false, true, SingleKey("a")))->Register(); | 269 (new TestManifestValidator(false, true, SingleKey("a")))->Register(); |
| 277 EXPECT_FALSE( | 270 EXPECT_FALSE( |
| 278 ManifestHandler::ValidateExtension(extension.get(), &error, &warnings)); | 271 ManifestHandler::ValidateExtension(extension.get(), &error, &warnings)); |
| 279 } | 272 } |
| 280 | 273 |
| 281 } // namespace extensions | 274 } // namespace extensions |
| OLD | NEW |