// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include #include #include using namespace Qt::StringLiterals; class tst_QAxScriptManager : public QObject { Q_OBJECT public: struct Script { QString language; QString name; QString code; }; private slots: void functions_data(); void functions(); void scriptNames_data(); void scriptNames(); void script_data(); void script(); void call_data(); void call(); }; void tst_QAxScriptManager::functions_data() { const auto scriptCode_js = Script{u"JScript"_s, u"test1"_s, uR"JS( function js1() { return 'JScript 1'; } function js2(value) { return 'JScript 2'; } )JS"_s}; const auto scriptCode_vb = Script{u"VBScript"_s, u"test2"_s, uR"VB( Function vb1() vb1 = "VBScript 1" End Function Function vb2(value) vb2 = "VBScript 2" End Function )VB"_s}; QTest::addColumn>("scripts"); QTest::addColumn("functions"); QTest::addColumn("signatures"); QTest::addRow("js") << QList{scriptCode_js} << QStringList{"js1", "js2"} << QStringList{"js1()", "js2(QVariant)"}; QTest::addRow("vb") << QList{scriptCode_vb} << QStringList{"vb1", "vb2"} << QStringList{"vb1()", "vb2(QVariant)"}; QTest::addRow("both") << QList{scriptCode_js, scriptCode_vb} << QStringList{"js1", "js2", "vb1", "vb2"} << QStringList{"js1()", "js2(QVariant)", "vb1()", "vb2(QVariant)"}; } void tst_QAxScriptManager::functions() { // QStringList functions(QAxScript::FunctionFlags = QAxScript::FunctionNames) const; QFETCH(QList