summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp31
-rw-r--r--tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp43
2 files changed, 74 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index 17ce507cdf..5d7f41efda 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -102,6 +102,7 @@ private slots:
void toHtmlBodyBgColorTransparent();
void toHtmlRootFrameProperties();
void toHtmlLineHeightProperties();
+ void toHtmlDefaultFontSpacingProperties();
void capitalizationHtmlInExport();
void wordspacingHtmlExport();
@@ -1964,6 +1965,36 @@ void tst_QTextDocument::toHtmlLineHeightProperties()
QCOMPARE(doc.toHtml(), expectedOutput);
}
+void tst_QTextDocument::toHtmlDefaultFontSpacingProperties()
+{
+ CREATE_DOC_AND_CURSOR();
+
+ cursor.insertText("Blah");
+
+ QFont fnt = doc.defaultFont();
+ fnt.setLetterSpacing(QFont::AbsoluteSpacing, 13);
+ fnt.setWordSpacing(15);
+ doc.setDefaultFont(fnt);
+
+ QString expectedOutput = QString("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" "
+ "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
+ "<html><head><meta name=\"qrichtext\" content=\"1\" />"
+ "<meta charset=\"utf-8\" /><style type=\"text/css\">\n"
+ "p, li { white-space: pre-wrap; }\n"
+ "</style></head>"
+ "<body style=\" font-family:'%1'; font-size:%2; "
+ "font-weight:%3; font-style:%4; letter-spacing:13px; "
+ "word-spacing:15px;\">\n"
+ "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Blah</p>"
+ "</body></html>");
+ expectedOutput = expectedOutput.arg(defaultFont.family())
+ .arg(cssFontSizeString(defaultFont))
+ .arg(defaultFont.weight() * 8)
+ .arg((defaultFont.italic() ? "italic" : "normal"));
+
+ QCOMPARE(doc.toHtml(), expectedOutput);
+}
+
void tst_QTextDocument::capitalizationHtmlInExport()
{
doc->setPlainText("Test");
diff --git a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
index 67bb628215..3b4c55d406 100644
--- a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
+++ b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
@@ -266,6 +266,7 @@ private slots:
void html_importImageWithoutAspectRatio();
void html_fromFirefox();
void html_emptyInlineInsideBlock();
+ void css_fontAndWordSpacing();
private:
inline void setHtml(const QString &html)
@@ -4239,5 +4240,47 @@ void tst_QTextDocumentFragment::html_emptyInlineInsideBlock()
QVERIFY(doc->firstBlock().blockFormat().leftMargin() > 0);
}
+void tst_QTextDocumentFragment::css_fontAndWordSpacing()
+{
+ {
+ const char html[] = "<body style=\"letter-spacing:13px; word-spacing:15px;\">Foo</span>";
+ doc->setHtml(html);
+ cursor.movePosition(QTextCursor::Start);
+ cursor.movePosition(QTextCursor::NextCharacter);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacing).toInt(), 13);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacingType).toUInt(),
+ (uint)(QFont::AbsoluteSpacing));
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontWordSpacing).toInt(), 15);
+ }
+ {
+ const char html[] = "<body style=\"letter-spacing:1em; word-spacing:0px;\">Foo</span>";
+ doc->setHtml(html);
+ cursor.movePosition(QTextCursor::Start);
+ cursor.movePosition(QTextCursor::NextCharacter);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacing).toInt(), 200);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacingType).toUInt(),
+ (uint)(QFont::PercentageSpacing));
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontWordSpacing).toInt(), 0);
+ }
+ {
+ const char html[] = "<body style=\"letter-spacing:0em;\">Foo</span>";
+ doc->setHtml(html);
+ cursor.movePosition(QTextCursor::Start);
+ cursor.movePosition(QTextCursor::NextCharacter);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacing).toInt(), 100);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacingType).toUInt(),
+ (uint)(QFont::PercentageSpacing));
+ }
+ {
+ const char html[] = "<body style=\"letter-spacing:-0.5em;\">Foo</span>";
+ doc->setHtml(html);
+ cursor.movePosition(QTextCursor::Start);
+ cursor.movePosition(QTextCursor::NextCharacter);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacing).toInt(), 50);
+ QCOMPARE(cursor.charFormat().property(QTextFormat::FontLetterSpacingType).toUInt(),
+ (uint)(QFont::PercentageSpacing));
+ }
+}
+
QTEST_MAIN(tst_QTextDocumentFragment)
#include "tst_qtextdocumentfragment.moc"