diff options
Diffstat (limited to 'tests')
8 files changed, 126 insertions, 36 deletions
diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp index f6d08c8107f..67643606fa3 100644 --- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp +++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp @@ -77,10 +77,6 @@ class SomethingOfEverything : public QObject Q_PROPERTY(SomethingEnum eprop READ eprop) Q_PROPERTY(SomethingFlagEnum fprop READ fprop) Q_PROPERTY(QLocale::Language language READ language) - Q_ENUMS(SomethingEnum) - Q_FLAGS(SomethingFlag) - Q_ENUMS(SomethingEnum64) - Q_FLAGS(SomethingFlag64) public: Q_INVOKABLE SomethingOfEverything() {} ~SomethingOfEverything() {} @@ -105,6 +101,7 @@ public: UVW = 8 }; Q_DECLARE_FLAGS(SomethingFlag, SomethingFlagEnum) + Q_FLAG(SomethingFlag) enum SomethingFlagEnum64 : quint64 { @@ -112,6 +109,7 @@ public: OPQ = Q_UINT64_C(1) << 63, }; Q_DECLARE_FLAGS(SomethingFlag64, SomethingFlagEnum64) + Q_FLAG(SomethingFlag64) Q_INVOKABLE Q_SCRIPTABLE void method1() const {} diff --git a/tests/auto/corelib/platform/android/tst_android.cpp b/tests/auto/corelib/platform/android/tst_android.cpp index 3665f100a61..b4bb0323f8a 100644 --- a/tests/auto/corelib/platform/android/tst_android.cpp +++ b/tests/auto/corelib/platform/android/tst_android.cpp @@ -430,6 +430,8 @@ void tst_Android::testFullScreenDimensions() widget.showNormal(); } + // TODO needs fix to work in local and CI on same fashion + const bool runsOnCI = qgetenv("QTEST_ENVIRONMENT").split(' ').contains("ci"); { // Translucent // available geometry == full display size (system bars visible but drawable under) @@ -437,14 +439,11 @@ void tst_Android::testFullScreenDimensions() widget.show(); QCoreApplication::processEvents(); QTRY_COMPARE(screen->availableGeometry().width(), realSize.getField<jint>("x")); - QTRY_COMPARE(screen->availableGeometry().height(), realSize.getField<jint>("y")); - - QTRY_COMPARE(screen->geometry().width(), realSize.getField<jint>("x")); - // TODO needs fix to work in local and CI on same fashion - const bool runsOnCI = qgetenv("QTEST_ENVIRONMENT").split(' ').contains("ci"); if ((sdkVersion > __ANDROID_API_V__) && runsOnCI) QEXPECT_FAIL("", "Fails on Android 16 (QTBUG-141712).", Continue); + QTRY_COMPARE(screen->availableGeometry().height(), realSize.getField<jint>("y")); + QTRY_COMPARE(screen->geometry().width(), realSize.getField<jint>("x")); QTRY_COMPARE(screen->geometry().height(), realSize.getField<jint>("y")); widget.showNormal(); } @@ -455,6 +454,8 @@ void tst_Android::testFullScreenDimensions() widget.showMaximized(); QCoreApplication::processEvents(); QTRY_COMPARE(screen->availableGeometry().width(), realSize.getField<jint>("x")); + if ((sdkVersion > __ANDROID_API_V__) && runsOnCI) + QEXPECT_FAIL("", "Fails on Android 16 (QTBUG-141712).", Continue); QTRY_COMPARE(screen->availableGeometry().height(), realSize.getField<jint>("y")); QTRY_COMPARE(screen->geometry().width(), realSize.getField<jint>("x")); diff --git a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp index cb22024f769..ff78d1a1d1f 100644 --- a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp +++ b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp @@ -359,7 +359,7 @@ void tst_QGuiVariant::toString_data() #endif QFont font( "times", 12 ); - QTest::newRow("qfont") << QVariant::fromValue(font) << QString("times,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"); + QTest::newRow("qfont") << QVariant::fromValue(font) << QString("times,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0"); QTest::newRow( "qcolor" ) << QVariant::fromValue( QColor( 10, 10, 10 ) ) << QString( "#0a0a0a" ); } diff --git a/tests/auto/gui/text/qfont/tst_qfont.cpp b/tests/auto/gui/text/qfont/tst_qfont.cpp index 215ce412d98..8c4b8c75a26 100644 --- a/tests/auto/gui/text/qfont/tst_qfont.cpp +++ b/tests/auto/gui/text/qfont/tst_qfont.cpp @@ -50,7 +50,10 @@ private slots: void defaultFamily_data(); void defaultFamily(); void toAndFromString(); + void fromStringCompatibility_data(); + void fromStringCompatibility(); void fromStringWithoutStyleName(); + void fromStringWithoutFeatures(); void fromDegenerateString_data(); void fromDegenerateString(); @@ -645,51 +648,114 @@ void tst_QFont::toAndFromString() QCOMPARE(result, initial); } +} + +void tst_QFont::fromStringCompatibility_data() +{ + QTest::addColumn<bool>("current"); + QTest::addColumn<QString>("description"); + QTest::addColumn<QFont>("font"); - // Since Qt 6.0 it was changed to include more information in the description, so - // this checks for compatibility - const QString fontStringFrom515(QLatin1String("Times New Roman,18,-1,5,75,1,0,0,1,0,Regular")); QFont fontFrom515("Times New Roman", 18); fontFrom515.setBold(true); fontFrom515.setItalic(true); fontFrom515.setFixedPitch(true); fontFrom515.setStyleName("Regular"); - QFont from515String; - from515String.fromString(fontStringFrom515); - QCOMPARE(from515String, fontFrom515); + QTest::addRow("Times New Roman, Qt 5.15") << false << QStringLiteral("Times New Roman,18,-1,5,75,1,0,0,1,0,Regular") << fontFrom515; - const QString fontStringFrom60( - QLatin1String("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2,Regular")); QFont fontFrom60 = fontFrom515; fontFrom60.setStyleStrategy(QFont::PreferBitmap); fontFrom60.setCapitalization(QFont::AllUppercase); fontFrom60.setLetterSpacing(QFont::PercentageSpacing, 150.5); fontFrom60.setWordSpacing(2.5); fontFrom60.setStretch(50); - QFont from60String; - from60String.fromString(fontStringFrom60); - QCOMPARE(fontFrom60.toString(), fontStringFrom60); - QCOMPARE(from60String, fontFrom60); + QTest::addRow("Times New Roman, Qt 6.0") << false << QStringLiteral("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2,Regular") << fontFrom60; + + QFont fontFrom611 = fontFrom60; + QTest::addRow("Times New Roman, Qt 6.11") << true << QStringLiteral("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2,Regular,0") << fontFrom611; + + QFont fontFrom611WithFeatures = fontFrom60; + fontFrom611WithFeatures.setFeature("frac", 1); + fontFrom611WithFeatures.setFeature("liga", 0); + QTest::addRow("Times New Roman (with features), Qt 6.11") << true << QStringLiteral("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2,Regular,2,frac=1,liga=0") << fontFrom611WithFeatures; +} + +void tst_QFont::fromStringCompatibility() +{ + // This test verifies that font descriptions from older Qt releases are handled as expected. + + QFETCH(bool, current); + QFETCH(QString, description); + + QFont font; + font.fromString(description); + QTEST(font, "font"); + + if (current) { + QCOMPARE(font.toString(), description); + } } void tst_QFont::fromStringWithoutStyleName() { - QFont font1; - font1.fromString("Noto Sans,12,-1,5,50,0,0,0,0,0,Regular"); + // This test verifies that the style name will be reset if the from string contains no style. + + const QString fontString(QLatin1String("Times,16,-1,5,400,0,0,0,0,0,0,0,0,0,0,1")); + { + QFont font; + font.fromString("Noto Sans,12,-1,5,50,0,0,0,0,0,Regular"); - QFont font2 = font1; - const QString str = "Times,16,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"; - font2.fromString(str); + QFont from = font; + from.fromString(fontString); - QCOMPARE(font2.toString(), str); + QFont clean; + clean.fromString(fontString); + + QCOMPARE(from, clean); + } const QString fontStringFrom60( QLatin1String("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2")); - QFont font3; - font3.fromString("Noto Sans,12,-1,5,50,0,0,0,0,0,Regular"); - QFont font4 = font3; - font4.fromString(fontStringFrom60); - QCOMPARE(font4.toString(), fontStringFrom60); + { + QFont font; + font.fromString("Noto Sans,12,-1,5,50,0,0,0,0,0,Regular"); + + QFont from = font; + from.fromString(fontStringFrom60); + + QFont clean; + clean.fromString(fontStringFrom60); + + QCOMPARE(from, clean); + } + + const QString fontStringFrom611( + QLatin1String("Times New Roman,18,-1,5,700,1,0,0,1,0,1,0,150.5,2.5,50,2,,0")); + { + QFont font; + font.fromString("Noto Sans,12,-1,5,50,0,0,0,0,0,Regular"); + + QFont from = font; + from.fromString(fontStringFrom611); + + QFont clean; + clean.fromString(fontStringFrom611); + + QCOMPARE(from, clean); + } +} + +void tst_QFont::fromStringWithoutFeatures() +{ + // This test verifies that the font feature list will be reset if the from string contains no features. + + const QString fontStringWithoutFeatures = QStringLiteral("Noto Sans,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"); + const QString fontStringWithFeatures = QStringLiteral("Noto Sans,18,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,2,calt=0,frac=1"); + + QFont font; + font.fromString(fontStringWithFeatures); + font.fromString(fontStringWithoutFeatures); + QVERIFY(font.featureTags().isEmpty()); } void tst_QFont::fromDegenerateString_data() diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 600b45575f2..07f3dc9f05c 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -295,6 +295,8 @@ void tst_QTextDocument::cleanup() cursor = QTextCursor(); delete doc; doc = 0; + + QTextDocument::setDefaultResourceProvider({}); } void tst_QTextDocument::cleanupTestCase() diff --git a/tests/auto/tools/moc/allmocs_baseline_in.json b/tests/auto/tools/moc/allmocs_baseline_in.json index 8f7757a7272..363ade3d53c 100644 --- a/tests/auto/tools/moc/allmocs_baseline_in.json +++ b/tests/auto/tools/moc/allmocs_baseline_in.json @@ -2444,7 +2444,7 @@ { "isClass": false, "isFlag": false, - "lineNumber": 14, + "lineNumber": 13, "name": "SomeEnum", "values": [ "SomeEnumValue" diff --git a/tests/auto/tools/moc/qtbug-35657-gadget.h b/tests/auto/tools/moc/qtbug-35657-gadget.h index d97e1f7f45e..ca225faca1c 100644 --- a/tests/auto/tools/moc/qtbug-35657-gadget.h +++ b/tests/auto/tools/moc/qtbug-35657-gadget.h @@ -9,9 +9,9 @@ namespace QTBUG_35657 { class A { Q_GADGET - Q_ENUMS(SomeEnum) public: enum SomeEnum { SomeEnumValue = 0 }; + Q_ENUM(SomeEnum) }; } diff --git a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp index 03131cebe47..16a69e4337d 100644 --- a/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp +++ b/tests/auto/widgets/widgets/qtabbar/tst_qtabbar.cpp @@ -63,6 +63,7 @@ private slots: void removeLastVisibleTab(); void closeButton(); + void requestCloseOnMiddleClick(); void tabButton_data(); void tabButton(); @@ -551,6 +552,28 @@ void tst_QTabBar::closeButton() QCOMPARE(spy.size(), 1); } +void tst_QTabBar::requestCloseOnMiddleClick() +{ + QTabBar tabbar; + tabbar.addTab("foo"); + tabbar.addTab("bar"); + QCOMPARE(tabbar.count(), 2); + + QSignalSpy spy(&tabbar, SIGNAL(tabCloseRequested(int))); + + QCOMPARE(tabbar.tabsClosable(), false); + QTest::mouseClick(&tabbar, Qt::MiddleButton, {}, tabbar.tabRect(0).center()); + QCOMPARE(spy.size(), 0); + + tabbar.setTabsClosable(true); + QCOMPARE(tabbar.tabsClosable(), true); + QTest::mouseClick(&tabbar, Qt::MiddleButton, {}, tabbar.tabRect(0).center()); + QCOMPARE(spy.size(), 1); + + QTest::mouseClick(&tabbar, Qt::MiddleButton, {}, tabbar.rect().bottomRight() * 1.1); + QCOMPARE(spy.size(), 1); +} + Q_DECLARE_METATYPE(QTabBar::ButtonPosition) void tst_QTabBar::tabButton_data() { @@ -1512,7 +1535,7 @@ void tst_QTabBar::checkPositionsAfterShapeChange() using QTabWidget::QTabWidget; using QTabWidget::setTabBar; }; - + class TabBar : public QTabBar { public: |
