| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/extensions/csp_handler.h" | 5 #include "chrome/common/extensions/csp_handler.h" |
| 6 #include "chrome/common/extensions/extension_manifest_constants.h" | 6 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 7 #include "chrome/common/extensions/manifest_handler.h" | 7 #include "chrome/common/extensions/manifest_handler.h" |
| 8 #include "chrome/common/extensions/manifest_handlers/sandboxed_page_info.h" |
| 8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 9 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 11 |
| 11 using extensions::Extension; | |
| 12 | |
| 13 namespace errors = extension_manifest_errors; | 12 namespace errors = extension_manifest_errors; |
| 14 | 13 |
| 14 namespace extensions { |
| 15 |
| 15 class SandboxedPagesManifestTest : public ExtensionManifestTest { | 16 class SandboxedPagesManifestTest : public ExtensionManifestTest { |
| 17 protected: |
| 16 virtual void SetUp() OVERRIDE { | 18 virtual void SetUp() OVERRIDE { |
| 17 ExtensionManifestTest::SetUp(); | 19 ExtensionManifestTest::SetUp(); |
| 18 (new extensions::CSPHandler(false))->Register(); // Not platform app. | 20 (new SandboxedPageHandler)->Register(); |
| 21 (new CSPHandler(false))->Register(); // Not platform app. |
| 19 } | 22 } |
| 20 }; | 23 }; |
| 21 | 24 |
| 22 TEST_F(SandboxedPagesManifestTest, SandboxedPages) { | 25 TEST_F(SandboxedPagesManifestTest, SandboxedPages) { |
| 23 // Sandboxed pages specified, no custom CSP value. | 26 // Sandboxed pages specified, no custom CSP value. |
| 24 scoped_refptr<Extension> extension1( | 27 scoped_refptr<Extension> extension1( |
| 25 LoadAndExpectSuccess("sandboxed_pages_valid_1.json")); | 28 LoadAndExpectSuccess("sandboxed_pages_valid_1.json")); |
| 26 | 29 |
| 27 // No sandboxed pages. | 30 // No sandboxed pages. |
| 28 scoped_refptr<Extension> extension2( | 31 scoped_refptr<Extension> extension2( |
| (...skipping 11 matching lines...) Expand all Loading... |
| 40 scoped_refptr<Extension> extension5( | 43 scoped_refptr<Extension> extension5( |
| 41 LoadAndExpectSuccess("sandboxed_pages_valid_5.json")); | 44 LoadAndExpectSuccess("sandboxed_pages_valid_5.json")); |
| 42 | 45 |
| 43 const char kSandboxedCSP[] = "sandbox allow-scripts allow-forms allow-popups"; | 46 const char kSandboxedCSP[] = "sandbox allow-scripts allow-forms allow-popups"; |
| 44 const char kDefaultCSP[] = | 47 const char kDefaultCSP[] = |
| 45 "script-src 'self' chrome-extension-resource:; object-src 'self'"; | 48 "script-src 'self' chrome-extension-resource:; object-src 'self'"; |
| 46 const char kCustomSandboxedCSP[] = | 49 const char kCustomSandboxedCSP[] = |
| 47 "sandbox; script-src: https://www.google.com"; | 50 "sandbox; script-src: https://www.google.com"; |
| 48 | 51 |
| 49 EXPECT_EQ(kSandboxedCSP, | 52 EXPECT_EQ(kSandboxedCSP, |
| 50 extension1->GetResourceContentSecurityPolicy("/test")); | 53 CSPInfo::GetResourceContentSecurityPolicy(extension1, "/test")); |
| 51 EXPECT_EQ(kDefaultCSP, extension1->GetResourceContentSecurityPolicy("/none")); | 54 EXPECT_EQ(kDefaultCSP, |
| 52 EXPECT_EQ(kDefaultCSP, extension2->GetResourceContentSecurityPolicy("/test")); | 55 CSPInfo::GetResourceContentSecurityPolicy(extension1, "/none")); |
| 56 EXPECT_EQ(kDefaultCSP, |
| 57 CSPInfo::GetResourceContentSecurityPolicy(extension2, "/test")); |
| 53 EXPECT_EQ(kCustomSandboxedCSP, | 58 EXPECT_EQ(kCustomSandboxedCSP, |
| 54 extension3->GetResourceContentSecurityPolicy("/test")); | 59 CSPInfo::GetResourceContentSecurityPolicy(extension3, "/test")); |
| 55 EXPECT_EQ(kDefaultCSP, extension3->GetResourceContentSecurityPolicy("/none")); | 60 EXPECT_EQ(kDefaultCSP, |
| 61 CSPInfo::GetResourceContentSecurityPolicy(extension3, "/none")); |
| 56 EXPECT_EQ(kSandboxedCSP, | 62 EXPECT_EQ(kSandboxedCSP, |
| 57 extension4->GetResourceContentSecurityPolicy("/test")); | 63 CSPInfo::GetResourceContentSecurityPolicy(extension4, "/test")); |
| 58 EXPECT_EQ(kSandboxedCSP, | 64 EXPECT_EQ( |
| 59 extension5->GetResourceContentSecurityPolicy("/path/test.ext")); | 65 kSandboxedCSP, |
| 66 CSPInfo::GetResourceContentSecurityPolicy(extension5, "/path/test.ext")); |
| 60 EXPECT_EQ(kDefaultCSP, | 67 EXPECT_EQ(kDefaultCSP, |
| 61 extension5->GetResourceContentSecurityPolicy("/test")); | 68 CSPInfo::GetResourceContentSecurityPolicy(extension5, "/test")); |
| 62 | 69 |
| 63 Testcase testcases[] = { | 70 Testcase testcases[] = { |
| 64 Testcase("sandboxed_pages_invalid_1.json", | 71 Testcase("sandboxed_pages_invalid_1.json", |
| 65 errors::kInvalidSandboxedPagesList), | 72 errors::kInvalidSandboxedPagesList), |
| 66 Testcase("sandboxed_pages_invalid_2.json", | 73 Testcase("sandboxed_pages_invalid_2.json", |
| 67 errors::kInvalidSandboxedPage), | 74 errors::kInvalidSandboxedPage), |
| 68 Testcase("sandboxed_pages_invalid_3.json", | 75 Testcase("sandboxed_pages_invalid_3.json", |
| 69 errors::kInvalidSandboxedPagesCSP), | 76 errors::kInvalidSandboxedPagesCSP), |
| 70 Testcase("sandboxed_pages_invalid_4.json", | 77 Testcase("sandboxed_pages_invalid_4.json", |
| 71 errors::kInvalidSandboxedPagesCSP), | 78 errors::kInvalidSandboxedPagesCSP), |
| 72 Testcase("sandboxed_pages_invalid_5.json", | 79 Testcase("sandboxed_pages_invalid_5.json", |
| 73 errors::kInvalidSandboxedPagesCSP) | 80 errors::kInvalidSandboxedPagesCSP) |
| 74 }; | 81 }; |
| 75 RunTestcases(testcases, arraysize(testcases), | 82 RunTestcases(testcases, arraysize(testcases), |
| 76 EXPECT_TYPE_ERROR); | 83 EXPECT_TYPE_ERROR); |
| 77 } | 84 } |
| 85 |
| 86 } // namespace extensions |
| OLD | NEW |