summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-02-04 01:00:59 +0100
committerEdward Welbourne <edward.welbourne@qt.io>2020-02-04 10:49:41 +0100
commit6b858e21ed1ac3c665ab5cd608078dfe00283f8f (patch)
tree1ebe1764f7099a119b9df0ffa53dce1bbf17d1bd /tests
parentb3422402b4be7c1361b26904069b6bf0ba592d2f (diff)
parent97417e8f2896bfbe1d9e9a703ddba980983d1442 (diff)
Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/text/qlocale/tst_qlocale.cpp30
-rw-r--r--tests/auto/gui/text/qtextmarkdownwriter/data/links.md25
-rw-r--r--tests/auto/gui/text/qtextmarkdownwriter/tst_qtextmarkdownwriter.cpp1
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsitem/BLACKLIST1
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp70
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST2
-rw-r--r--tests/manual/qlocale/calendar.cpp4
-rw-r--r--tests/manual/qlocale/calendar.h4
8 files changed, 120 insertions, 17 deletions
diff --git a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
index 7b2d92f9cb..45372c8b01 100644
--- a/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
+++ b/tests/auto/corelib/text/qlocale/tst_qlocale.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2019 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
@@ -1869,14 +1869,16 @@ void tst_QLocale::toDateTime()
// Format number string according to system locale settings.
// Expected in format is US "1,234.56".
-QString systemLocaleFormatNumber(const QString &numberString)
+QString systemLocaleFormatNumber(QString &&numberString)
{
QLocale locale = QLocale::system();
- QString numberStringCopy = numberString;
- return numberStringCopy.replace(QChar(','), QChar('G'))
- .replace(QChar('.'), QChar('D'))
- .replace(QChar('G'), locale.groupSeparator())
- .replace(QChar('D'), locale.decimalPoint());
+ QString numberStringMunged =
+ numberString.replace(QChar(','), QChar('G')).replace(QChar('.'), QChar('D'));
+ if (locale.numberOptions() & QLocale::OmitGroupSeparator)
+ numberStringMunged.remove(QLatin1Char('G'));
+ else
+ numberStringMunged.replace(QChar('G'), locale.groupSeparator());
+ return numberStringMunged.replace(QChar('D'), locale.decimalPoint());
}
void tst_QLocale::macDefaultLocale()
@@ -1899,12 +1901,14 @@ void tst_QLocale::macDefaultLocale()
// independently of the locale. Verify that they have one of the
// allowed values and are not the same.
QVERIFY(locale.decimalPoint() == QChar('.') || locale.decimalPoint() == QChar(','));
- QVERIFY(locale.groupSeparator() == QChar(',')
- || locale.groupSeparator() == QChar('.')
- || locale.groupSeparator() == QChar('\xA0') // no-breaking space
- || locale.groupSeparator() == QChar('\'')
- || locale.groupSeparator() == QChar());
- QVERIFY(locale.decimalPoint() != locale.groupSeparator());
+ if (!(locale.numberOptions() & QLocale::OmitGroupSeparator)) {
+ QVERIFY(locale.groupSeparator() == QChar(',')
+ || locale.groupSeparator() == QChar('.')
+ || locale.groupSeparator() == QChar('\xA0') // no-breaking space
+ || locale.groupSeparator() == QChar('\'')
+ || locale.groupSeparator() == QChar());
+ QVERIFY(locale.decimalPoint() != locale.groupSeparator());
+ }
// make sure we are using the system to parse them
QCOMPARE(locale.toString(1234.56), systemLocaleFormatNumber(QString("1,234.56")));
diff --git a/tests/auto/gui/text/qtextmarkdownwriter/data/links.md b/tests/auto/gui/text/qtextmarkdownwriter/data/links.md
new file mode 100644
index 0000000000..33cdb2b3ab
--- /dev/null
+++ b/tests/auto/gui/text/qtextmarkdownwriter/data/links.md
@@ -0,0 +1,25 @@
+A series of links.
+
+[link](/uri)
+
+[link]()
+
+[link](/uri "title")
+
+[link](/uri "àbcdè")
+
+[link](/uri "title title \" title title")
+
+[link](/url "title \"&quot;")
+
+[link](/url "title
+title
+title title
+\"title\" title \"
+title")
+
+* [link](/url "title")
+* [link](/url)
+* [link](/url "title
+title title")
+* nonlink
diff --git a/tests/auto/gui/text/qtextmarkdownwriter/tst_qtextmarkdownwriter.cpp b/tests/auto/gui/text/qtextmarkdownwriter/tst_qtextmarkdownwriter.cpp
index d15e856a20..31592c7f0f 100644
--- a/tests/auto/gui/text/qtextmarkdownwriter/tst_qtextmarkdownwriter.cpp
+++ b/tests/auto/gui/text/qtextmarkdownwriter/tst_qtextmarkdownwriter.cpp
@@ -368,6 +368,7 @@ void tst_QTextMarkdownWriter::rewriteDocument_data()
QTest::newRow("example") << "example.md";
QTest::newRow("list items after headings") << "headingsAndLists.md";
QTest::newRow("word wrap") << "wordWrap.md";
+ QTest::newRow("links") << "links.md";
}
void tst_QTextMarkdownWriter::rewriteDocument()
diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsitem/BLACKLIST
index e760042def..31dbb38a5d 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsitem/BLACKLIST
+++ b/tests/auto/widgets/graphicsview/qgraphicsitem/BLACKLIST
@@ -1,3 +1,4 @@
# QTBUG-74760
[sorting]
opensuse-42.3
+osx
diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index a437b05479..8c2d89e34b 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -89,6 +89,7 @@ private slots:
void focusNextPrevChild();
void focusOutEvent_data();
void focusOutEvent();
+ void focusProxy_QTBUG_51856();
void hoverEnterLeaveEvent_data();
void hoverEnterLeaveEvent();
void hoverMoveEvent_data();
@@ -864,6 +865,75 @@ void tst_QGraphicsProxyWidget::focusOutEvent()
}
}
+void tst_QGraphicsProxyWidget::focusProxy_QTBUG_51856()
+{
+ // QSpinBox has an internal QLineEdit; this QLineEdit has the spinbox
+ // as its focus proxy.
+ struct FocusedSpinBox : QSpinBox
+ {
+ int focusCount = 0;
+
+ bool event(QEvent *event) override
+ {
+ switch (event->type()) {
+ case QEvent::FocusIn:
+ ++focusCount;
+ break;
+ case QEvent::FocusOut:
+ --focusCount;
+ break;
+ default:
+ break;
+ }
+ return QSpinBox::event(event);
+ }
+ };
+
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ SubQGraphicsProxyWidget *proxy = new SubQGraphicsProxyWidget;
+ scene.addItem(proxy);
+ view.show();
+ view.raise();
+ view.activateWindow();
+ QVERIFY(QTest::qWaitForWindowActive(&view));
+
+ FocusedSpinBox *spinBox = new FocusedSpinBox;
+
+ proxy->setWidget(spinBox);
+ proxy->show();
+ proxy->setFocus();
+ QVERIFY(proxy->hasFocus());
+ QEXPECT_FAIL("", "Widget should have focus but doesn't", Continue);
+ QVERIFY(spinBox->hasFocus());
+ QEXPECT_FAIL("", "Widget should have focus but doesn't", Continue);
+ QCOMPARE(spinBox->focusCount, 1);
+
+ enum { Count = 10 };
+
+ for (int i = 0; i < Count; ++i) {
+ for (int clickCount = 0; clickCount < Count; ++clickCount) {
+ auto proxyCenter = proxy->boundingRect().center();
+ auto proxyCenterInScene = proxy->mapToScene(proxyCenter);
+ auto proxyCenterInView = view.mapFromScene(proxyCenterInScene);
+
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, {}, proxyCenterInView);
+ QTRY_COMPARE(spinBox->focusCount, 1);
+ }
+
+ QLineEdit *edit = new QLineEdit(&view);
+ edit->show();
+ QTRY_VERIFY(edit->isVisible());
+ edit->setFocus();
+ QTRY_VERIFY(edit->hasFocus());
+ QTRY_VERIFY(!proxy->hasFocus());
+ QTRY_COMPARE(proxy->focusOut, i + 1);
+ QTRY_VERIFY(!spinBox->hasFocus());
+ QTRY_COMPARE(spinBox->focusCount, 0);
+ delete edit;
+ }
+}
+
class EventLogger : public QWidget
{
public:
diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST
index 9b76ea02ff..f59544f336 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST
+++ b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST
@@ -16,3 +16,5 @@ opensuse-42.3
[itemsInRect_cosmeticAdjust]
# QTBUG-66815
ubuntu-16.04
+[fitInView]
+osx
diff --git a/tests/manual/qlocale/calendar.cpp b/tests/manual/qlocale/calendar.cpp
index 4295e13342..f127c81656 100644
--- a/tests/manual/qlocale/calendar.cpp
+++ b/tests/manual/qlocale/calendar.cpp
@@ -94,13 +94,13 @@ void CalendarWidget::selectedDateChanged()
currentDateEdit->setDate(calendar->selectedDate());
}
-void CalendarWidget::minimumDateChanged(const QDate &date)
+void CalendarWidget::minimumDateChanged(QDate date)
{
calendar->setMinimumDate(date);
maximumDateEdit->setDate(calendar->maximumDate());
}
-void CalendarWidget::maximumDateChanged(const QDate &date)
+void CalendarWidget::maximumDateChanged(QDate date)
{
calendar->setMaximumDate(date);
minimumDateEdit->setDate(calendar->minimumDate());
diff --git a/tests/manual/qlocale/calendar.h b/tests/manual/qlocale/calendar.h
index aee73ef82a..6a72a4e2d2 100644
--- a/tests/manual/qlocale/calendar.h
+++ b/tests/manual/qlocale/calendar.h
@@ -55,8 +55,8 @@ private slots:
void horizontalHeaderChanged(int index);
void verticalHeaderChanged(int index);
void selectedDateChanged();
- void minimumDateChanged(const QDate &date);
- void maximumDateChanged(const QDate &date);
+ void minimumDateChanged(QDate date);
+ void maximumDateChanged(QDate date);
void updateWeekendDays();
void weekdayFormatChanged();
void weekendFormatChanged();