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/api/plugins/plugins_handler.h" |
| 6 #include "chrome/common/extensions/extension_manifest_constants.h" |
| 7 #include "chrome/common/extensions/manifest_handlers/requirements_handler.h" |
5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 8 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
6 | |
7 #include "chrome/common/extensions/extension_manifest_constants.h" | |
8 #include "extensions/common/error_utils.h" | 9 #include "extensions/common/error_utils.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
10 | 11 |
11 namespace errors = extension_manifest_errors; | 12 namespace errors = extension_manifest_errors; |
12 | 13 |
13 using extensions::ErrorUtils; | 14 namespace extensions { |
14 | 15 |
15 TEST_F(ExtensionManifestTest, RequirementsInvalid) { | 16 class RequirementsManifestTest : public ExtensionManifestTest { |
| 17 protected: |
| 18 virtual void SetUp() OVERRIDE { |
| 19 ExtensionManifestTest::SetUp(); |
| 20 (new PluginsHandler)->Register(); |
| 21 (new RequirementsHandler)->Register(); |
| 22 } |
| 23 }; |
| 24 |
| 25 TEST_F(RequirementsManifestTest, RequirementsInvalid) { |
16 Testcase testcases[] = { | 26 Testcase testcases[] = { |
17 Testcase("requirements_invalid_requirements.json", | 27 Testcase("requirements_invalid_requirements.json", |
18 errors::kInvalidRequirements), | 28 errors::kInvalidRequirements), |
19 Testcase("requirements_invalid_keys.json", errors::kInvalidRequirements), | 29 Testcase("requirements_invalid_keys.json", errors::kInvalidRequirements), |
20 Testcase("requirements_invalid_3d.json", | 30 Testcase("requirements_invalid_3d.json", |
21 ErrorUtils::FormatErrorMessage( | 31 ErrorUtils::FormatErrorMessage( |
22 errors::kInvalidRequirement, "3D")), | 32 errors::kInvalidRequirement, "3D")), |
23 Testcase("requirements_invalid_3d_features.json", | 33 Testcase("requirements_invalid_3d_features.json", |
24 ErrorUtils::FormatErrorMessage( | 34 ErrorUtils::FormatErrorMessage( |
25 errors::kInvalidRequirement, "3D")), | 35 errors::kInvalidRequirement, "3D")), |
(...skipping 10 matching lines...) Expand all Loading... |
36 ErrorUtils::FormatErrorMessage( | 46 ErrorUtils::FormatErrorMessage( |
37 errors::kInvalidRequirement, "plugins")), | 47 errors::kInvalidRequirement, "plugins")), |
38 Testcase("requirements_invalid_plugins_value.json", | 48 Testcase("requirements_invalid_plugins_value.json", |
39 ErrorUtils::FormatErrorMessage( | 49 ErrorUtils::FormatErrorMessage( |
40 errors::kInvalidRequirement, "plugins")) | 50 errors::kInvalidRequirement, "plugins")) |
41 }; | 51 }; |
42 | 52 |
43 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR); | 53 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR); |
44 } | 54 } |
45 | 55 |
46 TEST_F(ExtensionManifestTest, RequirementsValid) { | 56 TEST_F(RequirementsManifestTest, RequirementsValid) { |
47 // Test the defaults. | 57 // Test the defaults. |
48 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess( | 58 scoped_refptr<Extension> extension(LoadAndExpectSuccess( |
49 "requirements_valid_empty.json")); | 59 "requirements_valid_empty.json")); |
50 ASSERT_TRUE(extension.get()); | 60 ASSERT_TRUE(extension.get()); |
51 EXPECT_EQ(extension->requirements().webgl, false); | 61 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, false); |
52 EXPECT_EQ(extension->requirements().css3d, false); | 62 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, false); |
53 EXPECT_EQ(extension->requirements().npapi, false); | 63 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, false); |
54 | 64 |
55 // Test loading all the requirements. | 65 // Test loading all the requirements. |
56 extension = LoadAndExpectSuccess("requirements_valid_full.json"); | 66 extension = LoadAndExpectSuccess("requirements_valid_full.json"); |
57 ASSERT_TRUE(extension.get()); | 67 ASSERT_TRUE(extension.get()); |
58 EXPECT_EQ(extension->requirements().webgl, true); | 68 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, true); |
59 EXPECT_EQ(extension->requirements().css3d, true); | 69 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, true); |
60 EXPECT_EQ(extension->requirements().npapi, true); | 70 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, true); |
61 } | 71 } |
62 | 72 |
63 // When an npapi plugin is present, the default of the "npapi" requirement | 73 // When an npapi plugin is present, the default of the "npapi" requirement |
64 // changes. | 74 // changes. |
65 TEST_F(ExtensionManifestTest, RequirementsNpapiDefault) { | 75 TEST_F(RequirementsManifestTest, RequirementsNpapiDefault) { |
66 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess( | 76 scoped_refptr<Extension> extension(LoadAndExpectSuccess( |
67 "requirements_npapi_empty.json")); | 77 "requirements_npapi_empty.json")); |
68 ASSERT_TRUE(extension.get()); | 78 ASSERT_TRUE(extension.get()); |
69 EXPECT_EQ(extension->requirements().webgl, false); | 79 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, false); |
70 EXPECT_EQ(extension->requirements().css3d, false); | 80 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, false); |
71 EXPECT_EQ(extension->requirements().npapi, true); | 81 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, true); |
72 | 82 |
73 extension = LoadAndExpectSuccess( | 83 extension = LoadAndExpectSuccess( |
74 "requirements_npapi_empty_plugins_empty.json"); | 84 "requirements_npapi_empty_plugins_empty.json"); |
75 ASSERT_TRUE(extension.get()); | 85 ASSERT_TRUE(extension.get()); |
76 EXPECT_EQ(extension->requirements().webgl, false); | 86 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, false); |
77 EXPECT_EQ(extension->requirements().css3d, false); | 87 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, false); |
78 EXPECT_EQ(extension->requirements().npapi, false); | 88 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, false); |
79 | 89 |
80 extension = LoadAndExpectSuccess("requirements_npapi.json"); | 90 extension = LoadAndExpectSuccess("requirements_npapi.json"); |
81 ASSERT_TRUE(extension.get()); | 91 ASSERT_TRUE(extension.get()); |
82 EXPECT_EQ(extension->requirements().webgl, false); | 92 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, false); |
83 EXPECT_EQ(extension->requirements().css3d, false); | 93 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, false); |
84 EXPECT_EQ(extension->requirements().npapi, false); | 94 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, false); |
85 | 95 |
86 extension = LoadAndExpectSuccess("requirements_npapi_plugins_empty.json"); | 96 extension = LoadAndExpectSuccess("requirements_npapi_plugins_empty.json"); |
87 ASSERT_TRUE(extension.get()); | 97 ASSERT_TRUE(extension.get()); |
88 EXPECT_EQ(extension->requirements().webgl, false); | 98 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).webgl, false); |
89 EXPECT_EQ(extension->requirements().css3d, false); | 99 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).css3d, false); |
90 EXPECT_EQ(extension->requirements().npapi, true); | 100 EXPECT_EQ(RequirementsInfo::GetRequirements(extension).npapi, true); |
91 } | 101 } |
| 102 |
| 103 } // namespace extensions |
OLD | NEW |