15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/extensions/manifest_url_handler.h"
7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "extensions/common/manifest_constants.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)namespace errors = extensions::manifest_errors;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class URLOverridesManifestTest : public ExtensionManifestTest {
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_F(URLOverridesManifestTest, Override) {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Testcase testcases[] = {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Testcase("override_newtab_and_history.json", errors::kMultipleOverrides),
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Testcase("override_invalid_page.json", errors::kInvalidChromeURLOverrides)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunTestcases(testcases, arraysize(testcases),
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)               EXPECT_TYPE_ERROR);
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  scoped_refptr<extensions::Extension> extension;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  extension = LoadAndExpectSuccess("override_new_tab.json");
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(extension->url().spec() + "newtab.html",
27868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)            extensions::URLOverrides::GetChromeURLOverrides(extension.get())
28868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)                .find("newtab")->second.spec());
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  extension = LoadAndExpectSuccess("override_history.json");
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  EXPECT_EQ(extension->url().spec() + "history.html",
32868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)            extensions::URLOverrides::GetChromeURLOverrides(extension.get())
33868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)                .find("history")->second.spec());
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
35