OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "base/version.h" | 5 #include "base/version.h" |
6 #include "chrome/common/extensions/extension.h" | 6 #include "chrome/common/extensions/extension.h" |
7 #include "chrome/common/extensions/manifest_handlers/shared_module_info.h" | 7 #include "chrome/common/extensions/manifest_handlers/shared_module_info.h" |
8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 namespace extensions { | 24 namespace extensions { |
25 | 25 |
26 class SharedModuleManifestTest : public ExtensionManifestTest { | 26 class SharedModuleManifestTest : public ExtensionManifestTest { |
27 }; | 27 }; |
28 | 28 |
29 TEST_F(SharedModuleManifestTest, ExportsAll) { | 29 TEST_F(SharedModuleManifestTest, ExportsAll) { |
30 Manifest manifest("shared_module_export.json"); | 30 Manifest manifest("shared_module_export.json"); |
31 | 31 |
32 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); | 32 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); |
33 | 33 |
34 EXPECT_TRUE(SharedModuleInfo::IsSharedModule(extension)) << manifest.name(); | 34 EXPECT_TRUE(SharedModuleInfo::IsSharedModule(extension.get())) |
35 EXPECT_FALSE(SharedModuleInfo::ImportsModules(extension)) << manifest.name(); | |
36 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension, "foo")) | |
37 << manifest.name(); | 35 << manifest.name(); |
38 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension, "foo/bar")) | 36 EXPECT_FALSE(SharedModuleInfo::ImportsModules(extension.get())) |
| 37 << manifest.name(); |
| 38 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension.get(), "foo")) |
| 39 << manifest.name(); |
| 40 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension.get(), "foo/bar")) |
39 << manifest.name(); | 41 << manifest.name(); |
40 } | 42 } |
41 | 43 |
42 TEST_F(SharedModuleManifestTest, ExportFoo) { | 44 TEST_F(SharedModuleManifestTest, ExportFoo) { |
43 Manifest manifest("shared_module_export_foo.json"); | 45 Manifest manifest("shared_module_export_foo.json"); |
44 | 46 |
45 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); | 47 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); |
46 | 48 |
47 EXPECT_TRUE(SharedModuleInfo::IsSharedModule(extension)) << manifest.name(); | 49 EXPECT_TRUE(SharedModuleInfo::IsSharedModule(extension.get())) |
48 EXPECT_FALSE(SharedModuleInfo::ImportsModules(extension)) << manifest.name(); | |
49 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension, "foo")) | |
50 << manifest.name(); | 50 << manifest.name(); |
51 EXPECT_FALSE(SharedModuleInfo::IsExportAllowed(extension, "foo/bar")) | 51 EXPECT_FALSE(SharedModuleInfo::ImportsModules(extension.get())) |
| 52 << manifest.name(); |
| 53 EXPECT_TRUE(SharedModuleInfo::IsExportAllowed(extension.get(), "foo")) |
| 54 << manifest.name(); |
| 55 EXPECT_FALSE(SharedModuleInfo::IsExportAllowed(extension.get(), "foo/bar")) |
52 << manifest.name(); | 56 << manifest.name(); |
53 } | 57 } |
54 | 58 |
55 TEST_F(SharedModuleManifestTest, ExportParseErrors) { | 59 TEST_F(SharedModuleManifestTest, ExportParseErrors) { |
56 Testcase testcases[] = { | 60 Testcase testcases[] = { |
57 Testcase("shared_module_export_and_import.json", | 61 Testcase("shared_module_export_and_import.json", |
58 "Simultaneous 'import' and 'export' are not allowed."), | 62 "Simultaneous 'import' and 'export' are not allowed."), |
59 Testcase("shared_module_export_not_dict.json", | 63 Testcase("shared_module_export_not_dict.json", |
60 "Invalid value for 'export'."), | 64 "Invalid value for 'export'."), |
61 Testcase("shared_module_export_resources_not_list.json", | 65 Testcase("shared_module_export_resources_not_list.json", |
(...skipping 13 matching lines...) Expand all Loading... |
75 SharedModuleInfo::ParseImportedPath(kValidImportPath, &id, &relative); | 79 SharedModuleInfo::ParseImportedPath(kValidImportPath, &id, &relative); |
76 EXPECT_EQ(id, kValidImportPathID); | 80 EXPECT_EQ(id, kValidImportPathID); |
77 EXPECT_EQ(relative, kValidImportPathRelative); | 81 EXPECT_EQ(relative, kValidImportPathRelative); |
78 } | 82 } |
79 | 83 |
80 TEST_F(SharedModuleManifestTest, Import) { | 84 TEST_F(SharedModuleManifestTest, Import) { |
81 Manifest manifest("shared_module_import.json"); | 85 Manifest manifest("shared_module_import.json"); |
82 | 86 |
83 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); | 87 scoped_refptr<Extension> extension = LoadAndExpectSuccess(manifest); |
84 | 88 |
85 EXPECT_FALSE(SharedModuleInfo::IsSharedModule(extension)) << manifest.name(); | 89 EXPECT_FALSE(SharedModuleInfo::IsSharedModule(extension.get())) |
86 EXPECT_TRUE(SharedModuleInfo::ImportsModules(extension)) << manifest.name(); | 90 << manifest.name(); |
| 91 EXPECT_TRUE(SharedModuleInfo::ImportsModules(extension.get())) |
| 92 << manifest.name(); |
87 const std::vector<SharedModuleInfo::ImportInfo>& imports = | 93 const std::vector<SharedModuleInfo::ImportInfo>& imports = |
88 SharedModuleInfo::GetImports(extension); | 94 SharedModuleInfo::GetImports(extension.get()); |
89 ASSERT_EQ(2U, imports.size()); | 95 ASSERT_EQ(2U, imports.size()); |
90 EXPECT_EQ(imports[0].extension_id, kImportId1); | 96 EXPECT_EQ(imports[0].extension_id, kImportId1); |
91 EXPECT_EQ(imports[0].minimum_version, ""); | 97 EXPECT_EQ(imports[0].minimum_version, ""); |
92 EXPECT_EQ(imports[1].extension_id, kImportId2); | 98 EXPECT_EQ(imports[1].extension_id, kImportId2); |
93 EXPECT_TRUE(base::Version(imports[1].minimum_version).IsValid()); | 99 EXPECT_TRUE(base::Version(imports[1].minimum_version).IsValid()); |
94 EXPECT_TRUE(SharedModuleInfo::ImportsExtensionById(extension, kImportId1)); | 100 EXPECT_TRUE( |
95 EXPECT_TRUE(SharedModuleInfo::ImportsExtensionById(extension, kImportId2)); | 101 SharedModuleInfo::ImportsExtensionById(extension.get(), kImportId1)); |
96 EXPECT_FALSE(SharedModuleInfo::ImportsExtensionById(extension, kNoImport)); | 102 EXPECT_TRUE( |
| 103 SharedModuleInfo::ImportsExtensionById(extension.get(), kImportId2)); |
| 104 EXPECT_FALSE( |
| 105 SharedModuleInfo::ImportsExtensionById(extension.get(), kNoImport)); |
97 } | 106 } |
98 | 107 |
99 TEST_F(SharedModuleManifestTest, ImportParseErrors) { | 108 TEST_F(SharedModuleManifestTest, ImportParseErrors) { |
100 Testcase testcases[] = { | 109 Testcase testcases[] = { |
101 Testcase("shared_module_import_not_list.json", | 110 Testcase("shared_module_import_not_list.json", |
102 "Invalid value for 'import'."), | 111 "Invalid value for 'import'."), |
103 Testcase("shared_module_import_invalid_id.json", | 112 Testcase("shared_module_import_invalid_id.json", |
104 "Invalid value for 'import[0].id'."), | 113 "Invalid value for 'import[0].id'."), |
105 Testcase("shared_module_import_invalid_version.json", | 114 Testcase("shared_module_import_invalid_version.json", |
106 "Invalid value for 'import[0].minimum_version'."), | 115 "Invalid value for 'import[0].minimum_version'."), |
107 }; | 116 }; |
108 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR); | 117 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR); |
109 } | 118 } |
110 | 119 |
111 } // namespace extensions | 120 } // namespace extensions |
OLD | NEW |