diff options
Diffstat (limited to 'chromium/chrome/common/extensions/manifest_tests/extension_manifests_webview_accessible_resources_unittest.cc')
-rw-r--r-- | chromium/chrome/common/extensions/manifest_tests/extension_manifests_webview_accessible_resources_unittest.cc | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/chromium/chrome/common/extensions/manifest_tests/extension_manifests_webview_accessible_resources_unittest.cc b/chromium/chrome/common/extensions/manifest_tests/extension_manifests_webview_accessible_resources_unittest.cc new file mode 100644 index 00000000000..8d1826812e2 --- /dev/null +++ b/chromium/chrome/common/extensions/manifest_tests/extension_manifests_webview_accessible_resources_unittest.cc @@ -0,0 +1,85 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/strings/string_number_conversions.h" +#include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" +#include "extensions/common/error_utils.h" +#include "extensions/common/manifest_constants.h" +#include "extensions/common/manifest_handlers/webview_info.h" + +using extensions::ErrorUtils; +using extensions::Extension; +using extensions::WebviewInfo; +namespace errors = extensions::manifest_errors; + +class WebviewAccessibleResourcesManifestTest : public ChromeManifestTest { +}; + +TEST_F(WebviewAccessibleResourcesManifestTest, WebviewAccessibleResources) { + // Manifest version 2 with webview accessible resources specified. + scoped_refptr<Extension> extension( + LoadAndExpectSuccess("webview_accessible_resources_1.json")); + + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "fail", "a.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "fail", "b.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "fail", "c.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "fail", "d.html")); + + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foo", "a.html")); + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foo", "b.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foo", "c.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foo", "d.html")); + + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "bar", "a.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "bar", "b.html")); + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "bar", "c.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "bar", "d.html")); + + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foobar", "a.html")); + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foobar", "b.html")); + EXPECT_TRUE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foobar", "c.html")); + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(extension.get(), + "foobar", "d.html")); + + EXPECT_FALSE(WebviewInfo::IsResourceWebviewAccessible(nullptr, + "foobar", "a.html")); +} + +TEST_F(WebviewAccessibleResourcesManifestTest, InvalidManifest) { + LoadAndExpectError("webview_accessible_resources_invalid1.json", + errors::kInvalidWebview); + LoadAndExpectError("webview_accessible_resources_invalid2.json", + errors::kInvalidWebviewPartitionsList); + LoadAndExpectError("webview_accessible_resources_invalid3.json", + errors::kInvalidWebviewPartitionsList); + LoadAndExpectError( + "webview_accessible_resources_invalid4.json", + ErrorUtils::FormatErrorMessage(errors::kInvalidWebviewPartition, + base::NumberToString(0))); + LoadAndExpectError("webview_accessible_resources_invalid5.json", + errors::kInvalidWebviewPartitionName); + LoadAndExpectError("webview_accessible_resources_invalid6.json", + errors::kInvalidWebviewAccessibleResourcesList); + LoadAndExpectError("webview_accessible_resources_invalid7.json", + errors::kInvalidWebviewAccessibleResourcesList); + LoadAndExpectError( + "webview_accessible_resources_invalid8.json", + ErrorUtils::FormatErrorMessage(errors::kInvalidWebviewAccessibleResource, + base::NumberToString(0))); +} |