diff options
author | Alexei Rousskikh <ext-alexei.rousskikh@nokia.com> | 2012-02-07 13:33:41 -0500 |
---|---|---|
committer | Andrew Christian <andrew.christian@nokia.com> | 2012-02-08 12:12:35 +0100 |
commit | f8dc69764d193b75bde667e2eefaa45fc909306d (patch) | |
tree | 62039a0fbb9782a0eb353a261e9b66f281aacee1 /tests | |
parent | 3cf9a8dc9f5b27ec120eee49e528b2967ac4d3c9 (diff) |
schema enumeration methods added; schema's enum attribute implemented
Change-Id: Id720a7a1ae182bf1a28f70cb61bd96288aa04798
Reviewed-by: Andrew Christian <andrew.christian@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/jsonschema/tst_jsonschema.cpp | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/tests/auto/jsonschema/tst_jsonschema.cpp b/tests/auto/jsonschema/tst_jsonschema.cpp index 7eb23cf..16e0704 100644 --- a/tests/auto/jsonschema/tst_jsonschema.cpp +++ b/tests/auto/jsonschema/tst_jsonschema.cpp @@ -69,6 +69,8 @@ private slots: void testPatternValidation(); // 5.17, 5.18 void testMinMaxLengthValidation(); + // 5.19 + void testEnum(); // 5.21 void testTitleValidation(); // 5.22 @@ -87,9 +89,18 @@ void tst_JsonSchema::schemaTest() { bool result; SchemaValidator validator; + + // test SchemaValidator::schemaNames() and SchemaValidator::hasSchema() with empty object + QVERIFY(validator.schemaNames().isEmpty()); + QVERIFY(!validator.hasSchema("SchemaTestObject")); + result = validator.loadFromFolder(QDir::currentPath(), "title"); QVERIFY(result); + // test SchemaValidator::schemaNames() and SchemaValidator::hasSchema() after schema was added + QVERIFY(validator.schemaNames().contains("SchemaTestObject")); + QVERIFY(validator.hasSchema("SchemaTestObject")); + // Create an item that matches the schema QJsonObject item; item.insert("create-test", 22); @@ -106,6 +117,11 @@ void tst_JsonSchema::schemaTest() result = validator.validateSchema("SchemaTestObject", noncompliant); qDebug() << "INVALID validation result: " << result << " message is:" << validator.getLastError().errorString(); QVERIFY(!result && validator.getLastError().errorCode() == SchemaError::FailedSchemaValidation); + + // test SchemaValidator::removesSchema() + validator.removeSchema("SchemaTestObject"); + QVERIFY(validator.schemaNames().isEmpty()); + QVERIFY(!validator.hasSchema("SchemaTestObject")); } void tst_JsonSchema::testTypeValidation() @@ -263,9 +279,15 @@ void tst_JsonSchema::testPatternValidation() { QVERIFY(validate(QJsonValue(QString("")), "{}")); QVERIFY(validate(QJsonValue(QString("")), "{ \"pattern\" : \"^$\" }")); -#ifdef FIX - QVERIFY(validate(QJsonValue(QString("today")), "{ \"pattern\" : \"day\" }")); -#endif + + // number + QVERIFY(validate(QJsonValue(QString("123")), "{ \"pattern\" : \"\\\\d+\" }")); + QVERIFY(!validate(QJsonValue(QString("12t")), "{ \"pattern\" : \"\\\\d+\" }")); + + // string + QVERIFY(validate(QJsonValue(QString("today")), "{ \"pattern\" : \"today\" }")); + QVERIFY(validate(QJsonValue(QString("today")), "{ \"pattern\" : \".oda.\" }")); + QVERIFY(!validate(QJsonValue(QString("today")), "{ \"pattern\" : \"day\" }")); QVERIFY(!validate(QJsonValue(QString("")), "{ \"pattern\" : \"^ $\" }")); QVERIFY(!validate(QJsonValue(QString("today")), "{ \"pattern\" : \"dam\" }")); @@ -285,6 +307,20 @@ void tst_JsonSchema::testMinMaxLengthValidation() QVERIFY(!validate(QJsonValue(QString("1234")), "{ \"minLength\" : 1, \"maxLength\" : 3 }")); } +// 5.19 +void tst_JsonSchema::testEnum() +{ + QVERIFY(validate(QJsonValue(true), "{ \"enum\" : [false, true] }")); + QVERIFY(validate(QJsonValue(2), "{ \"enum\" : [1, 2, 3] }")); + QVERIFY(validate(QJsonValue(QString("a")), "{ \"enum\" : [\"a\"] }")); +//FIX QVERIFY(validate({}, "{ \"properties\" : { \"a\" : { \"enum\" : [\"a\"], \"optional\" : true, \"required\" : false } } }")); + + QVERIFY(!validate(QJsonValue(true), "{ \"enum\" : [\"false\", \"true\"] }")); + QVERIFY(!validate(QJsonValue(4), "{ \"enum\" : [1, 2, 3, \"4\"] }")); + QVERIFY(!validate(QJsonValue(QString()), "{ \"enum\" : [] }")); +//FIX QVERIFY(!validate({}, "{ \"properties\" : { \"a\" : { \"enum\" : [\"a\"], \"optional\" : false, \"required\" : true } } }")); +} + // 5.21 void tst_JsonSchema::testTitleValidation() { |