Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: chrome/common/extensions/manifest_tests/extension_manifests_requirements_unittest.cc

Issue 10689097: Enforce the 'requirements' field in manifests. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fixed UnpackedInstller issue Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h"
6
7 #include "chrome/common/extensions/extension_error_utils.h"
8 #include "chrome/common/extensions/extension_manifest_constants.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace errors = extension_manifest_errors;
12
13 TEST_F(ExtensionManifestTest, RequirementsInvalid) {
14 Testcase testcases[] = {
15 Testcase("requirements_invalid_requirements.json",
16 errors::kInvalidRequirements),
17 Testcase("requirements_invalid_keys.json", errors::kInvalidRequirements),
18 Testcase("requirements_invalid_3d.json",
19 ExtensionErrorUtils::FormatErrorMessage(
20 errors::kInvalidRequirement, "3D")),
21 Testcase("requirements_invalid_3d_features.json",
22 ExtensionErrorUtils::FormatErrorMessage(
23 errors::kInvalidRequirement, "3D")),
24 Testcase("requirements_invalid_3d_features_value.json",
25 ExtensionErrorUtils::FormatErrorMessage(
26 errors::kInvalidRequirement, "3D")),
27 Testcase("requirements_invalid_3d_no_features.json",
28 ExtensionErrorUtils::FormatErrorMessage(
29 errors::kInvalidRequirement, "3D")),
30 Testcase("requirements_invalid_plugins.json",
31 ExtensionErrorUtils::FormatErrorMessage(
32 errors::kInvalidRequirement, "plugins")),
33 Testcase("requirements_invalid_plugins_key.json",
34 ExtensionErrorUtils::FormatErrorMessage(
35 errors::kInvalidRequirement, "plugins")),
36 Testcase("requirements_invalid_plugins_value.json",
37 ExtensionErrorUtils::FormatErrorMessage(
38 errors::kInvalidRequirement, "plugins"))
39 };
40
41 RunTestcases(testcases, arraysize(testcases), EXPECT_TYPE_ERROR);
42 }
43
44 TEST_F(ExtensionManifestTest, RequirementsValid) {
45 // Test the defaults.
46 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess(
47 "requirements_valid_empty.json"));
48 ASSERT_TRUE(extension.get());
49 EXPECT_EQ(extension->requirements().webgl, false);
50 EXPECT_EQ(extension->requirements().css3d, false);
51 EXPECT_EQ(extension->requirements().npapi, false);
52
53 // Test loading all the requirements.
54 extension = LoadAndExpectSuccess("requirements_valid_full.json");
55 ASSERT_TRUE(extension.get());
56 EXPECT_EQ(extension->requirements().webgl, true);
57 EXPECT_EQ(extension->requirements().css3d, true);
58 EXPECT_EQ(extension->requirements().npapi, true);
59 }
60
61 // When an npapi plugin is present, the default of the "npapi" requirement
62 // changes.
63 TEST_F(ExtensionManifestTest, RequirementsNpapiDefault) {
64 scoped_refptr<extensions::Extension> extension(LoadAndExpectSuccess(
65 "requirements_npapi_empty.json"));
66 ASSERT_TRUE(extension.get());
67 EXPECT_EQ(extension->requirements().webgl, false);
68 EXPECT_EQ(extension->requirements().css3d, false);
69 #if defined(OS_CHROMEOS)
70 EXPECT_EQ(extension->requirements().npapi, false);
71 #else
72 EXPECT_EQ(extension->requirements().npapi, true);
73 #endif // defined(OS_CHROMEOS)
74
75 extension = LoadAndExpectSuccess("requirements_npapi.json");
76 ASSERT_TRUE(extension.get());
77 EXPECT_EQ(extension->requirements().webgl, false);
78 EXPECT_EQ(extension->requirements().css3d, false);
79 EXPECT_EQ(extension->requirements().npapi, false);
80 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698