diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-05 22:26:33 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-05 22:26:33 +0000 |
commit | 5e53ee340f5d3fc77ea9f66619bde658c524d020 (patch) | |
tree | 6a1968b2605364e30295b29095e226ca05e1ba99 /chrome | |
parent | 3e96bbfa971e55710be27dfc35ab66568ea054cd (diff) | |
download | chromium_src-5e53ee340f5d3fc77ea9f66619bde658c524d020.zip chromium_src-5e53ee340f5d3fc77ea9f66619bde658c524d020.tar.gz chromium_src-5e53ee340f5d3fc77ea9f66619bde658c524d020.tar.bz2 |
Revert "No longer accept 'null' as signifying unset optional object property in extension calls."
This reverts commit 02bd0a11dd8cee6e19c201e30b3984b638b2ddd1.
Review URL: http://codereview.chromium.org/1512019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43666 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/renderer/resources/json_schema.js | 3 | ||||
-rw-r--r-- | chrome/test/data/extensions/json_schema_test.js | 19 |
2 files changed, 11 insertions, 11 deletions
diff --git a/chrome/renderer/resources/json_schema.js b/chrome/renderer/resources/json_schema.js index d119724..6d0ef53 100644 --- a/chrome/renderer/resources/json_schema.js +++ b/chrome/renderer/resources/json_schema.js @@ -267,7 +267,8 @@ chromeHidden.JSONSchemaValidator.prototype.validateObject = function( var propPath = path ? path + "." + prop : prop; if (schema.properties[prop] == undefined) { this.addError(propPath, "invalidPropertyType"); - } else if (prop in instance && instance[prop] !== undefined) { + } else if (prop in instance && instance[prop] !== null && + instance[prop] !== undefined) { this.validate(instance[prop], schema.properties[prop], propPath); } else if (!schema.properties[prop].optional) { this.addError(propPath, "propertyRequired"); diff --git a/chrome/test/data/extensions/json_schema_test.js b/chrome/test/data/extensions/json_schema_test.js index 8f18d35..3f55c08 100644 --- a/chrome/test/data/extensions/json_schema_test.js +++ b/chrome/test/data/extensions/json_schema_test.js @@ -189,8 +189,8 @@ function testObject() { } }; - assertValid("Object", {foo:"foo", bar:42}, schema); - assertNotValid("Object", {foo:"foo", bar:42,"extra":true}, schema, + assertValid("Object", {foo:"foo",bar:42}, schema); + assertNotValid("Object", {foo:"foo",bar:42,"extra":true}, schema, [formatError("unexpectedProperty")]); assertNotValid("Object", {foo:"foo"}, schema, [formatError("propertyRequired")]); @@ -198,20 +198,19 @@ function testObject() { [formatError("invalidType", ["integer", "string"])]); schema.additionalProperties = { type: "any" }; - assertValid("Object", {foo:"foo", bar:42, "extra":true}, schema); - assertValid("Object", {foo:"foo", bar:42, "extra":"foo"}, schema); + assertValid("Object", {foo:"foo",bar:42,"extra":true}, schema); + assertValid("Object", {foo:"foo",bar:42,"extra":"foo"}, schema); schema.additionalProperties = { type: "boolean" }; - assertValid("Object", {foo:"foo", bar:42, "extra":true}, schema); - assertNotValid("Object", {foo:"foo", bar:42, "extra":"foo"}, schema, + assertValid("Object", {foo:"foo",bar:42,"extra":true}, schema); + assertNotValid("Object", {foo:"foo",bar:42,"extra":"foo"}, schema, [formatError("invalidType", ["boolean", "string"])]); schema.properties.bar.optional = true; - assertValid("Object", {foo:"foo", bar:42}, schema); + assertValid("Object", {foo:"foo",bar:42}, schema); assertValid("Object", {foo:"foo"}, schema); - assertNotValid("Object", {foo:"foo", bar:null}, schema, - [formatError("invalidType", ["integer", "null"])]); - assertValid("Object", {foo:"foo", bar:undefined}, schema); + assertValid("Object", {foo:"foo",bar:null}, schema); + assertValid("Object", {foo:"foo",bar:undefined}, schema); assertNotValid("Object", {foo:"foo", bar:"42"}, schema, [formatError("invalidType", ["integer", "string"])]); |