summaryrefslogtreecommitdiffstats
path: root/tests/auto/installer/scriptengine/tst_scriptengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/installer/scriptengine/tst_scriptengine.cpp')
-rw-r--r--tests/auto/installer/scriptengine/tst_scriptengine.cpp52
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;
};