| 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/api/requirements/requirements_handler.h" |
| 7 #include "chrome/common/extensions/extension_manifest_constants.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 |