From 1f22c1d98162b3a7d34ceb64c543d6580333b434 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sun, 1 Sep 2013 23:34:20 +0200 Subject: Introduce QTextDocument::baseUrl Required for QQuickText & friends to implement image resource handling in a clean way - to get rid of QQuickTextDocumentWithImageResources and eventually make QQuickTextEdit's document interchangeable. Change-Id: I97314a6c3e2d5726539d5722795a472631388cb0 Reviewed-by: Konstantin Ritt --- .../gui/text/qtextdocument/tst_qtextdocument.cpp | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'tests') diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index b065f537f7..1abac3a28a 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -189,6 +189,9 @@ private slots: void QTBUG27354_spaceAndSoftSpace(); void cssInheritance(); + void baseUrl_data(); + void baseUrl(); + void QTBUG28998_linkColor(); private: @@ -2978,6 +2981,53 @@ void tst_QTextDocument::cssInheritance() } } +class BaseDocument : public QTextDocument +{ +public: + QUrl loadedResource() const { return resourceUrl; } + + QVariant loadResource(int type, const QUrl &name) + { + resourceUrl = name; + return QTextDocument::loadResource(type, name); + } + +private: + QUrl resourceUrl; +}; + +void tst_QTextDocument::baseUrl_data() +{ + QTest::addColumn("base"); + QTest::addColumn("resource"); + QTest::addColumn("loaded"); + + QTest::newRow("1") << QUrl() << QUrl("images/logo.png") << QUrl("images/logo.png"); + QTest::newRow("2") << QUrl("file:///path/to/content") << QUrl("images/logo.png") << QUrl("file:///path/to/images/logo.png"); + QTest::newRow("3") << QUrl("file:///path/to/content/") << QUrl("images/logo.png") << QUrl("file:///path/to/content/images/logo.png"); + QTest::newRow("4") << QUrl("file:///path/to/content/images") << QUrl("images/logo.png") << QUrl("file:///path/to/content/images/logo.png"); + QTest::newRow("5") << QUrl("file:///path/to/content/images/") << QUrl("images/logo.png") << QUrl("file:///path/to/content/images/images/logo.png"); + QTest::newRow("6") << QUrl("file:///path/to/content/images") << QUrl("../images/logo.png") << QUrl("file:///path/to/images/logo.png"); + QTest::newRow("7") << QUrl("file:///path/to/content/images/") << QUrl("../images/logo.png") << QUrl("file:///path/to/content/images/logo.png"); + QTest::newRow("8") << QUrl("file:///path/to/content/index.html") << QUrl("images/logo.png") << QUrl("file:///path/to/content/images/logo.png"); +} + +void tst_QTextDocument::baseUrl() +{ + QFETCH(QUrl, base); + QFETCH(QUrl, resource); + QFETCH(QUrl, loaded); + + BaseDocument document; + QVERIFY(!document.baseUrl().isValid()); + document.setBaseUrl(base); + QCOMPARE(document.baseUrl(), base); + + document.setHtml(QString("").arg(resource.toString())); + document.resource(QTextDocument::ImageResource, resource); + QCOMPARE(document.loadedResource(), loaded); +} + void tst_QTextDocument::QTBUG28998_linkColor() { QPalette pal; -- cgit v1.2.3