diff options
author | Alexei Rousskikh <ext-alexei.rousskikh@nokia.com> | 2012-02-06 09:13:29 -0500 |
---|---|---|
committer | Andrew Christian <andrew.christian@nokia.com> | 2012-02-06 20:06:48 +0100 |
commit | 3cf9a8dc9f5b27ec120eee49e528b2967ac4d3c9 (patch) | |
tree | 75d97a405bef83a13adb31ed7789f6eb879548c8 /tests | |
parent | ee237ed01317b5061a05375fe720dcc6b25ad07b (diff) |
more test cases; fixed validation bugs
Change-Id: If1fd5bb26200a8034178b92e0321c0b9eaf1dca0
Reviewed-by: Andrew Christian <andrew.christian@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/jsonschema/tst_jsonschema.cpp | 75 |
1 files changed, 51 insertions, 24 deletions
diff --git a/tests/auto/jsonschema/tst_jsonschema.cpp b/tests/auto/jsonschema/tst_jsonschema.cpp index a59c280..7eb23cf 100644 --- a/tests/auto/jsonschema/tst_jsonschema.cpp +++ b/tests/auto/jsonschema/tst_jsonschema.cpp @@ -63,16 +63,12 @@ private slots: void testMinimumMaximumValidation(); // 5.11, 5.12 void testExclusiveMinimumExclusiveMaximumValidation(); - // 5.13 - void testMinItemsValidation(); - // 5.14 - void testMaxItemsValidation(); + // 5.13, 5.14 + void testMinMaxItemsValidation(); // 5.16 void testPatternValidation(); - // 5.17 - void testMinLengthValidation(); - // 5.18 - void testMaxLengthValidation(); + // 5.17, 5.18 + void testMinMaxLengthValidation(); // 5.21 void testTitleValidation(); // 5.22 @@ -119,9 +115,9 @@ void tst_JsonSchema::testTypeValidation() QVERIFY(validate(QJsonArray(), "{ \"type\" : \"array\" }")); QVERIFY(validate(QJsonValue(QString("")), "{ \"type\" : \"string\" }")); QVERIFY(validate(QJsonValue(22), "{ \"type\" : \"number\" }")); -// QVERIFY(validate(QJsonValue(22), "{ \"type\" : \"integer\" }")); + QVERIFY(validate(QJsonValue(22), "{ \"type\" : \"integer\" }")); QVERIFY(validate(QJsonValue(false), "{ \"type\" : \"boolean\" }")); - QVERIFY(validate(QJsonValue(), "{ \"type\" : \"null\" }")); +//FIX QVERIFY(validate(QJsonValue(), "{ \"type\" : \"null\" }")); QVERIFY(validate(QJsonValue(true), "{ \"type\" : \"any\" }")); // type vs different schema type @@ -129,7 +125,7 @@ void tst_JsonSchema::testTypeValidation() QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"array\" }")); QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"string\" }")); QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"number\" }")); -// QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"integer\" }")); + QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"integer\" }")); QVERIFY(!validate(QJsonValue(), "{ \"type\" : \"boolean\" }")); QVERIFY(!validate(QJsonValue(false), "{ \"type\" : \"null\" }")); @@ -241,29 +237,52 @@ void tst_JsonSchema::testExclusiveMinimumExclusiveMaximumValidation() QVERIFY(!validate(QJsonValue(11), "{ \"minimum\" : 1, \"maximum\" : 10, \"exclusiveMinimum\" : true, \"exclusiveMaximum\" : true }"));*/ } -// 5.13 -void tst_JsonSchema::testMinItemsValidation() +// 5.13, 5.14 +void tst_JsonSchema::testMinMaxItemsValidation() { -} + QVERIFY(validate(QJsonArray(), "{}")); + QVERIFY(!validate(QJsonArray(), "{ \"minItems\" : 1, \"maxItems\" : 0 }")); + QVERIFY(!validate(QJsonArray(), "{ \"minItems\" : 1, \"maxItems\" : 3 }")); -// 5.14 -void tst_JsonSchema::testMaxItemsValidation() -{ + QJsonArray array; + array.append(1); // [1] + QVERIFY(validate(array, "{ \"minItems\" : 1, \"maxItems\" : 1 }")); + QVERIFY(validate(array, "{ \"minItems\" : 1, \"maxItems\" : 3 }")); + + array.append(2); // [1,2] + QVERIFY(validate(array, "{ \"minItems\" : 1, \"maxItems\" : 3 }")); + array.append(3); // [1, 2, 3] + QVERIFY(validate(array, "{ \"minItems\" : 1, \"maxItems\" : 3 }")); + + array.append(4); // [1, 2, 3, 4] + QVERIFY(!validate(array, "{ \"minItems\" : 1, \"maxItems\" : 3 }")); } // 5.16 void tst_JsonSchema::testPatternValidation() { + QVERIFY(validate(QJsonValue(QString("")), "{}")); + QVERIFY(validate(QJsonValue(QString("")), "{ \"pattern\" : \"^$\" }")); +#ifdef FIX + QVERIFY(validate(QJsonValue(QString("today")), "{ \"pattern\" : \"day\" }")); +#endif + + QVERIFY(!validate(QJsonValue(QString("")), "{ \"pattern\" : \"^ $\" }")); + QVERIFY(!validate(QJsonValue(QString("today")), "{ \"pattern\" : \"dam\" }")); + QVERIFY(!validate(QJsonValue(QString("aaaaa")), "{ \"pattern\" : \"aa(a\" }")); } -// 5.17 -void tst_JsonSchema::testMinLengthValidation() -{ -} - -// 5.18 -void tst_JsonSchema::testMaxLengthValidation() +// 5.17, 5.18 +void tst_JsonSchema::testMinMaxLengthValidation() { + QVERIFY(validate(QJsonValue(QString("1")), "{ \"minLength\" : 1, \"maxLength\" : 1 }")); + QVERIFY(validate(QJsonValue(QString("1")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); + QVERIFY(validate(QJsonValue(QString("12")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); + QVERIFY(validate(QJsonValue(QString("123")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); + + QVERIFY(!validate(QJsonValue(QString("")), "{ \"minLength\" : 1, \"maxLength\" : 0 }")); + QVERIFY(!validate(QJsonValue(QString("")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); + QVERIFY(!validate(QJsonValue(QString("1234")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); } // 5.21 @@ -279,6 +298,14 @@ void tst_JsonSchema::testDescriptionValidation() // 5.26 void tst_JsonSchema::testExtendsValidation() { + QVERIFY(validate("{}"," { \"extends\" : {} }")); + QVERIFY(validate("{}"," { \"extends\" : { \"type\" : \"object\" } }")); + QVERIFY(validate(QJsonValue(1), "{ \"type\" : \"integer\", \"extends\" : { \"type\" : \"number\" } }")); +/*FIX*/ QVERIFY(validate("{ \"a\" : 1, \"b\" : 2 }"," { \"properties\" : { \"a\" : { \"type\" : \"number\" } }, \"additionalProperties\" : false, \"extends\" : { \"properties\" : { \"b\" : { \"type\" : \"number\" } } } }")); + + QVERIFY(!validate(1, "{ \"type\" : \"number\", \"extends\" : { \"type\" : \"string\" } }")); + + //TODO: More tests } // 5.28 |