summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp')
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp96
1 files changed, 89 insertions, 7 deletions
diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index 37e074b..8609a7e 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -128,6 +128,8 @@ private slots:
void defaultPropertyListOrder();
void declaredPropertyValues();
void dontDoubleCallClassBegin();
+ void reservedWords_data();
+ void reservedWords();
void basicRemote_data();
void basicRemote();
@@ -1222,6 +1224,80 @@ void tst_qdeclarativelanguage::dontDoubleCallClassBegin()
delete o;
}
+void tst_qdeclarativelanguage::reservedWords_data()
+{
+ QTest::addColumn<QByteArray>("word");
+
+ QTest::newRow("abstract") << QByteArray("abstract");
+ QTest::newRow("as") << QByteArray("as");
+ QTest::newRow("boolean") << QByteArray("boolean");
+ QTest::newRow("break") << QByteArray("break");
+ QTest::newRow("byte") << QByteArray("byte");
+ QTest::newRow("case") << QByteArray("case");
+ QTest::newRow("catch") << QByteArray("catch");
+ QTest::newRow("char") << QByteArray("char");
+ QTest::newRow("class") << QByteArray("class");
+ QTest::newRow("continue") << QByteArray("continue");
+ QTest::newRow("const") << QByteArray("const");
+ QTest::newRow("debugger") << QByteArray("debugger");
+ QTest::newRow("default") << QByteArray("default");
+ QTest::newRow("delete") << QByteArray("delete");
+ QTest::newRow("do") << QByteArray("do");
+ QTest::newRow("double") << QByteArray("double");
+ QTest::newRow("else") << QByteArray("else");
+ QTest::newRow("enum") << QByteArray("enum");
+ QTest::newRow("export") << QByteArray("export");
+ QTest::newRow("extends") << QByteArray("extends");
+ QTest::newRow("false") << QByteArray("false");
+ QTest::newRow("final") << QByteArray("final");
+ QTest::newRow("finally") << QByteArray("finally");
+ QTest::newRow("float") << QByteArray("float");
+ QTest::newRow("for") << QByteArray("for");
+ QTest::newRow("function") << QByteArray("function");
+ QTest::newRow("goto") << QByteArray("goto");
+ QTest::newRow("if") << QByteArray("if");
+ QTest::newRow("implements") << QByteArray("implements");
+ QTest::newRow("import") << QByteArray("import");
+ QTest::newRow("in") << QByteArray("in");
+ QTest::newRow("instanceof") << QByteArray("instanceof");
+ QTest::newRow("int") << QByteArray("int");
+ QTest::newRow("interface") << QByteArray("interface");
+ QTest::newRow("long") << QByteArray("long");
+ QTest::newRow("native") << QByteArray("native");
+ QTest::newRow("new") << QByteArray("new");
+ QTest::newRow("null") << QByteArray("null");
+ QTest::newRow("package") << QByteArray("package");
+ QTest::newRow("private") << QByteArray("private");
+ QTest::newRow("protected") << QByteArray("protected");
+ QTest::newRow("public") << QByteArray("public");
+ QTest::newRow("return") << QByteArray("return");
+ QTest::newRow("short") << QByteArray("short");
+ QTest::newRow("static") << QByteArray("static");
+ QTest::newRow("super") << QByteArray("super");
+ QTest::newRow("switch") << QByteArray("switch");
+ QTest::newRow("synchronized") << QByteArray("synchronized");
+ QTest::newRow("this") << QByteArray("this");
+ QTest::newRow("throw") << QByteArray("throw");
+ QTest::newRow("throws") << QByteArray("throws");
+ QTest::newRow("transient") << QByteArray("transient");
+ QTest::newRow("true") << QByteArray("true");
+ QTest::newRow("try") << QByteArray("try");
+ QTest::newRow("typeof") << QByteArray("typeof");
+ QTest::newRow("var") << QByteArray("var");
+ QTest::newRow("void") << QByteArray("void");
+ QTest::newRow("volatile") << QByteArray("volatile");
+ QTest::newRow("while") << QByteArray("while");
+ QTest::newRow("with") << QByteArray("with");
+}
+
+void tst_qdeclarativelanguage::reservedWords()
+{
+ QFETCH(QByteArray, word);
+ QDeclarativeComponent component(&engine);
+ component.setData("import QtQuick 1.0\nQtObject { property string " + word + " }", QUrl());
+ QCOMPARE(component.errorString(), QLatin1String(":2 Expected token `identifier'\n"));
+}
+
// Check that first child of qml is of given type. Empty type insists on error.
void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type, const QString& expectederror)
{
@@ -1385,12 +1461,12 @@ void tst_qdeclarativelanguage::importsLocal_data()
<< "QDeclarativeRectangle"
<< "";
QTest::newRow("local import second")
- << "import Qt 4.7\nimport \"subdir\"\n"
+ << "import QtQuick 1.0\nimport \"subdir\"\n"
"Test {}"
<< "QDeclarativeRectangle"
<< "";
QTest::newRow("local import subsubdir")
- << "import Qt 4.7\nimport \"subdir/subsubdir\"\n"
+ << "import QtQuick 1.0\nimport \"subdir/subsubdir\"\n"
"SubTest {}"
<< "QDeclarativeRectangle"
<< "";
@@ -1604,24 +1680,24 @@ void tst_qdeclarativelanguage::importsOrder_data()
QTest::newRow("installed import versus builtin 1") <<
"import com.nokia.installedtest 1.5\n"
- "import Qt 4.7\n"
+ "import QtQuick 1.0\n"
"Rectangle {}"
<< (!qmlCheckTypes()?"QDeclarativeRectangle":"")
<< (!qmlCheckTypes()?"":"Rectangle is ambiguous. Found in Qt and in lib/com/nokia/installedtest");
QTest::newRow("installed import versus builtin 2") <<
- "import Qt 4.7\n"
+ "import QtQuick 1.0\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle {}"
<< (!qmlCheckTypes()?"QDeclarativeText":"")
<< (!qmlCheckTypes()?"":"Rectangle is ambiguous. Found in lib/com/nokia/installedtest and in Qt");
QTest::newRow("namespaces cannot be overridden by types 1") <<
- "import Qt 4.7 as Rectangle\n"
+ "import QtQuick 1.0 as Rectangle\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle {}"
<< ""
<< "Namespace Rectangle cannot be used as a type";
QTest::newRow("namespaces cannot be overridden by types 2") <<
- "import Qt 4.7 as Rectangle\n"
+ "import QtQuick 1.0 as Rectangle\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle.Image {}"
<< "QDeclarativeImage"
@@ -1676,7 +1752,7 @@ void tst_qdeclarativelanguage::qmlAttachedPropertiesObjectMethod()
void tst_qdeclarativelanguage::crash1()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.7\nComponent {}", QUrl());
+ component.setData("import QtQuick 1.0\nComponent {}", QUrl());
}
void tst_qdeclarativelanguage::crash2()
@@ -1716,6 +1792,9 @@ void tst_qdeclarativelanguage::initTestCase()
{
registerTypes();
+ // Registering the TestType class in other modules should have no adverse effects
+ qmlRegisterType<TestType>("com.nokia.TestPre", 1, 0, "Test");
+
qmlRegisterType<TestType>("com.nokia.Test", 0, 0, "TestTP");
qmlRegisterType<TestType>("com.nokia.Test", 1, 0, "Test");
qmlRegisterType<TestType>("com.nokia.Test", 1, 5, "Test");
@@ -1723,6 +1802,9 @@ void tst_qdeclarativelanguage::initTestCase()
qmlRegisterType<TestType>("com.nokia.Test", 1, 9, "OldTest");
qmlRegisterType<TestType2>("com.nokia.Test", 1, 12, "Test");
+ // Registering the TestType class in other modules should have no adverse effects
+ qmlRegisterType<TestType>("com.nokia.TestPost", 1, 0, "Test");
+
// Create locale-specific file
// For POSIX, this will just be data/I18nType.qml, since POSIX is 7-bit
// For iso8859-1 locale, this will just be data/I18nType?????.qml where ????? is 5 8-bit characters