extension_manifests_web_accessible_resources_unittest.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/extensions/extension_manifest_constants.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/extensions/web_accessible_resources_handler.h" 8bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#include "testing/gtest/include/gtest/gtest.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::Extension; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::WebAccessibleResourcesInfo; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebAccessibleResourcesManifestTest : public ExtensionManifestTest { 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetUp() OVERRIDE { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ExtensionManifestTest::SetUp(); 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (new extensions::WebAccessibleResourcesHandler)->Register(); 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResources) { 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Manifest version 2 with web accessible resources specified. 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension1( 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_1.json")); 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Manifest version 2 with no web accessible resources. 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension2( 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_2.json")); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with web accessible resources specified. 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension3( 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_3.json")); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with no web accessible resources. 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension4( 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_4.json")); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with wildcard web accessible resource. 38 scoped_refptr<Extension> extension5( 39 LoadAndExpectSuccess("web_accessible_resources_5.json")); 40 41 // Default manifest version with wildcard with specific path and extension. 42 scoped_refptr<Extension> extension6( 43 LoadAndExpectSuccess("web_accessible_resources_6.json")); 44 45 EXPECT_TRUE( 46 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension1)); 47 EXPECT_FALSE( 48 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension2)); 49 EXPECT_TRUE( 50 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension3)); 51 EXPECT_FALSE( 52 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension4)); 53 EXPECT_TRUE( 54 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension5)); 55 EXPECT_TRUE( 56 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension6)); 57 58 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 59 extension1, "test")); 60 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 61 extension1, "none")); 62 63 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 64 extension2, "test")); 65 66 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 67 extension3, "test")); 68 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 69 extension3, "none")); 70 71 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 72 extension4, "test")); 73 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 74 extension4, "none")); 75 76 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 77 extension5, "anything")); 78 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 79 extension5, "path/anything")); 80 81 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 82 extension6, "path/anything.ext")); 83 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 84 extension6, "anything.ext")); 85 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 86 extension6, "path/anything.badext")); 87} 88