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) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" 65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/common/manifest_handlers/web_accessible_resources_info.h" 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::Extension; 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using extensions::WebAccessibleResourcesInfo; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass WebAccessibleResourcesManifestTest : public ChromeManifestTest { 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResources) { 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Manifest version 2 with web accessible resources specified. 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension1( 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_1.json")); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Manifest version 2 with no web accessible resources. 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension2( 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_2.json")); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with web accessible resources specified. 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension3( 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_3.json")); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with no web accessible resources. 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension4( 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_4.json")); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with wildcard web accessible resource. 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension5( 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_5.json")); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Default manifest version with wildcard with specific path and extension. 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<Extension> extension6( 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) LoadAndExpectSuccess("web_accessible_resources_6.json")); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE( 41868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension1.get())); 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE( 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension2.get())); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE( 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension3.get())); 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE( 47868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension4.get())); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE( 49868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension5.get())); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE( 51868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) WebAccessibleResourcesInfo::HasWebAccessibleResources(extension6.get())); 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 54868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension1.get(), "test")); 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 56868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension1.get(), "none")); 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 59868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension2.get(), "test")); 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension3.get(), "test")); 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 64868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension3.get(), "none")); 652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 67868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension4.get(), "test")); 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 69868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension4.get(), "none")); 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 72868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension5.get(), "anything")); 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 74868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension5.get(), "path/anything")); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_TRUE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension6.get(), "path/anything.ext")); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 79868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension6.get(), "anything.ext")); 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) EXPECT_FALSE(WebAccessibleResourcesInfo::IsResourceWebAccessible( 81868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) extension6.get(), "path/anything.badext")); 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 83