diff options
Diffstat (limited to 'tests/auto/gui')
-rw-r--r-- | tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 31 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp | 43 |
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" |