aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/doc/how-tos/how-to-cpp-enum-js/tst_how-to-cpp-enum-js.cpp
blob: 78c3584a3f2a3fa5dc2855fb9d6c67355f3b0cfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

#include <QtCore/qregularexpression.h>
#include <QtTest/QTest>
#include <QtQml/qjsengine.h>

#include "backend.h"

QT_BEGIN_NAMESPACE

class tst_HowToCppEnumJs : public QObject
{
    Q_OBJECT

public:
    tst_HowToCppEnumJs();

private slots:
    void example();
};

tst_HowToCppEnumJs::tst_HowToCppEnumJs()
{
}

void tst_HowToCppEnumJs::example()
{
    QTest::failOnWarning();

    QJSEngine engine;
    engine.installExtensions(QJSEngine::AllExtensions);

    QJSValue metaObjects = engine.newObject();
    const QJSValue backendJsMetaObject = engine.newQMetaObject(&Backend::staticMetaObject);
    metaObjects.setProperty("Backend", backendJsMetaObject);
    // Repeat the two lines above for other types as needed.
    engine.registerModule("MyApp", metaObjects);

    QTest::ignoreMessage(QtDebugMsg, "Backend loaded successfully");
    Backend backend(&engine);
    const bool loaded = backend.load();
    QVERIFY(loaded);
}

QT_END_NAMESPACE

QTEST_MAIN(tst_HowToCppEnumJs)

#include "tst_how-to-cpp-enum-js.moc"