diff options
Diffstat (limited to 'tests/auto/installer/scriptengine/tst_scriptengine.cpp')
-rw-r--r-- | tests/auto/installer/scriptengine/tst_scriptengine.cpp | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/tests/auto/installer/scriptengine/tst_scriptengine.cpp b/tests/auto/installer/scriptengine/tst_scriptengine.cpp index c6332ff7e..283d7bdad 100644 --- a/tests/auto/installer/scriptengine/tst_scriptengine.cpp +++ b/tests/auto/installer/scriptengine/tst_scriptengine.cpp @@ -11,8 +11,6 @@ using namespace QInstaller; -// -- InstallerGui - class TestGui : public QInstaller::PackageManagerGui { Q_OBJECT @@ -34,6 +32,18 @@ public: } }; +class EmitSignalObject : public QObject +{ + Q_OBJECT + +public: + EmitSignalObject() {} + ~EmitSignalObject() {} + void produceSignal() { emit emitted(); } +signals: + void emitted(); +}; + class tst_ScriptEngine : public QObject { @@ -54,6 +64,42 @@ private slots: m_scriptEngine = m_core.scriptEngine(); } + void testBrokenJSMethodConnect() + { + EmitSignalObject emiter; + m_scriptEngine->globalObject().setProperty(QLatin1String("emiter"), + m_scriptEngine->newQObject(&emiter)); + + QScriptValue context = m_scriptEngine->loadInConext(QLatin1String("BrokenConnect"), + ":///data/broken_connect.qs"); + + QVERIFY(context.isValid()); + + if (m_scriptEngine->hasUncaughtException()) { + QFAIL(qPrintable(QString::fromLatin1("ScriptEngine hasUncaughtException:\n %1").arg( + uncaughtExceptionString(m_scriptEngine)))); + } + + const QString debugMesssage( + "create Error-Exception: \"Fatal error while evaluating a script.\n\n" + "ReferenceError: Can't find variable: foo\n\n" + "Backtrace:\n" +#if QT_VERSION < 0x050000 + "\t<anonymous>()@:///data/broken_connect.qs:10\" "); +#else + "\treceive() at :///data/broken_connect.qs:10\n" + "\t<global>() at -1\" "); +#endif + try { + // ignore Output from script + setExpectedScriptOutput("function receive()"); + setExpectedScriptOutput(qPrintable(debugMesssage)); + emiter.produceSignal(); + } catch (const Error &error) { + QVERIFY2(debugMesssage.contains(error.message()), "There was some unexpected error."); + } + } + void testScriptPrint() { setExpectedScriptOutput("test"); @@ -199,7 +245,7 @@ private: PackageManagerCore m_core; Component *m_component; - QScriptEngine *m_scriptEngine; + ScriptEngine *m_scriptEngine; }; |