summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-07-07 13:49:20 +0200
committerKent Hansen <khansen@trolltech.com>2009-07-07 13:49:52 +0200
commitda1dee6894f96b416bb123578cc6e61c6444ddd8 (patch)
tree2b9699d0839bcdc28741aec975e96aef34b7167a
parent5c756b368f5a76eeeff9e8e762a89368ba0b8149 (diff)
improve the QScriptEngine::importExtension() autotest
Error messages and __postInit__.
-rw-r--r--tests/auto/qscriptengine/script/com/__init__.js4
-rw-r--r--tests/auto/qscriptengine/script/com/trolltech/__init__.js4
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp7
3 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/qscriptengine/script/com/__init__.js b/tests/auto/qscriptengine/script/com/__init__.js
index 381816a135..7db3ee4cac 100644
--- a/tests/auto/qscriptengine/script/com/__init__.js
+++ b/tests/auto/qscriptengine/script/com/__init__.js
@@ -3,3 +3,7 @@ __setupPackage__("com");
com.wasDefinedAlready = wasDefinedAlready;
com.name = __extension__;
com.level = 1;
+
+com.postInitCallCount = 0;
+com.originalPostInit = __postInit__;
+__postInit__ = function() { ++com.postInitCallCount; };
diff --git a/tests/auto/qscriptengine/script/com/trolltech/__init__.js b/tests/auto/qscriptengine/script/com/trolltech/__init__.js
index f12b17d9f0..a55b1328ba 100644
--- a/tests/auto/qscriptengine/script/com/trolltech/__init__.js
+++ b/tests/auto/qscriptengine/script/com/trolltech/__init__.js
@@ -3,3 +3,7 @@ __setupPackage__("com.trolltech");
com.trolltech.wasDefinedAlready = wasDefinedAlready;
com.trolltech.name = __extension__;
com.trolltech.level = com.level + 1;
+
+com.trolltech.postInitCallCount = 0;
+com.trolltech.originalPostInit = __postInit__;
+__postInit__ = function() { ++com.trolltech.postInitCallCount; };
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index c17454d027..57c516798f 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -1583,6 +1583,7 @@ void tst_QScriptEngine::importExtension()
QScriptValue ret = eng.importExtension("this.extension.does.not.exist");
QCOMPARE(eng.hasUncaughtException(), true);
QCOMPARE(ret.isError(), true);
+ QCOMPARE(ret.toString(), QString::fromLatin1("Error: Unable to import this.extension.does.not.exist: no such extension"));
}
{
@@ -1601,6 +1602,8 @@ void tst_QScriptEngine::importExtension()
.strictlyEquals(QScriptValue(&eng, "com")), true);
QCOMPARE(com.property("level")
.strictlyEquals(QScriptValue(&eng, 1)), true);
+ QVERIFY(com.property("originalPostInit").isUndefined());
+ QVERIFY(com.property("postInitCallCount").strictlyEquals(1));
QScriptValue trolltech = com.property("trolltech");
QCOMPARE(trolltech.isObject(), true);
@@ -1610,6 +1613,8 @@ void tst_QScriptEngine::importExtension()
.strictlyEquals(QScriptValue(&eng, "com.trolltech")), true);
QCOMPARE(trolltech.property("level")
.strictlyEquals(QScriptValue(&eng, 2)), true);
+ QVERIFY(trolltech.property("originalPostInit").isUndefined());
+ QVERIFY(trolltech.property("postInitCallCount").strictlyEquals(1));
}
QStringList imp = eng.importedExtensions();
QCOMPARE(imp.size(), 2);
@@ -1625,6 +1630,8 @@ void tst_QScriptEngine::importExtension()
eng.globalObject().setProperty("__import__", eng.newFunction(__import__));
QScriptValue ret = eng.importExtension("com.trolltech.recursive");
QCOMPARE(eng.hasUncaughtException(), true);
+ QVERIFY(ret.isError());
+ QCOMPARE(ret.toString(), QString::fromLatin1("Error: recursive import of com.trolltech.recursive"));
QStringList imp = eng.importedExtensions();
QCOMPARE(imp.size(), 2);
QCOMPARE(imp.at(0), QString::fromLatin1("com"));