summaryrefslogtreecommitdiffstats
path: root/tests/auto/qscriptengine
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-12-04 18:36:19 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-12-04 18:36:19 (GMT)
commitf0bb9bc5b0f4c20536d6c77624bd148389b78c06 (patch)
tree9088a173de4bfbeea29bc9464d4cb46257df67cd /tests/auto/qscriptengine
parent60be72310c0f9469b3201b250b257473184ccf2a (diff)
parent1bb5999cdca0a70df3f96d596c83c3cf7c97c5fd (diff)
downloadQt-f0bb9bc5b0f4c20536d6c77624bd148389b78c06.zip
Qt-f0bb9bc5b0f4c20536d6c77624bd148389b78c06.tar.gz
Qt-f0bb9bc5b0f4c20536d6c77624bd148389b78c06.tar.bz2
Merge commit 'origin/4.6' into 4.6
Diffstat (limited to 'tests/auto/qscriptengine')
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 3bc2443..2d629b7 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -154,6 +154,7 @@ private slots:
void functionScopes();
void nativeFunctionScopes();
void evaluateProgram();
+ void collectGarbageAfterConnect();
void qRegExpInport_data();
void qRegExpInport();
@@ -4443,6 +4444,23 @@ void tst_QScriptEngine::evaluateProgram()
}
}
+void tst_QScriptEngine::collectGarbageAfterConnect()
+{
+ // QTBUG-6366
+ QScriptEngine engine;
+ QPointer<QWidget> widget = new QWidget;
+ engine.globalObject().setProperty(
+ "widget", engine.newQObject(widget, QScriptEngine::ScriptOwnership));
+ QVERIFY(engine.evaluate("widget.customContextMenuRequested.connect(\n"
+ " function() { print('hello'); }\n"
+ ");")
+ .isUndefined());
+ QVERIFY(widget != 0);
+ engine.evaluate("widget = null;");
+ collectGarbage_helper(engine);
+ QVERIFY(widget == 0);
+}
+
static QRegExp minimal(QRegExp r) { r.setMinimal(true); return r; }
void tst_QScriptEngine::qRegExpInport_data()