aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2012-06-13 13:40:21 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-22 08:18:15 +0200
commit188b4e0202c4e4d5950d440721bdd6ef7c4ecbe3 (patch)
tree256caa9c46f3f6862d07bd7be998c80ffdfc4442 /tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
parent55faad4873a9409bb1b33a10da7329d13a95aff9 (diff)
Add some tests for literal parsing
Change-Id: I3f3047cf27b1e5d230db0ed4154bac09e6adf087 Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp')
-rw-r--r--tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
index d5abef3f3f..6349cd343f 100644
--- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
+++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
@@ -185,6 +185,8 @@ private slots:
void crash2();
void globalEnums();
+ void literals_data();
+ void literals();
private:
QQmlEngine engine;
@@ -2787,6 +2789,48 @@ void tst_qqmllanguage::globalEnums()
delete o;
}
+void tst_qqmllanguage::literals_data()
+{
+ QTest::addColumn<QString>("property");
+ QTest::addColumn<QVariant>("value");
+
+ QTest::newRow("hex") << "n1" << QVariant(0xfe32);
+ // Octal integer literals are deprecated
+// QTest::newRow("octal") << "n2" << QVariant(015);
+ QTest::newRow("fp1") << "n3" << QVariant(-4.2E11);
+ QTest::newRow("fp2") << "n4" << QVariant(.1e9);
+ QTest::newRow("fp3") << "n5" << QVariant(3e-12);
+ QTest::newRow("fp4") << "n6" << QVariant(3e+12);
+ QTest::newRow("fp5") << "n7" << QVariant(0.1e9);
+
+ QTest::newRow("special1") << "c1" << QVariant(QString("\b"));
+ QTest::newRow("special2") << "c2" << QVariant(QString("\f"));
+ QTest::newRow("special3") << "c3" << QVariant(QString("\n"));
+ QTest::newRow("special4") << "c4" << QVariant(QString("\r"));
+ QTest::newRow("special5") << "c5" << QVariant(QString("\t"));
+ QTest::newRow("special6") << "c6" << QVariant(QString("\v"));
+ QTest::newRow("special7") << "c7" << QVariant(QString("\'"));
+ QTest::newRow("special8") << "c8" << QVariant(QString("\""));
+ QTest::newRow("special9") << "c9" << QVariant(QString("\\"));
+ // We don't handle octal escape sequences
+// QTest::newRow("special10") << "c10" << QVariant(QString("\251"));
+ QTest::newRow("special11") << "c11" << QVariant(QString::fromLatin1("\xa9"));
+ QTest::newRow("special12") << "c12" << QVariant(QString::fromUtf8("\u00A9"));
+}
+
+void tst_qqmllanguage::literals()
+{
+ QFETCH(QString, property);
+ QFETCH(QVariant, value);
+
+ QQmlComponent component(&engine, TEST_FILE("literals.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+ QCOMPARE(object->property(property.toLatin1()), value);
+ delete object;
+}
+
QTEST_MAIN(tst_qqmllanguage)
#include "tst_qqmllanguage.moc"