summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-11-07 10:58:04 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-11-07 12:24:54 +0100
commit46c51861822c4ee8f0e7d7f5ecc23d1595cf5c1d (patch)
tree463a71dd1c9a98be5a901f2d32d8cecac678112c /tests
parentfc3606b94daa8b40e32f7d5ae01c54e0a0e1a235 (diff)
downloadqtactiveqt-46c51861822c4ee8f0e7d7f5ecc23d1595cf5c1d.tar.gz
Suppress DISPATCH_PROPERTYGET for calls from QAxScript.
Factor out a version QAxBase::dynamicCall() taking a flag that allows for suppressing DISPATCH_PROPERTYGET and use that from QAxScript to fix return types. Add autotest. Task-number: QTBUG-42289 Change-Id: I1900061bc2de6d5987cb7323bb388df806e53e96 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/auto.pro4
-rw-r--r--tests/auto/qaxscript/qaxscript.pro3
-rw-r--r--tests/auto/qaxscript/tst_qaxscript.cpp63
3 files changed, 70 insertions, 0 deletions
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 41abb07..593ed3f 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -1,5 +1,9 @@
TEMPLATE = subdirs
SUBDIRS += \
qaxobject \
+ qaxscript \
dumpcpp \
cmake
+
+*g++*: SUBDIRS -= \
+ qaxscript \
diff --git a/tests/auto/qaxscript/qaxscript.pro b/tests/auto/qaxscript/qaxscript.pro
new file mode 100644
index 0000000..704b2cd
--- /dev/null
+++ b/tests/auto/qaxscript/qaxscript.pro
@@ -0,0 +1,3 @@
+CONFIG += testcase
+QT = core axcontainer testlib
+SOURCES += tst_qaxscript.cpp
diff --git a/tests/auto/qaxscript/tst_qaxscript.cpp b/tests/auto/qaxscript/tst_qaxscript.cpp
new file mode 100644
index 0000000..45a16b0
--- /dev/null
+++ b/tests/auto/qaxscript/tst_qaxscript.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+#include <QAxScriptManager>
+#include <QAxScript>
+
+class tst_QAxScript : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void scriptReturnValue();
+};
+
+void tst_QAxScript::scriptReturnValue()
+{
+ QAxScriptManager scriptManager;
+ const char scriptCode[] =
+ "function foo() {\n"
+ " return 'test';\n"
+ "}\n"; // QTBUG-42289, fails when DISPATCH_PROPERTYGET is used.
+ QAxScript *script = scriptManager.load(QLatin1String(scriptCode),
+ QStringLiteral("Test"),
+ QStringLiteral("JScript"));
+ QVERIFY2(script, "Unable to load script (CoInitialize() called?)");
+ const QVariant result = script->call("foo()");
+ QCOMPARE(result, QVariant(QStringLiteral("test")));
+}
+
+QTEST_MAIN(tst_QAxScript)
+#include "tst_qaxscript.moc"