summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-06 10:45:40 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-06 10:54:01 +0200
commit77da617dc8e378a631ee8c15b1b414f16b87f147 (patch)
tree563f4f8e64e416774ea2b1599b896b589385168c /tests/auto/gui
parentc17134e2db4d364855aa78a0d3c47cb9ef964dd9 (diff)
parent01f3530650f9f6f4c08520263a3c62281d81e3fc (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts: doc/global/qt-cpp-defines.qdocconf src/3rdparty/forkfd/forkfd.c src/corelib/codecs/qtextcodec.cpp src/corelib/kernel/qmetatype.cpp src/corelib/tools/qset.qdoc src/gui/accessible/qaccessible.cpp src/gui/image/qpixmapcache.cpp src/opengl/qgl.cpp src/tools/qdoc/generator.cpp src/widgets/kernel/qwidget.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp Change-Id: I4fbe1fa756a54c6843aa75f4ef70a1069ba7b085
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_QTBUG-46870.jpgbin0 -> 14122 bytes
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp8
-rw-r--r--tests/auto/gui/text/qfontcache/tst_qfontcache.cpp14
-rw-r--r--tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp76
4 files changed, 66 insertions, 32 deletions
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_QTBUG-46870.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_QTBUG-46870.jpg
new file mode 100644
index 0000000000..a51a1e3162
--- /dev/null
+++ b/tests/auto/gui/image/qimage/images/jpeg_exif_invalid_data_QTBUG-46870.jpg
Binary files differ
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp
index c1b32a273c..08f48abd20 100644
--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
+++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
@@ -185,6 +185,7 @@ private slots:
void exifOrientation();
void exif_QTBUG45865();
+ void exif_invalid_data_QTBUG46870();
void cleanupFunctions();
@@ -2872,6 +2873,13 @@ void tst_QImage::exif_QTBUG45865()
QCOMPARE(image.size(), QSize(5, 8));
}
+void tst_QImage::exif_invalid_data_QTBUG46870()
+{
+ QImage image;
+ QVERIFY(image.load(m_prefix + "jpeg_exif_invalid_data_QTBUG-46870.jpg"));
+ QVERIFY(!image.isNull());
+}
+
static void cleanupFunction(void* info)
{
bool *called = static_cast<bool*>(info);
diff --git a/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp b/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
index 0658d99fb2..272827e57b 100644
--- a/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
+++ b/tests/auto/gui/text/qfontcache/tst_qfontcache.cpp
@@ -51,15 +51,15 @@ private slots:
void clear();
};
-QT_BEGIN_NAMESPACE
-extern void qt_setQtEnableTestFont(bool value); // qfontdatabase.cpp
-
#ifdef QT_BUILD_INTERNAL
+QT_BEGIN_NAMESPACE
+// qfontdatabase.cpp
+Q_AUTOTEST_EXPORT void qt_setQtEnableTestFont(bool value);
// qfontengine.cpp
-extern void QFontEngine_startCollectingEngines();
-extern QList<QFontEngine *> QFontEngine_stopCollectingEngines();
-#endif
+Q_AUTOTEST_EXPORT void QFontEngine_startCollectingEngines();
+Q_AUTOTEST_EXPORT QList<QFontEngine *> QFontEngine_stopCollectingEngines();
QT_END_NAMESPACE
+#endif
tst_QFontCache::tst_QFontCache()
{
@@ -79,6 +79,7 @@ void tst_QFontCache::clear()
QFontEngine *fontEngine = 0;
+#ifdef QT_BUILD_INTERNAL
{
// we're never caching the box (and the "test") font engines
// let's ensure we're not leaking them as well as the cached ones
@@ -88,6 +89,7 @@ void tst_QFontCache::clear()
f.setFamily("__Qt__Box__Engine__");
f.exactMatch(); // loads engine
}
+#endif
{
QFontDatabase db;
diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
index b19f90935b..18da61925d 100644
--- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp
@@ -68,6 +68,7 @@ public slots:
private slots:
void getSetCheck();
void lineBreaking();
+#ifdef QT_BUILD_INTERNAL
void simpleBoundingRect();
void threeLineBoundingRect();
void boundingRectWithLongLineAndNoWrap();
@@ -83,16 +84,20 @@ private slots:
void horizontalAlignment();
void horizontalAlignmentMultiline_data();
void horizontalAlignmentMultiline();
+#endif
void defaultWordSeparators_data();
void defaultWordSeparators();
void cursorMovementFromInvalidPositions();
void cursorMovementInsideSpaces();
void charWordStopOnLineSeparator();
+#ifdef QT_BUILD_INTERNAL
void xToCursorAtEndOfLine();
+#endif
void boundingRectTopLeft();
void graphemeBoundaryForSurrogatePairs();
void tabStops();
void integerOverflow();
+#ifdef QT_BUILD_INTERNAL
void testDefaultTabs();
void testTabs();
void testMultilineTab();
@@ -103,6 +108,7 @@ private slots:
void testMultiTab();
void testTabDPIScale();
void tabsForRtl();
+#endif
void tabHeight();
void capitalization_allUpperCase();
void capitalization_allUpperCase_newline();
@@ -119,12 +125,14 @@ private slots:
void layoutWithCustomTabStops();
// QTextLine stuff
+#ifdef QT_BUILD_INTERNAL
void setNumColumnsWrapAtWordBoundaryOrAnywhere();
void setNumColumnsWordWrap();
void smallTextLengthNoWrap();
void smallTextLengthWordWrap();
void smallTextLengthWrapAtWordBoundaryOrAnywhere();
void testLineBreakingAllSpaces();
+#endif
void lineWidthFromBOM();
void textWidthVsWIdth();
void textWithSurrogates_qtbug15679();
@@ -143,7 +151,7 @@ private:
void tst_QTextLayout::getSetCheck()
{
QString str("Bogus text");
- QTextLayout layout(str, testFont);
+ QTextLayout layout(str);
layout.beginLayout();
QTextEngine *engine = layout.engine();
QTextInlineObject obj1(0, engine);
@@ -177,13 +185,18 @@ void tst_QTextLayout::getSetCheck()
QCOMPARE(true, obj2.cacheEnabled());
}
+#ifdef QT_BUILD_INTERNAL
QT_BEGIN_NAMESPACE
-extern void qt_setQtEnableTestFont(bool value);
+// qfontdatabase.cpp
+Q_AUTOTEST_EXPORT void qt_setQtEnableTestFont(bool value);
QT_END_NAMESPACE
+#endif
tst_QTextLayout::tst_QTextLayout()
{
+#ifdef QT_BUILD_INTERNAL
qt_setQtEnableTestFont(true);
+#endif
}
tst_QTextLayout::~tst_QTextLayout()
@@ -193,10 +206,14 @@ tst_QTextLayout::~tst_QTextLayout()
void tst_QTextLayout::init()
{
testFont = QFont();
+#ifdef QT_BUILD_INTERNAL
testFont.setFamily("__Qt__Box__Engine__");
+#endif
testFont.setPixelSize(TESTFONT_SIZE);
testFont.setWeight(QFont::Normal);
+#ifdef QT_BUILD_INTERNAL
QCOMPARE(QFontMetrics(testFont).width('a'), testFont.pixelSize());
+#endif
}
void tst_QTextLayout::cleanup()
@@ -286,6 +303,7 @@ void tst_QTextLayout::lineBreaking()
#endif
}
+#ifdef QT_BUILD_INTERNAL
void tst_QTextLayout::simpleBoundingRect()
{
/* just check if boundingRect() gives sane values. The text is not broken. */
@@ -972,6 +990,7 @@ void tst_QTextLayout::horizontalAlignmentMultiline()
QCOMPARE(rect.left(), lastLeft);
QCOMPARE(rect.right(), lastRight);
}
+#endif
void tst_QTextLayout::defaultWordSeparators_data()
{
@@ -1009,7 +1028,7 @@ void tst_QTextLayout::defaultWordSeparators()
QFETCH(QString, text);
QFETCH(int, startPos);
QFETCH(int, endPos);
- QTextLayout layout(text, testFont);
+ QTextLayout layout(text);
QCOMPARE(layout.nextCursorPosition(startPos, QTextLayout::SkipWords), endPos);
QCOMPARE(layout.previousCursorPosition(endPos, QTextLayout::SkipWords), startPos);
@@ -1019,7 +1038,7 @@ void tst_QTextLayout::cursorMovementFromInvalidPositions()
{
int badpos = 10000;
- QTextLayout layout("ABC", testFont);
+ QTextLayout layout("ABC");
QCOMPARE(layout.previousCursorPosition(-badpos, QTextLayout::SkipCharacters), -badpos);
QCOMPARE(layout.nextCursorPosition(-badpos, QTextLayout::SkipCharacters), -badpos);
@@ -1030,13 +1049,13 @@ void tst_QTextLayout::cursorMovementFromInvalidPositions()
void tst_QTextLayout::cursorMovementInsideSpaces()
{
- QTextLayout layout("ABC DEF", testFont);
+ QTextLayout layout("ABC DEF");
QCOMPARE(layout.previousCursorPosition(6, QTextLayout::SkipWords), 0);
QCOMPARE(layout.nextCursorPosition(6, QTextLayout::SkipWords), 15);
- QTextLayout layout2("ABC\t\t\t\t\t\t\t\t\t\t\t\tDEF", testFont);
+ QTextLayout layout2("ABC\t\t\t\t\t\t\t\t\t\t\t\tDEF");
QCOMPARE(layout2.previousCursorPosition(6, QTextLayout::SkipWords), 0);
QCOMPARE(layout2.nextCursorPosition(6, QTextLayout::SkipWords), 15);
@@ -1048,13 +1067,14 @@ void tst_QTextLayout::charWordStopOnLineSeparator()
QString txt;
txt.append(lineSeparator);
txt.append(lineSeparator);
- QTextLayout layout(txt, testFont);
+ QTextLayout layout(txt);
QTextEngine *engine = layout.engine();
const QCharAttributes *attrs = engine->attributes();
QVERIFY(attrs);
QVERIFY(attrs[1].graphemeBoundary);
}
+#ifdef QT_BUILD_INTERNAL
void tst_QTextLayout::xToCursorAtEndOfLine()
{
QString text = "FirstLine SecondLine";
@@ -1078,13 +1098,14 @@ void tst_QTextLayout::xToCursorAtEndOfLine()
line = layout.lineAt(1);
QCOMPARE(line.xToCursor(100000), 20);
}
+#endif
void tst_QTextLayout::boundingRectTopLeft()
{
QString text = "FirstLine\nSecondLine";
text.replace('\n', QChar::LineSeparator);
- QTextLayout layout(text, testFont);
+ QTextLayout layout(text);
layout.setCacheEnabled(true);
layout.beginLayout();
@@ -1106,7 +1127,7 @@ void tst_QTextLayout::graphemeBoundaryForSurrogatePairs()
txt.append(0xd87e);
txt.append(0xdc25);
txt.append("b");
- QTextLayout layout(txt, testFont);
+ QTextLayout layout(txt);
QTextEngine *engine = layout.engine();
const QCharAttributes *attrs = engine->attributes();
QVERIFY(attrs);
@@ -1119,13 +1140,13 @@ void tst_QTextLayout::graphemeBoundaryForSurrogatePairs()
void tst_QTextLayout::tabStops()
{
QString txt("Hello there\tworld");
- QTextLayout layout(txt, testFont);
+ QTextLayout layout(txt);
layout.beginLayout();
QTextLine line = layout.createLine();
QVERIFY(line.isValid());
line.setNumColumns(11);
- QCOMPARE(line.textLength(), TESTFONT_SIZE);
+ QCOMPARE(line.textLength(), 12);
line = layout.createLine();
QVERIFY(line.isValid());
@@ -1142,7 +1163,7 @@ void tst_QTextLayout::integerOverflow()
for (int i = 0; i < 8; ++i)
txt += txt;
- QTextLayout layout(txt, testFont);
+ QTextLayout layout(txt);
layout.beginLayout();
QTextLine line = layout.createLine();
@@ -1155,6 +1176,7 @@ void tst_QTextLayout::integerOverflow()
layout.endLayout();
}
+#ifdef QT_BUILD_INTERNAL
void tst_QTextLayout::setNumColumnsWrapAtWordBoundaryOrAnywhere()
{
QString txt("This is a small test text");
@@ -1696,22 +1718,23 @@ void tst_QTextLayout::testTabDPIScale()
QCOMPARE(line.cursorToX(12), tabs.at(1).position * scale - TESTFONT_SIZE * 5);
QCOMPARE(line.cursorToX(18), tabs.at(2).position * scale - TESTFONT_SIZE * 3 / 2.0);
}
+#endif
void tst_QTextLayout::tabHeight()
{
- QTextLayout layout("\t", testFont);
+ QTextLayout layout("\t");
layout.setCacheEnabled(true);
layout.beginLayout();
QTextLine line = layout.createLine();
layout.endLayout();
- QCOMPARE(qRound(line.ascent()), QFontMetrics(testFont).ascent());
- QCOMPARE(qRound(line.descent()), QFontMetrics(testFont).descent());
+ QCOMPARE(qRound(line.ascent()), QFontMetrics(layout.font()).ascent());
+ QCOMPARE(qRound(line.descent()), QFontMetrics(layout.font()).descent());
}
void tst_QTextLayout::capitalization_allUpperCase()
{
- QFont font(testFont);
+ QFont font;
font.setCapitalization(QFont::AllUppercase);
QTextLayout layout("Test", font);
layout.setCacheEnabled(true);
@@ -1727,7 +1750,7 @@ void tst_QTextLayout::capitalization_allUpperCase()
void tst_QTextLayout::capitalization_allUpperCase_newline()
{
- QFont font(testFont);
+ QFont font;
font.setCapitalization(QFont::AllUppercase);
QString tmp = "hello\nworld!";
@@ -1749,7 +1772,7 @@ void tst_QTextLayout::capitalization_allUpperCase_newline()
void tst_QTextLayout::capitalization_allLowerCase()
{
- QFont font(testFont);
+ QFont font;
font.setCapitalization(QFont::AllLowercase);
QTextLayout layout("Test", font);
layout.setCacheEnabled(true);
@@ -1765,7 +1788,7 @@ void tst_QTextLayout::capitalization_allLowerCase()
void tst_QTextLayout::capitalization_smallCaps()
{
- QFont font(testFont);
+ QFont font;
font.setCapitalization(QFont::SmallCaps);
QTextLayout layout("Test", font);
layout.setCacheEnabled(true);
@@ -1782,7 +1805,7 @@ void tst_QTextLayout::capitalization_smallCaps()
void tst_QTextLayout::capitalization_capitalize()
{
- QFont font(testFont);
+ QFont font;
font.setCapitalization(QFont::Capitalize);
QTextLayout layout("hello\tworld", font);
layout.setCacheEnabled(true);
@@ -1805,7 +1828,7 @@ void tst_QTextLayout::longText()
QString longText(128000, 'a');
{
- QTextLayout layout(longText, testFont);
+ QTextLayout layout(longText);
layout.setCacheEnabled(true);
layout.beginLayout();
QTextLine line = layout.createLine();
@@ -1815,7 +1838,7 @@ void tst_QTextLayout::longText()
}
for (int cap = QFont::MixedCase; cap < QFont::Capitalize + 1; ++cap) {
- QFont f(testFont);
+ QFont f;
f.setCapitalization(QFont::Capitalization(cap));
QTextLayout layout(longText, f);
layout.setCacheEnabled(true);
@@ -1827,7 +1850,7 @@ void tst_QTextLayout::longText()
}
{
- QTextLayout layout(longText, testFont);
+ QTextLayout layout(longText);
layout.setCacheEnabled(true);
layout.setFlags(Qt::TextForceLeftToRight);
layout.beginLayout();
@@ -1838,7 +1861,7 @@ void tst_QTextLayout::longText()
}
{
- QTextLayout layout(longText, testFont);
+ QTextLayout layout(longText);
layout.setCacheEnabled(true);
layout.setFlags(Qt::TextForceRightToLeft);
layout.beginLayout();
@@ -1851,7 +1874,8 @@ void tst_QTextLayout::longText()
void tst_QTextLayout::widthOfTabs()
{
- QTextEngine engine("ddd\t\t", testFont);
+ QTextEngine engine;
+ engine.text = "ddd\t\t";
engine.ignoreBidi = true;
engine.itemize();
QCOMPARE(qRound(engine.width(0, 5)), qRound(engine.boundingBox(0, 5).width));
@@ -2079,7 +2103,7 @@ void tst_QTextLayout::cursorInNonStopChars()
void tst_QTextLayout::justifyTrailingSpaces()
{
- QTextLayout layout(QStringLiteral(" t"), testFont);
+ QTextLayout layout(QStringLiteral(" t"));
layout.setTextOption(QTextOption(Qt::AlignJustify));
layout.beginLayout();