summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/CMakeLists.txt2
-rw-r--r--tests/auto/widgets/favicon/CMakeLists.txt (renamed from tests/auto/widgets/faviconmanager/CMakeLists.txt)10
-rw-r--r--tests/auto/widgets/favicon/favicon.pro (renamed from tests/auto/widgets/faviconmanager/faviconmanager.pro)0
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-misc.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-misc.html)4
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-multi.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-multi.html)2
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-shortcut.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-shortcut.html)0
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-single.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-single.html)0
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-touch.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-touch.html)0
-rw-r--r--tests/auto/widgets/favicon/resources/favicon-unavailable.html (renamed from tests/auto/widgets/faviconmanager/resources/favicon-unavailable.html)0
-rw-r--r--tests/auto/widgets/favicon/resources/icons/qt144.png (renamed from tests/auto/widgets/faviconmanager/resources/icons/qt144.png)bin8315 -> 8315 bytes
-rw-r--r--tests/auto/widgets/favicon/resources/icons/qt32.ico (renamed from tests/auto/widgets/faviconmanager/resources/icons/qt32.ico)bin4286 -> 4286 bytes
-rw-r--r--tests/auto/widgets/favicon/resources/icons/qtmulti.ico (renamed from tests/auto/widgets/faviconmanager/resources/icons/qtmulti.ico)bin22382 -> 22382 bytes
-rw-r--r--tests/auto/widgets/favicon/resources/test1.html (renamed from tests/auto/widgets/faviconmanager/resources/test1.html)0
-rw-r--r--tests/auto/widgets/favicon/tst_favicon.cpp (renamed from tests/auto/widgets/faviconmanager/tst_faviconmanager.cpp)282
-rw-r--r--tests/auto/widgets/favicon/tst_favicon.qrc (renamed from tests/auto/widgets/faviconmanager/tst_faviconmanager.qrc)0
-rw-r--r--tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp6
16 files changed, 134 insertions, 172 deletions
diff --git a/tests/auto/widgets/CMakeLists.txt b/tests/auto/widgets/CMakeLists.txt
index 7072329c3..f7955b1f8 100644
--- a/tests/auto/widgets/CMakeLists.txt
+++ b/tests/auto/widgets/CMakeLists.txt
@@ -5,7 +5,7 @@ if(NOT boot2qt)
add_subdirectory(qwebengineprofile)
add_subdirectory(qwebengineview)
endif()
-add_subdirectory(faviconmanager)
+add_subdirectory(favicon)
add_subdirectory(loadsignals)
add_subdirectory(origins)
add_subdirectory(proxy)
diff --git a/tests/auto/widgets/faviconmanager/CMakeLists.txt b/tests/auto/widgets/favicon/CMakeLists.txt
index 89bee5a2a..64c4efc91 100644
--- a/tests/auto/widgets/faviconmanager/CMakeLists.txt
+++ b/tests/auto/widgets/favicon/CMakeLists.txt
@@ -1,14 +1,14 @@
include(../../util/util.cmake)
-qt_internal_add_test(tst_faviconmanager
+qt_internal_add_test(tst_favicon
SOURCES
- tst_faviconmanager.cpp
+ tst_favicon.cpp
LIBRARIES
Qt::WebEngineWidgets
Test::Util
)
-set(tst_faviconmanager_resource_files
+set(tst_favicon_resource_files
"resources/favicon-misc.html"
"resources/favicon-multi.html"
"resources/favicon-shortcut.html"
@@ -21,9 +21,9 @@ set(tst_faviconmanager_resource_files
"resources/test1.html"
)
-qt_add_resource(tst_faviconmanager "tst_faviconmanager"
+qt_add_resource(tst_favicon "tst_favicon"
PREFIX
"/"
FILES
- ${tst_faviconmanager_resource_files}
+ ${tst_favicon_resource_files}
)
diff --git a/tests/auto/widgets/faviconmanager/faviconmanager.pro b/tests/auto/widgets/favicon/favicon.pro
index e99c7f493..e99c7f493 100644
--- a/tests/auto/widgets/faviconmanager/faviconmanager.pro
+++ b/tests/auto/widgets/favicon/favicon.pro
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-misc.html b/tests/auto/widgets/favicon/resources/favicon-misc.html
index 9e788bdf4..ea587886f 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-misc.html
+++ b/tests/auto/widgets/favicon/resources/favicon-misc.html
@@ -1,8 +1,8 @@
<html>
<head>
<title>Favicon Test</title>
- <link rel="shortcut icon" href="icons/qt32.ico" />
- <link rel="apple-touch-icon" href="icons/qt144.png" />
+ <link rel="shortcut icon" href="icons/qt32.ico" sizes="32x32" />
+ <link rel="apple-touch-icon" href="icons/qt144.png" sizes="144x144" />
<link rel="shortcut icon" href="icons/unavailable.ico" />
</head>
<body>
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-multi.html b/tests/auto/widgets/favicon/resources/favicon-multi.html
index cc5f3fd66..56eeca8c4 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-multi.html
+++ b/tests/auto/widgets/favicon/resources/favicon-multi.html
@@ -1,7 +1,7 @@
<html>
<head>
<title>Multi-sized Favicon Test</title>
- <link rel="shortcut icon" sizes="16x16 32x23 64x64" href="icons/qtmulti.ico" />
+ <link rel="shortcut icon" sizes="16x16 32x32 64x64" href="icons/qtmulti.ico" />
</head>
<body>
<h1>Multi-sized Favicon Test</h1>
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-shortcut.html b/tests/auto/widgets/favicon/resources/favicon-shortcut.html
index 786cdb816..786cdb816 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-shortcut.html
+++ b/tests/auto/widgets/favicon/resources/favicon-shortcut.html
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-single.html b/tests/auto/widgets/favicon/resources/favicon-single.html
index eb4675c75..eb4675c75 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-single.html
+++ b/tests/auto/widgets/favicon/resources/favicon-single.html
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-touch.html b/tests/auto/widgets/favicon/resources/favicon-touch.html
index 271783434..271783434 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-touch.html
+++ b/tests/auto/widgets/favicon/resources/favicon-touch.html
diff --git a/tests/auto/widgets/faviconmanager/resources/favicon-unavailable.html b/tests/auto/widgets/favicon/resources/favicon-unavailable.html
index c45664294..c45664294 100644
--- a/tests/auto/widgets/faviconmanager/resources/favicon-unavailable.html
+++ b/tests/auto/widgets/favicon/resources/favicon-unavailable.html
diff --git a/tests/auto/widgets/faviconmanager/resources/icons/qt144.png b/tests/auto/widgets/favicon/resources/icons/qt144.png
index 050b1e066..050b1e066 100644
--- a/tests/auto/widgets/faviconmanager/resources/icons/qt144.png
+++ b/tests/auto/widgets/favicon/resources/icons/qt144.png
Binary files differ
diff --git a/tests/auto/widgets/faviconmanager/resources/icons/qt32.ico b/tests/auto/widgets/favicon/resources/icons/qt32.ico
index 2f6fcb5bc..2f6fcb5bc 100644
--- a/tests/auto/widgets/faviconmanager/resources/icons/qt32.ico
+++ b/tests/auto/widgets/favicon/resources/icons/qt32.ico
Binary files differ
diff --git a/tests/auto/widgets/faviconmanager/resources/icons/qtmulti.ico b/tests/auto/widgets/favicon/resources/icons/qtmulti.ico
index 81e5a22e8..81e5a22e8 100644
--- a/tests/auto/widgets/faviconmanager/resources/icons/qtmulti.ico
+++ b/tests/auto/widgets/favicon/resources/icons/qtmulti.ico
Binary files differ
diff --git a/tests/auto/widgets/faviconmanager/resources/test1.html b/tests/auto/widgets/favicon/resources/test1.html
index b323f966e..b323f966e 100644
--- a/tests/auto/widgets/faviconmanager/resources/test1.html
+++ b/tests/auto/widgets/favicon/resources/test1.html
diff --git a/tests/auto/widgets/faviconmanager/tst_faviconmanager.cpp b/tests/auto/widgets/favicon/tst_favicon.cpp
index 8e9bb2470..377699aaa 100644
--- a/tests/auto/widgets/faviconmanager/tst_faviconmanager.cpp
+++ b/tests/auto/widgets/favicon/tst_favicon.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtWebEngine module of the Qt Toolkit.
@@ -29,13 +29,13 @@
#include <QtTest/QtTest>
#include <util.h>
-#include <qwebenginepage.h>
-#include <qwebengineprofile.h>
-#include <qwebenginesettings.h>
-#include <qwebengineview.h>
+#include <QWebEnginePage>
+#include <QWebEngineProfile>
+#include <QWebEngineSettings>
+#include <QWebEngineView>
-
-class tst_FaviconManager : public QObject {
+class tst_Favicon : public QObject
+{
Q_OBJECT
public Q_SLOTS:
@@ -48,15 +48,14 @@ private Q_SLOTS:
void faviconLoad();
void faviconLoadFromResources();
void faviconLoadEncodedUrl();
+ void faviconLoadAfterHistoryNavigation();
void noFavicon();
void aboutBlank();
void unavailableFavicon();
void errorPageEnabled();
void errorPageDisabled();
- void bestFavicon();
void touchIcon();
void multiIcon();
- void candidateIcon();
void downloadIconsDisabled_data();
void downloadIconsDisabled();
void downloadTouchIconsEnabled_data();
@@ -70,8 +69,7 @@ private:
QWebEngineProfile *m_profile;
};
-
-void tst_FaviconManager::init()
+void tst_Favicon::init()
{
m_profile = new QWebEngineProfile(this);
m_view = new QWebEngineView();
@@ -79,23 +77,17 @@ void tst_FaviconManager::init()
m_view->setPage(m_page);
}
+void tst_Favicon::initTestCase() { }
-void tst_FaviconManager::initTestCase()
-{
-}
-
-void tst_FaviconManager::cleanupTestCase()
-{
-}
-
+void tst_Favicon::cleanupTestCase() { }
-void tst_FaviconManager::cleanup()
+void tst_Favicon::cleanup()
{
delete m_view;
delete m_profile;
}
-void tst_FaviconManager::faviconLoad()
+void tst_Favicon::faviconLoad()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -125,12 +117,12 @@ void tst_FaviconManager::faviconLoad()
const QIcon &icon = m_page->icon();
QVERIFY(!icon.isNull());
- QCOMPARE(icon.availableSizes().count(), 1);
- QSize iconSize = icon.availableSizes().first();
- QCOMPARE(iconSize, QSize(32, 32));
+ QCOMPARE(icon.availableSizes().count(), 2);
+ QVERIFY(icon.availableSizes().contains(QSize(16, 16)));
+ QVERIFY(icon.availableSizes().contains(QSize(32, 32)));
}
-void tst_FaviconManager::faviconLoadFromResources()
+void tst_Favicon::faviconLoadFromResources()
{
QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
@@ -150,12 +142,12 @@ void tst_FaviconManager::faviconLoadFromResources()
const QIcon &icon = m_page->icon();
QVERIFY(!icon.isNull());
- QCOMPARE(icon.availableSizes().count(), 1);
- QSize iconSize = icon.availableSizes().first();
- QCOMPARE(iconSize, QSize(32, 32));
+ QCOMPARE(icon.availableSizes().count(), 2);
+ QVERIFY(icon.availableSizes().contains(QSize(16, 16)));
+ QVERIFY(icon.availableSizes().contains(QSize(32, 32)));
}
-void tst_FaviconManager::faviconLoadEncodedUrl()
+void tst_Favicon::faviconLoadEncodedUrl()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -187,12 +179,43 @@ void tst_FaviconManager::faviconLoadEncodedUrl()
const QIcon &icon = m_page->icon();
QVERIFY(!icon.isNull());
- QCOMPARE(icon.availableSizes().count(), 1);
- QSize iconSize = icon.availableSizes().first();
- QCOMPARE(iconSize, QSize(32, 32));
+ QCOMPARE(icon.availableSizes().count(), 2);
+ QVERIFY(icon.availableSizes().contains(QSize(16, 16)));
+ QVERIFY(icon.availableSizes().contains(QSize(32, 32)));
+}
+
+void tst_Favicon::faviconLoadAfterHistoryNavigation()
+{
+ QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
+ QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
+ QSignalSpy iconChangedSpy(m_page, SIGNAL(iconChanged(QIcon)));
+
+ m_page->load(QUrl("qrc:/resources/favicon-single.html"));
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
+ QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
+ QTRY_COMPARE(iconChangedSpy.count(), 1);
+ QCOMPARE(m_page->iconUrl(), QUrl("qrc:/resources/icons/qt32.ico"));
+
+ m_page->load(QUrl("qrc:/resources/favicon-multi.html"));
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 2, 30000);
+ QTRY_COMPARE(iconUrlChangedSpy.count(), 3);
+ QTRY_COMPARE(iconChangedSpy.count(), 3);
+ QCOMPARE(m_page->iconUrl(), QUrl("qrc:/resources/icons/qtmulti.ico"));
+
+ m_page->triggerAction(QWebEnginePage::Back);
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 3, 30000);
+ QTRY_COMPARE(iconUrlChangedSpy.count(), 5);
+ QTRY_COMPARE(iconChangedSpy.count(), 5);
+ QCOMPARE(m_page->iconUrl(), QUrl("qrc:/resources/icons/qt32.ico"));
+
+ m_page->triggerAction(QWebEnginePage::Forward);
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 4, 30000);
+ QTRY_COMPARE(iconUrlChangedSpy.count(), 7);
+ QTRY_COMPARE(iconChangedSpy.count(), 7);
+ QCOMPARE(m_page->iconUrl(), QUrl("qrc:/resources/icons/qtmulti.ico"));
}
-void tst_FaviconManager::noFavicon()
+void tst_Favicon::noFavicon()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -217,7 +240,7 @@ void tst_FaviconManager::noFavicon()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::aboutBlank()
+void tst_Favicon::aboutBlank()
{
QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
@@ -234,7 +257,7 @@ void tst_FaviconManager::aboutBlank()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::unavailableFavicon()
+void tst_Favicon::unavailableFavicon()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -259,7 +282,7 @@ void tst_FaviconManager::unavailableFavicon()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::errorPageEnabled()
+void tst_Favicon::errorPageEnabled()
{
m_page->settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, true);
@@ -278,7 +301,7 @@ void tst_FaviconManager::errorPageEnabled()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::errorPageDisabled()
+void tst_Favicon::errorPageDisabled()
{
m_page->settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, false);
@@ -297,80 +320,7 @@ void tst_FaviconManager::errorPageDisabled()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::bestFavicon()
-{
- if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
- W_QSKIP(QString("This test requires access to resources found in '%1'")
- .arg(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath())
- .toLatin1()
- .constData(),
- SkipAll);
-
- QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
- QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
- QSignalSpy iconChangedSpy(m_page, SIGNAL(iconChanged(QIcon)));
-
- QUrl url, iconUrl;
- QIcon icon;
- QSize iconSize;
-
- url = QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/favicon-misc.html"));
- m_page->load(url);
-
- QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
- QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
- QTRY_COMPARE(iconChangedSpy.count(), 1);
-
- iconUrl = iconUrlChangedSpy.at(0).at(0).toString();
- QCOMPARE(iconUrl, m_page->iconUrl());
- // Touch icon is ignored
- QCOMPARE(iconUrl,
- QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/icons/qt32.ico")));
-
- icon = m_page->icon();
- QVERIFY(!icon.isNull());
-
- QCOMPARE(icon.availableSizes().count(), 1);
- iconSize = icon.availableSizes().first();
- QCOMPARE(iconSize, QSize(32, 32));
-
- loadFinishedSpy.clear();
- iconUrlChangedSpy.clear();
- iconChangedSpy.clear();
-
- url = QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/favicon-shortcut.html"));
- m_page->load(url);
-
- QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
- QTRY_VERIFY(iconUrlChangedSpy.count() >= 1);
- QTRY_VERIFY(iconChangedSpy.count() >= 1);
-
- iconUrl = iconUrlChangedSpy.last().at(0).toString();
-
- // If the icon URL is empty we have to wait for
- // the second iconChanged signal that propagates the expected URL
- if (iconUrl.isEmpty()) {
- QTRY_COMPARE(iconUrlChangedSpy.count(), 2);
- QTRY_COMPARE(iconChangedSpy.count(), 2);
- iconUrl = iconUrlChangedSpy.last().at(0).toString();
- }
-
- QCOMPARE(iconUrl, m_page->iconUrl());
- QCOMPARE(iconUrl,
- QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/icons/qt144.png")));
-
- icon = m_page->icon();
- QVERIFY(!icon.isNull());
-
- QVERIFY(icon.availableSizes().count() >= 1);
- QVERIFY(icon.availableSizes().contains(QSize(144, 144)));
-}
-
-void tst_FaviconManager::touchIcon()
+void tst_Favicon::touchIcon()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -395,7 +345,7 @@ void tst_FaviconManager::touchIcon()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::multiIcon()
+void tst_Favicon::multiIcon()
{
if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
W_QSKIP(QString("This test requires access to resources found in '%1'")
@@ -410,61 +360,60 @@ void tst_FaviconManager::multiIcon()
QUrl url = QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
+ QLatin1String("/resources/favicon-multi.html"));
+ QUrl iconUrl;
+ QIcon icon;
+
+ // If touch icons are disabled, the favicon is provided in two sizes (16x16 and 32x32) according
+ // to the supported scale factors (100P, 200P).
+ m_page->settings()->setAttribute(QWebEngineSettings::TouchIconsEnabled, false);
m_page->load(url);
QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
QTRY_COMPARE(iconChangedSpy.count(), 1);
- QUrl iconUrl = iconUrlChangedSpy.at(0).at(0).toString();
+ iconUrl = iconUrlChangedSpy.at(0).at(0).toString();
QCOMPARE(m_page->iconUrl(), iconUrl);
QCOMPARE(iconUrl,
QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
+ QLatin1String("/resources/icons/qtmulti.ico")));
- const QIcon &icon = m_page->icon();
+ icon = m_page->icon();
QVERIFY(!icon.isNull());
- QCOMPARE(icon.availableSizes().count(), 3);
+ QCOMPARE(icon.availableSizes().count(), 2);
QVERIFY(icon.availableSizes().contains(QSize(16, 16)));
QVERIFY(icon.availableSizes().contains(QSize(32, 32)));
- QVERIFY(icon.availableSizes().contains(QSize(64, 64)));
-}
-void tst_FaviconManager::candidateIcon()
-{
- if (!QDir(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()).exists())
- W_QSKIP(QString("This test requires access to resources found in '%1'")
- .arg(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath())
- .toLatin1()
- .constData(),
- SkipAll);
-
- QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
- QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
- QSignalSpy iconChangedSpy(m_page, SIGNAL(iconChanged(QIcon)));
+ // Reset
+ loadFinishedSpy.clear();
+ m_page->load(QUrl("about:blank"));
+ QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
+ iconUrlChangedSpy.clear();
+ iconChangedSpy.clear();
+ loadFinishedSpy.clear();
+ icon = QIcon();
- QUrl url = QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/favicon-shortcut.html"));
+ // If touch icons are enabled, the largest icon is provided.
+ m_page->settings()->setAttribute(QWebEngineSettings::TouchIconsEnabled, true);
m_page->load(url);
QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
QTRY_COMPARE(iconChangedSpy.count(), 1);
- QUrl iconUrl = iconUrlChangedSpy.at(0).at(0).toString();
+ iconUrl = iconUrlChangedSpy.at(0).at(0).toString();
QCOMPARE(m_page->iconUrl(), iconUrl);
QCOMPARE(iconUrl,
QUrl::fromLocalFile(QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
- + QLatin1String("/resources/icons/qt144.png")));
+ + QLatin1String("/resources/icons/qtmulti.ico")));
- const QIcon &icon = m_page->icon();
+ icon = m_page->icon();
QVERIFY(!icon.isNull());
- QCOMPARE(icon.availableSizes().count(), 2);
- QVERIFY(icon.availableSizes().contains(QSize(32, 32)));
- QVERIFY(icon.availableSizes().contains(QSize(144, 144)));
+ QCOMPARE(icon.availableSizes().count(), 1);
+ QVERIFY(icon.availableSizes().contains(QSize(64, 64)));
}
-void tst_FaviconManager::downloadIconsDisabled_data()
+void tst_Favicon::downloadIconsDisabled_data()
{
QTest::addColumn<QUrl>("url");
QTest::newRow("misc") << QUrl("qrc:/resources/favicon-misc.html");
@@ -474,7 +423,7 @@ void tst_FaviconManager::downloadIconsDisabled_data()
QTest::newRow("unavailable") << QUrl("qrc:/resources/favicon-unavailable.html");
}
-void tst_FaviconManager::downloadIconsDisabled()
+void tst_Favicon::downloadIconsDisabled()
{
QFETCH(QUrl, url);
@@ -494,18 +443,22 @@ void tst_FaviconManager::downloadIconsDisabled()
QVERIFY(m_page->icon().isNull());
}
-void tst_FaviconManager::downloadTouchIconsEnabled_data()
+void tst_Favicon::downloadTouchIconsEnabled_data()
{
QTest::addColumn<QUrl>("url");
QTest::addColumn<QUrl>("expectedIconUrl");
QTest::addColumn<QSize>("expectedIconSize");
- QTest::newRow("misc") << QUrl("qrc:/resources/favicon-misc.html") << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
- QTest::newRow("shortcut") << QUrl("qrc:/resources/favicon-shortcut.html") << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
- QTest::newRow("single") << QUrl("qrc:/resources/favicon-single.html") << QUrl("qrc:/resources/icons/qt32.ico") << QSize(32, 32);
- QTest::newRow("touch") << QUrl("qrc:/resources/favicon-touch.html") << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
+ QTest::newRow("misc") << QUrl("qrc:/resources/favicon-misc.html")
+ << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
+ QTest::newRow("shortcut") << QUrl("qrc:/resources/favicon-shortcut.html")
+ << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
+ QTest::newRow("single") << QUrl("qrc:/resources/favicon-single.html")
+ << QUrl("qrc:/resources/icons/qt32.ico") << QSize(32, 32);
+ QTest::newRow("touch") << QUrl("qrc:/resources/favicon-touch.html")
+ << QUrl("qrc:/resources/icons/qt144.png") << QSize(144, 144);
}
-void tst_FaviconManager::downloadTouchIconsEnabled()
+void tst_Favicon::downloadTouchIconsEnabled()
{
QFETCH(QUrl, url);
QFETCH(QUrl, expectedIconUrl);
@@ -530,23 +483,27 @@ void tst_FaviconManager::downloadTouchIconsEnabled()
const QIcon &icon = m_page->icon();
QVERIFY(!icon.isNull());
- QVERIFY(icon.availableSizes().count() >= 1);
- QVERIFY(icon.availableSizes().contains(expectedIconSize));
+ QCOMPARE(icon.availableSizes().count(), 1);
+ QCOMPARE(icon.availableSizes().first(), expectedIconSize);
}
-void tst_FaviconManager::dynamicFavicon()
+void tst_Favicon::dynamicFavicon()
{
QSignalSpy loadFinishedSpy(m_page, SIGNAL(loadFinished(bool)));
QSignalSpy iconUrlChangedSpy(m_page, SIGNAL(iconUrlChanged(QUrl)));
QSignalSpy iconChangedSpy(m_page, SIGNAL(iconChanged(QIcon)));
QMap<Qt::GlobalColor, QString> colors;
- colors.insert(Qt::red, QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=="));
- colors.insert(Qt::green, QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg=="));
- colors.insert(Qt::blue, QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPj/HwADBwIAMCbHYQAAAABJRU5ErkJggg=="));
+ colors.insert(Qt::red,
+ QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=="));
+ colors.insert(Qt::green,
+ QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg=="));
+ colors.insert(Qt::blue,
+ QString("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPj/HwADBwIAMCbHYQAAAABJRU5ErkJggg=="));
m_page->setHtml("<html>"
- "<link rel='icon' type='image/png' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='/>"
+ "<link rel='icon' type='image/png' "
+ "href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='/>"
"</html>");
QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
@@ -556,14 +513,17 @@ void tst_FaviconManager::dynamicFavicon()
for (Qt::GlobalColor color : colors.keys()) {
iconChangedSpy.clear();
- evaluateJavaScriptSync(m_page, "document.getElementsByTagName('link')[0].href = 'data:image/png;base64," + colors[color] + "';");
+ evaluateJavaScriptSync(
+ m_page,
+ "document.getElementsByTagName('link')[0].href = 'data:image/png;base64," + colors[color] + "';");
QTRY_COMPARE(iconChangedSpy.count(), 1);
- QTRY_COMPARE(m_page->iconUrl().toString(), QString("data:image/png;base64," + colors[color]));
+ QTRY_COMPARE(m_page->iconUrl().toString(),
+ QString("data:image/png;base64," + colors[color]));
QCOMPARE(m_page->icon().pixmap(1, 1).toImage().pixelColor(0, 0), QColor(color));
}
}
-void tst_FaviconManager::touchIconWithSameURL()
+void tst_Favicon::touchIconWithSameURL()
{
m_page->settings()->setAttribute(QWebEngineSettings::TouchIconsEnabled, false);
@@ -578,7 +538,8 @@ void tst_FaviconManager::touchIconWithSameURL()
"</html>");
QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.count(), 1, 30000);
- // The default favicon has to be loaded even if its URL is also set as a touch icon while touch icons are disabled.
+ // The default favicon has to be loaded even if its URL is also set as a touch icon while touch
+ // icons are disabled.
QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
QCOMPARE(m_page->iconUrl().toString(), icon);
QTRY_COMPARE(iconChangedSpy.count(), 1);
@@ -592,14 +553,13 @@ void tst_FaviconManager::touchIconWithSameURL()
"</html>");
QTRY_COMPARE(loadFinishedSpy.count(), 1);
- // This page only has a touch icon. With disabled touch icons we don't expect any icon to be shown even if the same icon
- // was loaded previously.
+ // This page only has a touch icon. With disabled touch icons we don't expect any icon to be
+ // shown even if the same icon was loaded previously.
QTRY_COMPARE(iconUrlChangedSpy.count(), 1);
QVERIFY(m_page->iconUrl().toString().isEmpty());
QTRY_COMPARE(iconChangedSpy.count(), 1);
-
}
-QTEST_MAIN(tst_FaviconManager)
+QTEST_MAIN(tst_Favicon)
-#include "tst_faviconmanager.moc"
+#include "tst_favicon.moc"
diff --git a/tests/auto/widgets/faviconmanager/tst_faviconmanager.qrc b/tests/auto/widgets/favicon/tst_favicon.qrc
index a352f8a83..a352f8a83 100644
--- a/tests/auto/widgets/faviconmanager/tst_faviconmanager.qrc
+++ b/tests/auto/widgets/favicon/tst_favicon.qrc
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index 432a91224..170afaafc 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -311,7 +311,8 @@ void tst_QWebEngineView::changePage()
if (!fromIsNullPage) {
QVERIFY(!pageFrom->iconUrl().isEmpty());
QCOMPARE(spyIconUrl.last().value(0).toUrl(), pageFrom->iconUrl());
- QCOMPARE(spyIcon.last().value(0).value<QIcon>(), pageFrom->icon());
+ QCOMPARE(spyIcon.last().value(0).value<QIcon>().availableSizes(),
+ pageFrom->icon().availableSizes());
}
QScopedPointer<QWebEnginePage> pageTo(new QWebEnginePage);
@@ -340,7 +341,8 @@ void tst_QWebEngineView::changePage()
QCOMPARE(pageFrom->iconUrl() == pageTo->iconUrl(), iconIsSame);
if (!iconIsSame) {
QCOMPARE(spyIconUrl.last().value(0).toUrl(), pageTo->iconUrl());
- QCOMPARE(spyIcon.last().value(0).value<QIcon>(), pageTo->icon());
+ QCOMPARE(spyIcon.last().value(0).value<QIcon>().availableSizes(),
+ pageTo->icon().availableSizes());
}
// verify no emits on destroy with the same number of signals in spy