blob: 458d6782520714c96c736603ed7d9467469f1c27 [file] [log] [blame]
// 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