Home | History | Annotate | Download | only in manifest_tests
      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