extension_manifests_web_accessible_resources_unittest.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
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
10using extensions::Extension;
11using extensions::WebAccessibleResourcesInfo;
12
13class WebAccessibleResourcesManifestTest : public ExtensionManifestTest {
14  virtual void SetUp() OVERRIDE {
15    ExtensionManifestTest::SetUp();
16    (new extensions::WebAccessibleResourcesHandler)->Register();
17  }
18};
19
20TEST_F(WebAccessibleResourcesManifestTest, WebAccessibleResources) {
21  // Manifest version 2 with web accessible resources specified.
22  scoped_refptr<Extension> extension1(
23      LoadAndExpectSuccess("web_accessible_resources_1.json"));
24
25  // Manifest version 2 with no web accessible resources.
26  scoped_refptr<Extension> extension2(
27      LoadAndExpectSuccess("web_accessible_resources_2.json"));
28
29  // Default manifest version with web accessible resources specified.
30  scoped_refptr<Extension> extension3(
31      LoadAndExpectSuccess("web_accessible_resources_3.json"));
32
33  // Default manifest version with no web accessible resources.
34  scoped_refptr<Extension> extension4(
35      LoadAndExpectSuccess("web_accessible_resources_4.json"));
36
37  // 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