1// Copyright 2014 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 AboutPageManifestTest : public ChromeManifestTest {}; 13 14TEST_F(AboutPageManifestTest, AboutPageInSharedModules) { 15 scoped_refptr<extensions::Extension> extension; 16 extension = LoadAndExpectSuccess("shared_module_about.json"); 17 EXPECT_EQ(GURL("chrome-extension://" + extension->id() + "/about.html"), 18 extensions::ManifestURL::GetAboutPage(extension.get())); 19 20 Testcase testcases[] = { 21 // Forbid data types other than strings. 22 Testcase("shared_module_about_invalid_type.json", 23 errors::kInvalidAboutPage), 24 25 // Forbid absolute URLs. 26 Testcase("shared_module_about_absolute.json", 27 errors::kInvalidAboutPageExpectRelativePath)}; 28 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR); 29} 30