summaryrefslogtreecommitdiff
path: root/tests/auto
diff options
context:
space:
mode:
authorSemih Yavuz <semih.yavuz@qt.io>2023-05-04 14:43:25 +0200
committerSemih Yavuz <semih.yavuz@qt.io>2023-05-05 19:56:42 +0200
commitfeca8417f610f8f64193292379eb9e0b9423936f (patch)
treebcbcd7c61bde4e88db6b931365135410a9df3251 /tests/auto
parentd32ccc5f1b7ccb5e2ffe1fcf25417a3131126e1d (diff)
downloadqtdeclarative-feca8417f610f8f64193292379eb9e0b9423936f.tar.gz
qmldom: Add more literals
Dom construction fails before this commit if it encounters one of null expression, true and false literals. Add dom representation for them. Change-Id: I2dbb2ebfce83b32426eb5e159fe9e4f0f68c56c3 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qmldom/domdata/domitem/variableDeclarations.qml4
-rw-r--r--tests/auto/qmldom/domitem/tst_qmldomitem.h33
2 files changed, 35 insertions, 2 deletions
diff --git a/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml b/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml
index 7c5ecd7d4f..330ae35c11 100644
--- a/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml
+++ b/tests/auto/qmldom/domdata/domitem/variableDeclarations.qml
@@ -10,6 +10,10 @@ Item {
const a = 3;
const b = "patron";
var aa = helloWorld, bb = aa;
+
+ const bool1 = true;
+ let bool2 = false;
+ var nullVar = null;
return sum;
}
}
diff --git a/tests/auto/qmldom/domitem/tst_qmldomitem.h b/tests/auto/qmldom/domitem/tst_qmldomitem.h
index 2d9b6782f0..09f103d7fb 100644
--- a/tests/auto/qmldom/domitem/tst_qmldomitem.h
+++ b/tests/auto/qmldom/domitem/tst_qmldomitem.h
@@ -956,9 +956,11 @@ private slots:
QVERIFY(blockSemanticScope.value()->JSIdentifier(u"b"_s));
QVERIFY(blockSemanticScope.value()->JSIdentifier(u"aa"_s));
QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bb"_s));
-
+ QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bool1"_s));
+ QVERIFY(blockSemanticScope.value()->JSIdentifier(u"bool2"_s));
+ QVERIFY(blockSemanticScope.value()->JSIdentifier(u"nullVar"_s));
DomItem statements = block.field(Fields::statements);
- QCOMPARE(statements.indexes(), 5);
+ QCOMPARE(statements.indexes(), 8);
{
// let sum = 0, helloWorld = "hello"
@@ -1024,6 +1026,33 @@ private slots:
QCOMPARE(bb.field(Fields::initializer).field(Fields::identifier).value().toString(),
"aa");
}
+ {
+ // const bool1 = true
+ DomItem bool1 = statements.index(4).field(Fields::declarations).index(0);
+ QCOMPARE(bool1.field(Fields::scopeType).value().toInteger(),
+ ScriptElements::VariableDeclarationEntry::ScopeType::Const);
+ QCOMPARE(bool1.field(Fields::identifier).value().toString(), "bool1");
+ QCOMPARE(bool1.field(Fields::initializer).internalKind(), DomType::ScriptLiteral);
+ QVERIFY(bool1.field(Fields::initializer).field(Fields::value).value().isTrue());
+ }
+ {
+ // let bool2 = false
+ DomItem bool2 = statements.index(5).field(Fields::declarations).index(0);
+ QCOMPARE(bool2.field(Fields::scopeType).value().toInteger(),
+ ScriptElements::VariableDeclarationEntry::ScopeType::Let);
+ QCOMPARE(bool2.field(Fields::identifier).value().toString(), "bool2");
+ QCOMPARE(bool2.field(Fields::initializer).internalKind(), DomType::ScriptLiteral);
+ QVERIFY(bool2.field(Fields::initializer).field(Fields::value).value().isFalse());
+ }
+ {
+ // var nullVar = null
+ DomItem nullVar = statements.index(6).field(Fields::declarations).index(0);
+ QCOMPARE(nullVar.field(Fields::scopeType).value().toInteger(),
+ ScriptElements::VariableDeclarationEntry::ScopeType::Var);
+ QCOMPARE(nullVar.field(Fields::identifier).value().toString(), "nullVar");
+ QCOMPARE(nullVar.field(Fields::initializer).internalKind(), DomType::ScriptLiteral);
+ QVERIFY(nullVar.field(Fields::initializer).field(Fields::value).value().isNull());
+ }
}
void ifStatements()