| 82 | |
| 83 | namespace MyNS { |
| 84 | class MyObject : public QObject |
| 85 | { |
| 86 | Q_OBJECT |
| 87 | public: |
| 88 | enum MyEnum |
| 89 | { |
| 90 | MyValue1, |
| 91 | MyValue2 |
| 92 | }; |
| 93 | Q_ENUM(MyEnum) |
| 94 | }; |
| 95 | |
| 96 | class MyOtherObject : public QObject |
| 97 | { |
| 98 | Q_OBJECT |
| 99 | }; |
| 100 | } |
| 101 | |
| 102 | class EnumPropertyTest : public QObject |
| 103 | { |
| 104 | Q_OBJECT |
| 105 | public: |
| 106 | explicit EnumPropertyTest(QObject *parent = nullptr) |
| 107 | : QObject(parent) |
| 108 | { |
| 109 | qRegisterMetaType<QFrame *>(); |
| 110 | qRegisterMetaType<QFrame::Shadow>(); |
| 111 | qRegisterMetaType<MyNS::MyObject *>(); |
| 112 | |
| 113 | EnumRepositoryServer::create(this); |
| 114 | ER_REGISTER_ENUM(EnumHolder, MyEnum, my_enum_table); |
| 115 | ER_REGISTER_FLAGS(EnumHolder, MyFlags, my_enum_table); |
| 116 | } |
| 117 | |
| 118 | private slots: |
| 119 | static void testEnumToString_data() |
| 120 | { |
| 121 | QTest::addColumn<QVariant>("variant", nullptr); |
| 122 | QTest::addColumn<QByteArray>("name", nullptr); |
| 123 | QTest::addColumn<const QMetaObject *>("mo", nullptr); |
| 124 | QTest::addColumn<QString>("result", nullptr); |
| 125 | |
| 126 | const QMetaObject *nullObj = nullptr; |
| 127 | QTest::newRow("null") << QVariant() << QByteArray() << nullObj << QString(); |
| 128 | QTest::newRow("int") << QVariant(42) << QByteArray() << &staticMetaObject << QString(); |
| 129 | |
| 130 | // global enum |
| 131 | QTest::newRow("global enum as int, QMO/name") << QVariant::fromValue<int>(Qt::LeftToRight) << QByteArray("Qt::LayoutDirection") << &QFrame::staticMetaObject << QStringLiteral("LeftToRight"); |
| 132 | QTest::newRow("global enum as int, name") << QVariant::fromValue<int>(Qt::LeftToRight) << QByteArray("Qt::LayoutDirection") << nullObj << QStringLiteral("LeftToRight"); |
| 133 | QTest::newRow("global enum, QMO/name") << QVariant::fromValue<Qt::LayoutDirection>(Qt::LeftToRight) << QByteArray("Qt::LayoutDirection") << &QFrame::staticMetaObject << QStringLiteral("LeftToRight"); |
| 134 | QTest::newRow("global enum, QMO") << QVariant::fromValue<Qt::LayoutDirection>(Qt::LeftToRight) << QByteArray() << &QFrame::staticMetaObject << QStringLiteral("LeftToRight"); |
| 135 | QTest::newRow("global enum, name") << QVariant::fromValue<Qt::LayoutDirection>(Qt::LeftToRight) << QByteArray("Qt::LayoutDirection") << nullObj << QStringLiteral("LeftToRight"); |
| 136 | QTest::newRow("global enum") << QVariant::fromValue<Qt::LayoutDirection>(Qt::LeftToRight) << QByteArray() << nullObj << QStringLiteral("LeftToRight"); |
| 137 | |
| 138 | // global flag |
| 139 | QTest::newRow("global flag as int, name") << QVariant::fromValue<int>(Qt::AlignHCenter | Qt::AlignTop) << QByteArray("Qt::Alignment") << nullObj << QStringLiteral("AlignHCenter|AlignTop"); |
| 140 | QTest::newRow("global flag, name") << QVariant::fromValue<Qt::Alignment>(Qt::AlignHCenter | Qt::AlignTop) << QByteArray("Qt::Alignment") << nullObj << QStringLiteral("AlignHCenter|AlignTop"); |
| 141 | QTest::newRow("global flag") << QVariant::fromValue<Qt::Alignment>(Qt::AlignHCenter | Qt::AlignTop) << QByteArray() << nullObj << QStringLiteral("AlignHCenter|AlignTop"); |
nothing calls this directly
no test coverage detected