| // Copyright 2016 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. |
| |
| #include "base/files/scoped_temp_dir.h" |
| #include "extensions/common/error_utils.h" |
| #include "extensions/common/extension.h" |
| #include "extensions/common/file_util.h" |
| #include "extensions/common/manifest_constants.h" |
| #include "extensions/common/value_builder.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace extensions { |
| |
| TEST(ChromeURLOverridesHandlerTest, TestFileMissing) { |
| DictionaryBuilder manifest; |
| manifest.Set("name", "ntp override"); |
| manifest.Set("version", "0.1"); |
| manifest.Set("manifest_version", 2); |
| manifest.Set("description", "description"); |
| manifest.Set("chrome_url_overrides", |
| DictionaryBuilder().Set("newtab", "newtab.html").Build()); |
| std::unique_ptr<base::DictionaryValue> manifest_value = manifest.Build(); |
| std::string error; |
| std::vector<InstallWarning> warnings; |
| base::ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| scoped_refptr<Extension> extension = |
| Extension::Create(dir.GetPath(), Manifest::INTERNAL, *manifest_value, |
| Extension::NO_FLAGS, std::string(), &error); |
| ASSERT_TRUE(extension); |
| EXPECT_FALSE( |
| file_util::ValidateExtension(extension.get(), &error, &warnings)); |
| EXPECT_EQ(ErrorUtils::FormatErrorMessage(manifest_errors::kFileNotFound, |
| "newtab.html"), |
| error); |
| } |
| |
| } // namespace extensions |