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/extension_manifest_constants.h" 6 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" 7 #include "chrome/common/extensions/web_accessible_resources_handler.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 10 using extensions::Extension; 11 using extensions::WebAccessibleResourcesInfo; 12 13 class WebAccessibleResourcesManifestTest : public ExtensionManifestTest { 14 }; 15 16 TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResources) { 17 // Manifest version 2 with web accessible resources specified. 18 scoped_refptr<Extension> extension1( 19 LoadAndExpectSuccess("web_accessible_resources_1.json")); 20 21 // Manifest version 2 with no web accessible resources. 22 scoped_refptr<Extension> extension2( 23 LoadAndExpectSuccess("web_accessible_resources_2.json")); 24 25 // Default manifest version with web accessible resources specified. 26 scoped_refptr<Extension> extension3( 27 LoadAndExpectSuccess("web_accessible_resources_3.json")); 28 29 // Default manifest version with no web accessible resources. 30 scoped_refptr<Extension> extension4( 31 LoadAndExpectSuccess("web_accessible_resources_4.json")); 32 33 // Default manifest version with wildcard web accessible resource. 34 scoped_refptr<Extension> extension5( 35 LoadAndExpectSuccess("web_accessible_resources_5.json")); 36 37 // Default manifest version with wildcard with specific path and extension. 38 scoped_refptr<Extension> extension6( 39 LoadAndExpectSuccess("web_accessible_resources_6.json")); 40 41 EXPECT_TRUE( 42 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension1.get())); 43 EXPECT_FALSE( 44 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension2.get())); 45 EXPECT_TRUE( 46 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension3.get())); 47 EXPECT_FALSE( 48 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension4.get())); 49 EXPECT_TRUE( 50 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension5.get())); 51 EXPECT_TRUE( 52 WebAccessibleResourcesInfo::HasWebAccessibleResources(extension6.get())); 53 54 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 55 extension1.get(), "test")); 56 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 57 extension1.get(), "none")); 58 59 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 60 extension2.get(), "test")); 61 62 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 63 extension3.get(), "test")); 64 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 65 extension3.get(), "none")); 66 67 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 68 extension4.get(), "test")); 69 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 70 extension4.get(), "none")); 71 72 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 73 extension5.get(), "anything")); 74 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 75 extension5.get(), "path/anything")); 76 77 EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 78 extension6.get(), "path/anything.ext")); 79 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 80 extension6.get(), "anything.ext")); 81 EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 82 extension6.get(), "path/anything.badext")); 83 } 84