171 lines
6.2 KiB
C++
171 lines
6.2 KiB
C++
// Copyright (C) 2023 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#include "tst_qml_common.h"
|
|
|
|
using namespace Qt::StringLiterals;
|
|
|
|
void tst_qml_common::tst_propertyNameToChangedSignalName_data()
|
|
{
|
|
QTest::addColumn<QString>("property");
|
|
QTest::addColumn<QString>("expected");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s << u"helloWorldChanged"_s;
|
|
QTest::addRow("changedProperty") << u"changed"_s << u"changedChanged"_s;
|
|
QTest::addRow("chängedProperty") << u"chänged"_s << u"chängedChanged"_s;
|
|
}
|
|
void tst_qml_common::tst_propertyNameToChangedSignalName()
|
|
{
|
|
QFETCH(QString, property);
|
|
QFETCH(QString, expected);
|
|
|
|
QVERIFY(QQmlSignalNames::isChangedSignalName(expected));
|
|
QCOMPARE(QQmlSignalNames::propertyNameToChangedSignalName(property), expected);
|
|
QCOMPARE(QQmlSignalNames::changedSignalNameToPropertyName(expected).value(), property);
|
|
}
|
|
|
|
void tst_qml_common::tst_propertyNameToChangedHandlerName_data()
|
|
{
|
|
QTest::addColumn<QString>("property");
|
|
QTest::addColumn<QString>("expected");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s << u"onHelloWorldChanged"_s;
|
|
QTest::addRow("changedProperty") << u"changed"_s << u"onChangedChanged"_s;
|
|
QTest::addRow("chängedProperty") << u"chänged"_s << u"onChängedChanged"_s;
|
|
QTest::addRow("äProperty") << u"ä"_s << u"onÄChanged"_s;
|
|
QTest::addRow("_Property") << u"_"_s << u"on_Changed"_s;
|
|
QTest::addRow("___123aProperty") << u"___123a"_s << u"on___123AChanged"_s;
|
|
QTest::addRow("___123Property") << u"___123"_s << u"on___123Changed"_s;
|
|
QTest::addRow("AProperty") << u"A"_s << u"onAChanged"_s;
|
|
QTest::addRow("_Property") << u"_"_s << u"on_Changed"_s;
|
|
QTest::addRow("$Property") << u"$"_s << u"on$Changed"_s;
|
|
}
|
|
void tst_qml_common::tst_propertyNameToChangedHandlerName()
|
|
{
|
|
QFETCH(QString, property);
|
|
QFETCH(QString, expected);
|
|
|
|
QVERIFY(QQmlSignalNames::isChangedHandlerName(expected));
|
|
QCOMPARE(QQmlSignalNames::propertyNameToChangedHandlerName(property), expected);
|
|
auto reverse = QQmlSignalNames::changedHandlerNameToPropertyName(expected);
|
|
QVERIFY(reverse);
|
|
QEXPECT_FAIL("AProperty",
|
|
"Cannot distinguish between property names starting with upper case"
|
|
" from properties starting with a lower case letter.",
|
|
Continue);
|
|
QCOMPARE(reverse.value(), property);
|
|
}
|
|
|
|
void tst_qml_common::tst_signalNameToHandlerName_data()
|
|
{
|
|
QTest::addColumn<QString>("signalName");
|
|
QTest::addColumn<QString>("expected");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s << u"onHelloWorld"_s;
|
|
QTest::addRow("changedProperty") << u"changed"_s << u"onChanged"_s;
|
|
QTest::addRow("chängedProperty") << u"chänged"_s << u"onChänged"_s;
|
|
QTest::addRow("äProperty") << u"ä"_s << u"onÄ"_s;
|
|
QTest::addRow("_Property") << u"_"_s << u"on_"_s;
|
|
QTest::addRow("___123aProperty") << u"___123a"_s << u"on___123A"_s;
|
|
QTest::addRow("___123Property") << u"___123"_s << u"on___123"_s;
|
|
QTest::addRow("AProperty") << u"A"_s << u"onA"_s;
|
|
QTest::addRow("_Property") << u"_"_s << u"on_"_s;
|
|
QTest::addRow("$Property") << u"$"_s << u"on$"_s;
|
|
}
|
|
|
|
void tst_qml_common::tst_signalNameToHandlerName()
|
|
{
|
|
QFETCH(QString, signalName);
|
|
QFETCH(QString, expected);
|
|
|
|
QVERIFY(QQmlSignalNames::isHandlerName(expected));
|
|
QCOMPARE(QQmlSignalNames::signalNameToHandlerName(signalName), expected);
|
|
|
|
auto result = QQmlSignalNames::handlerNameToSignalName(expected);
|
|
QVERIFY(result.has_value());
|
|
|
|
QEXPECT_FAIL("AProperty",
|
|
"Cannot distinguish between signal names starting with upper case"
|
|
" from signal names starting with a lower case letter.",
|
|
Continue);
|
|
|
|
QCOMPARE(result.value(), signalName);
|
|
}
|
|
|
|
void tst_qml_common::tst_changedSignalNameToPropertyName_data()
|
|
{
|
|
// only test when it should return nothing, see also tst_propertyNameToChangedSignalName.
|
|
QTest::addColumn<QString>("changedSignalName");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s;
|
|
QTest::addRow("Changed") << u"Changed"_s;
|
|
QTest::addRow("empty") << u""_s;
|
|
}
|
|
|
|
void tst_qml_common::tst_changedSignalNameToPropertyName()
|
|
{
|
|
QFETCH(QString, changedSignalName);
|
|
|
|
QVERIFY(!QQmlSignalNames::changedSignalNameToPropertyName(changedSignalName).has_value());
|
|
}
|
|
|
|
void tst_qml_common::tst_changedHandlerNameToPropertyName_data()
|
|
{
|
|
// only test when it should return nothing, see also tst_propertyNameToChangedHandler.
|
|
QTest::addColumn<QString>("changedHandler");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s;
|
|
QTest::addRow("Changed") << u"Changed"_s;
|
|
QTest::addRow("empty") << u""_s;
|
|
QTest::addRow("empty2") << u"onChanged"_s;
|
|
QTest::addRow("on") << u"on"_s;
|
|
}
|
|
void tst_qml_common::tst_changedHandlerNameToPropertyName()
|
|
{
|
|
QFETCH(QString, changedHandler);
|
|
|
|
QVERIFY(!QQmlSignalNames::changedHandlerNameToPropertyName(changedHandler).has_value());
|
|
}
|
|
|
|
void tst_qml_common::tst_handlerNameToSignalName_data()
|
|
{
|
|
// only test when it should return nothing, see also tst_signalNameToHandlerName.
|
|
QTest::addColumn<QString>("handler");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s;
|
|
QTest::addRow("Changed") << u"Changed"_s;
|
|
QTest::addRow("empty") << u""_s;
|
|
QTest::addRow("on") << u"on"_s;
|
|
}
|
|
void tst_qml_common::tst_handlerNameToSignalName()
|
|
{
|
|
QFETCH(QString, handler);
|
|
|
|
QVERIFY(!QQmlSignalNames::handlerNameToSignalName(handler).has_value());
|
|
}
|
|
|
|
void tst_qml_common::tst_isChangedHandlerName_data()
|
|
{
|
|
QTest::addColumn<QString>("name");
|
|
QTest::addColumn<bool>("expected");
|
|
|
|
QTest::addRow("normalProperty") << u"helloWorld"_s << false;
|
|
QTest::addRow("Changed") << u"Changed"_s << false;
|
|
QTest::addRow("empty") << u""_s << false;
|
|
QTest::addRow("empty2") << u"onChanged"_s << false;
|
|
QTest::addRow("on") << u"on"_s << false;
|
|
QTest::addRow("on_Changed") << u"on_Changed"_s << true;
|
|
QTest::addRow("on$Changed") << u"on$Changed"_s << true;
|
|
}
|
|
void tst_qml_common::tst_isChangedHandlerName()
|
|
{
|
|
QFETCH(QString, name);
|
|
QFETCH(bool, expected);
|
|
|
|
QCOMPARE(QQmlSignalNames::isChangedHandlerName(name), expected);
|
|
}
|
|
|
|
QTEST_MAIN(tst_qml_common)
|
|
|
|
#include "tst_qml_common.moc"
|