1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h"
6#include "chrome/common/extensions/manifest_url_handler.h"
7#include "extensions/common/manifest_constants.h"
8#include "testing/gtest/include/gtest/gtest.h"
9
10namespace errors = extensions::manifest_errors;
11
12class URLOverridesManifestTest : public ChromeManifestTest {
13};
14
15TEST_F(URLOverridesManifestTest, Override) {
16  Testcase testcases[] = {
17    Testcase("override_newtab_and_history.json", errors::kMultipleOverrides),
18    Testcase("override_invalid_page.json", errors::kInvalidChromeURLOverrides)
19  };
20  RunTestcases(testcases, arraysize(testcases),
21               EXPECT_TYPE_ERROR);
22
23  scoped_refptr<extensions::Extension> extension;
24
25  extension = LoadAndExpectSuccess("override_new_tab.json");
26  EXPECT_EQ(extension->url().spec() + "newtab.html",
27            extensions::URLOverrides::GetChromeURLOverrides(extension.get())
28                .find("newtab")->second.spec());
29
30  extension = LoadAndExpectSuccess("override_history.json");
31  EXPECT_EQ(extension->url().spec() + "history.html",
32            extensions::URLOverrides::GetChromeURLOverrides(extension.get())
33                .find("history")->second.spec());
34}
35