Remove QUrl::topLevelDomain

And move the actual implementation from corelib/io to network/kernel
sub-module.

Fixes: QTBUG-80308
Change-Id: I554b05bae3552c68e1e1a405c169366ee19120b2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Timur Pocheptsov 2020-02-12 14:09:29 +01:00
parent ba50d27e76
commit 4f076db3d2
19 changed files with 67 additions and 153 deletions

View File

@ -72,12 +72,10 @@ qt_add_module(Core
io/qstorageinfo.cpp io/qstorageinfo.h io/qstorageinfo_p.h
io/qtemporarydir.cpp io/qtemporarydir.h
io/qtemporaryfile.cpp io/qtemporaryfile.h io/qtemporaryfile_p.h
io/qtldurl.cpp io/qtldurl_p.h
io/qurl.cpp io/qurl.h io/qurl_p.h
io/qurlidna.cpp
io/qurlquery.cpp io/qurlquery.h
io/qurlrecode.cpp
io/qurltlds_p.h
itemmodels/qabstractitemmodel.cpp itemmodels/qabstractitemmodel.h itemmodels/qabstractitemmodel_p.h
itemmodels/qitemselectionmodel.cpp itemmodels/qitemselectionmodel.h itemmodels/qitemselectionmodel_p.h
kernel/qabstracteventdispatcher.cpp kernel/qabstracteventdispatcher.h kernel/qabstracteventdispatcher_p.h
@ -803,7 +801,7 @@ qt_extend_target(Core CONDITION WINRT
kernel/qfunctions_winrt.cpp kernel/qfunctions_winrt.h
)
qt_extend_target(Core CONDITION UNIX AND NOT APPLE_UIKIT AND NOT INTEGRITY AND NOT rtems
qt_extend_target(Core CONDITION QT_FEATURE_process AND UNIX
SOURCES
../3rdparty/forkfd/forkfd.h
io/forkfd_qt.cpp

View File

@ -90,12 +90,10 @@ qt_add_module(Core
io/qstorageinfo.cpp io/qstorageinfo.h io/qstorageinfo_p.h
io/qtemporarydir.cpp io/qtemporarydir.h
io/qtemporaryfile.cpp io/qtemporaryfile.h io/qtemporaryfile_p.h
io/qtldurl.cpp io/qtldurl_p.h
io/qurl.cpp io/qurl.h io/qurl_p.h
io/qurlidna.cpp
io/qurlquery.cpp io/qurlquery.h
io/qurlrecode.cpp
io/qurltlds_p.h
itemmodels/qabstractitemmodel.cpp itemmodels/qabstractitemmodel.h itemmodels/qabstractitemmodel_p.h
itemmodels/qitemselectionmodel.cpp itemmodels/qitemselectionmodel.h itemmodels/qitemselectionmodel_p.h
kernel/qabstracteventdispatcher.cpp kernel/qabstracteventdispatcher.h kernel/qabstracteventdispatcher_p.h
@ -903,7 +901,7 @@ qt_extend_target(Core CONDITION WINRT
kernel/qfunctions_winrt.cpp kernel/qfunctions_winrt.h
)
qt_extend_target(Core CONDITION UNIX AND NOT APPLE_UIKIT AND NOT INTEGRITY AND NOT rtems
qt_extend_target(Core CONDITION QT_FEATURE_process AND UNIX
SOURCES
../3rdparty/forkfd/forkfd.h
io/forkfd_qt.cpp

View File

@ -761,7 +761,7 @@ qt_feature("process" PUBLIC
SECTION "File I/O"
LABEL "QProcess"
PURPOSE "Supports external process invocation."
CONDITION QT_FEATURE_processenvironment AND NOT WINRT AND NOT APPLE_UIKIT AND NOT INTEGRITY AND NOT VXWORKS AND NOT rtems
CONDITION QT_FEATURE_processenvironment AND ( QT_FEATURE_thread OR NOT UNIX ) AND NOT WINRT AND NOT APPLE_UIKIT AND NOT INTEGRITY AND NOT VXWORKS AND NOT rtems
)
qt_feature_definition("process" "QT_NO_PROCESS" NEGATE VALUE "1")
qt_feature("processenvironment" PUBLIC
@ -955,11 +955,6 @@ qt_feature("etw" PRIVATE
ENABLE INPUT_trace STREQUAL 'etw' OR ( INPUT_trace STREQUAL 'yes' AND WIN32 )
DISABLE INPUT_trace STREQUAL 'lttng' OR INPUT_trace STREQUAL 'no'
)
qt_feature("topleveldomain" PUBLIC
SECTION "Utilities"
LABEL "QUrl::topLevelDomain()"
PURPOSE "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie."
)
qt_feature("win32_system_libs"
LABEL "Windows System Libraries"
CONDITION WIN32 AND libs.advapi32 AND libs.gdi32 AND libs.kernel32 AND libs.netapi32 AND libs.ole32 AND libs.shell32 AND libs.uuid AND libs.user32 AND libs.winmm AND libs.ws2_32 OR FIXME

View File

@ -1096,12 +1096,6 @@
"condition": "config.win32",
"output": [ "privateFeature" ]
},
"topleveldomain": {
"label": "QUrl::topLevelDomain()",
"purpose": "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie.",
"section": "Utilities",
"output": [ "publicFeature" ]
},
"win32_system_libs": {
"label": "Windows System Libraries",
"condition": "config.win32 && libs.advapi32 && libs.gdi32 && libs.kernel32 && libs.netapi32 && libs.ole32 && libs.shell32 && libs.uuid && libs.user32 && libs.winmm && libs.ws2_32"

View File

@ -32,8 +32,6 @@ HEADERS += \
io/qurl.h \
io/qurl_p.h \
io/qurlquery.h \
io/qurltlds_p.h \
io/qtldurl_p.h \
io/qfsfileengine_p.h \
io/qfsfileengine_iterator_p.h \
io/qfilesystementry_p.h \
@ -49,7 +47,6 @@ SOURCES += \
io/qabstractfileengine.cpp \
io/qbuffer.cpp \
io/qdataurl.cpp \
io/qtldurl.cpp \
io/qdebug.cpp \
io/qdir.cpp \
io/qdiriterator.cpp \

View File

@ -415,9 +415,6 @@
#include "qhash.h"
#include "qdir.h" // for QDir::fromNativeSeparators
#include "qdatastream.h"
#if QT_CONFIG(topleveldomain) // ### Qt6: Remove section
#include "qtldurl_p.h"
#endif
#include "private/qipaddress_p.h"
#include "qurlquery.h"
#include "private/qdir_p.h"
@ -3149,46 +3146,6 @@ bool QUrl::hasFragment() const
return d->hasFragment();
}
#if QT_DEPRECATED_SINCE(5, 15)
#if QT_CONFIG(topleveldomain)
/*!
\since 4.8
\deprecated
Returns the TLD (Top-Level Domain) of the URL, (e.g. .co.uk, .net).
Note that the return value is prefixed with a '.' unless the
URL does not contain a valid TLD, in which case the function returns
an empty string.
Note that this function considers a TLD to be any domain that allows users
to register subdomains under, including many home, dynamic DNS websites and
blogging providers. This is useful for determining whether two websites
belong to the same infrastructure and communication should be allowed, such
as browser cookies: two domains should be considered part of the same
website if they share at least one label in addition to the value
returned by this function.
\list
\li \c{foo.co.uk} and \c{foo.com} do not share a top-level domain
\li \c{foo.co.uk} and \c{bar.co.uk} share the \c{.co.uk} domain, but the next label is different
\li \c{www.foo.co.uk} and \c{ftp.foo.co.uk} share the same top-level domain and one more label,
so they are considered part of the same site
\endlist
If \a options includes EncodeUnicode, the returned string will be in
ASCII Compatible Encoding.
*/
QString QUrl::topLevelDomain(ComponentFormattingOptions options) const
{
QString tld = qTopLevelDomain(host());
if (options & EncodeUnicode) {
return qt_ACE_do(tld, ToAceOnly, AllowLeadingDot);
}
return tld;
}
#endif
#endif // QT_DEPRECATED_SINCE(5, 15)
/*!
Returns the result of the merge of this URL with \a relative. This
URL is used as a base to convert \a relative to an absolute URL.

View File

@ -233,11 +233,6 @@ public:
void setHost(const QString &host, ParsingMode mode = DecodedMode);
QString host(ComponentFormattingOptions = FullyDecoded) const;
#if QT_DEPRECATED_SINCE(5, 15)
#if QT_CONFIG(topleveldomain)
QT_DEPRECATED QString topLevelDomain(ComponentFormattingOptions options = FullyDecoded) const;
#endif
#endif // QT_DEPRECATED_SINCE(5, 15)
void setPort(int port);
int port(int defaultPort = -1) const;

View File

@ -5,7 +5,6 @@
#####################################################################
qt_add_module(Network
PLUGIN_TYPES bearer
SOURCES
access/qabstractnetworkcache.cpp access/qabstractnetworkcache.h access/qabstractnetworkcache_p.h
access/qhsts.cpp access/qhsts_p.h
@ -25,14 +24,6 @@ qt_add_module(Network
access/qnetworkreplyfileimpl.cpp access/qnetworkreplyfileimpl_p.h
access/qnetworkreplyimpl.cpp access/qnetworkreplyimpl_p.h
access/qnetworkrequest.cpp access/qnetworkrequest.h access/qnetworkrequest_p.h
bearer/qbearerengine.cpp bearer/qbearerengine_p.h
bearer/qbearerengine_impl_p.h
bearer/qbearerplugin.cpp bearer/qbearerplugin_p.h
bearer/qnetworkconfigmanager.cpp bearer/qnetworkconfigmanager.h bearer/qnetworkconfigmanager_p.cpp bearer/qnetworkconfigmanager_p.h
bearer/qnetworkconfiguration.cpp bearer/qnetworkconfiguration.h bearer/qnetworkconfiguration_p.h
bearer/qnetworksession.cpp bearer/qnetworksession.h bearer/qnetworksession_p.h
bearer/qnetworksession_impl.cpp bearer/qnetworksession_impl_p.h
bearer/qsharednetworksession.cpp bearer/qsharednetworksession_p.h
kernel/qauthenticator.cpp kernel/qauthenticator.h kernel/qauthenticator_p.h
kernel/qhostaddress.cpp kernel/qhostaddress.h kernel/qhostaddress_p.h
kernel/qhostinfo.cpp kernel/qhostinfo.h kernel/qhostinfo_p.h
@ -92,6 +83,18 @@ if(ANDROID AND (QT_FEATURE_bearermanagement))
)
endif()
qt_extend_target(Network CONDITION QT_FEATURE_bearermanagement
SOURCES
bearer/qbearerengine.cpp bearer/qbearerengine_p.h
bearer/qbearerengine_impl_p.h
bearer/qbearerplugin.cpp bearer/qbearerplugin_p.h
bearer/qnetworkconfigmanager.cpp bearer/qnetworkconfigmanager.h bearer/qnetworkconfigmanager_p.cpp bearer/qnetworkconfigmanager_p.h
bearer/qnetworkconfiguration.cpp bearer/qnetworkconfiguration.h bearer/qnetworkconfiguration_p.h
bearer/qnetworksession.cpp bearer/qnetworksession.h bearer/qnetworksession_p.h
bearer/qnetworksession_impl.cpp bearer/qnetworksession_impl_p.h
bearer/qsharednetworksession.cpp bearer/qsharednetworksession_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_ftp
SOURCES
access/qftp.cpp access/qftp_p.h
@ -144,6 +147,12 @@ qt_extend_target(Network CONDITION QT_FEATURE_http
socket/qhttpsocketengine.cpp socket/qhttpsocketengine_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_topleveldomain
SOURCES
kernel/qtldurl.cpp kernel/qtldurl_p.h
kernel/qurltlds_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_dnslookup
SOURCES
kernel/qdnslookup.cpp kernel/qdnslookup.h kernel/qdnslookup_p.h

View File

@ -18,7 +18,6 @@ endif()
#####################################################################
qt_add_module(Network
PLUGIN_TYPES bearer
SOURCES
access/qabstractnetworkcache.cpp access/qabstractnetworkcache.h access/qabstractnetworkcache_p.h
access/qhsts.cpp access/qhsts_p.h
@ -38,14 +37,6 @@ qt_add_module(Network
access/qnetworkreplyfileimpl.cpp access/qnetworkreplyfileimpl_p.h
access/qnetworkreplyimpl.cpp access/qnetworkreplyimpl_p.h
access/qnetworkrequest.cpp access/qnetworkrequest.h access/qnetworkrequest_p.h
bearer/qbearerengine.cpp bearer/qbearerengine_p.h
bearer/qbearerengine_impl_p.h
bearer/qbearerplugin.cpp bearer/qbearerplugin_p.h
bearer/qnetworkconfigmanager.cpp bearer/qnetworkconfigmanager.h bearer/qnetworkconfigmanager_p.cpp bearer/qnetworkconfigmanager_p.h
bearer/qnetworkconfiguration.cpp bearer/qnetworkconfiguration.h bearer/qnetworkconfiguration_p.h
bearer/qnetworksession.cpp bearer/qnetworksession.h bearer/qnetworksession_p.h
bearer/qnetworksession_impl.cpp bearer/qnetworksession_impl_p.h
bearer/qsharednetworksession.cpp bearer/qsharednetworksession_p.h
kernel/qauthenticator.cpp kernel/qauthenticator.h kernel/qauthenticator_p.h
kernel/qhostaddress.cpp kernel/qhostaddress.h kernel/qhostaddress_p.h
kernel/qhostinfo.cpp kernel/qhostinfo.h kernel/qhostinfo_p.h
@ -105,6 +96,18 @@ if(ANDROID AND (QT_FEATURE_bearermanagement))
)
endif()
qt_extend_target(Network CONDITION QT_FEATURE_bearermanagement
SOURCES
bearer/qbearerengine.cpp bearer/qbearerengine_p.h
bearer/qbearerengine_impl_p.h
bearer/qbearerplugin.cpp bearer/qbearerplugin_p.h
bearer/qnetworkconfigmanager.cpp bearer/qnetworkconfigmanager.h bearer/qnetworkconfigmanager_p.cpp bearer/qnetworkconfigmanager_p.h
bearer/qnetworkconfiguration.cpp bearer/qnetworkconfiguration.h bearer/qnetworkconfiguration_p.h
bearer/qnetworksession.cpp bearer/qnetworksession.h bearer/qnetworksession_p.h
bearer/qnetworksession_impl.cpp bearer/qnetworksession_impl_p.h
bearer/qsharednetworksession.cpp bearer/qsharednetworksession_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_ftp
SOURCES
access/qftp.cpp access/qftp_p.h
@ -157,6 +160,12 @@ qt_extend_target(Network CONDITION QT_FEATURE_http
socket/qhttpsocketengine.cpp socket/qhttpsocketengine_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_topleveldomain
SOURCES
kernel/qtldurl.cpp kernel/qtldurl_p.h
kernel/qurltlds_p.h
)
qt_extend_target(Network CONDITION QT_FEATURE_dnslookup
SOURCES
kernel/qdnslookup.cpp kernel/qdnslookup.h kernel/qdnslookup_p.h

View File

@ -358,3 +358,8 @@ qt_feature("netlistmgr" PRIVATE
PURPOSE "Use Network List Manager to keep track of network connectivity"
CONDITION WIN32 AND TEST_netlistmgr
)
qt_feature("topleveldomain" PUBLIC
SECTION "Networking"
LABEL "qTopLevelDomain()"
PURPOSE "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie."
)

View File

@ -431,6 +431,12 @@
"section": "Networking",
"condition": "config.win32 && tests.netlistmgr",
"output": [ "privateFeature" ]
},
"topleveldomain": {
"label": "qTopLevelDomain()",
"purpose": "Provides support for extracting the top level domain from URLs. If enabled, a binary dump of the Public Suffix List (http://www.publicsuffix.org, Mozilla License) is included. The data is then also used in QNetworkCookieJar::validateCookie.",
"section": "Networking",
"output": [ "publicFeature" ]
}
},

View File

@ -26,6 +26,13 @@ SOURCES += kernel/qauthenticator.cpp \
kernel/qnetworkinterface.cpp \
kernel/qnetworkproxy.cpp
qtConfig(topleveldomain) {
HEADERS += kernel/qurltlds_p.h \
kernel/qtldurl_p.h
SOURCES += kernel/qtldurl.cpp
}
qtConfig(ftp) {
HEADERS += kernel/qurlinfo_p.h
SOURCES += kernel/qurlinfo.cpp

View File

@ -39,6 +39,8 @@
#include <qglobal.h>
#include <QtNetwork/private/qtnetworkglobal_p.h>
#if QT_CONFIG(topleveldomain)
#include "qplatformdefs.h"
@ -92,7 +94,7 @@ static bool containsTLDEntry(QStringView entry, TLDMatchType match)
\a domain.
*/
Q_CORE_EXPORT QString qTopLevelDomain(const QString &domain)
Q_NETWORK_EXPORT QString qTopLevelDomain(const QString &domain)
{
const QString domainLower = domain.toLower();
QVector<QStringRef> sections = domainLower.splitRef(QLatin1Char('.'), QString::SkipEmptyParts);
@ -114,7 +116,7 @@ Q_CORE_EXPORT QString qTopLevelDomain(const QString &domain)
Return true if \a domain is a top-level-domain per Qt's copy of the Mozilla public suffix list.
*/
Q_CORE_EXPORT bool qIsEffectiveTLD(const QStringRef &domain)
Q_NETWORK_EXPORT bool qIsEffectiveTLD(const QStringRef &domain)
{
// for domain 'foo.bar.com':
// 1. return if TLD table contains 'foo.bar.com'

View File

@ -3,7 +3,7 @@
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtCore module of the Qt Toolkit.
** This file is part of the QtNetwork module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
@ -51,7 +51,7 @@
// We mean it.
//
#include <QtCore/private/qglobal_p.h>
#include <QtNetwork/private/qtnetworkglobal_p.h>
#include "QtCore/qurl.h"
#include "QtCore/qstring.h"
@ -59,8 +59,8 @@ QT_REQUIRE_CONFIG(topleveldomain);
QT_BEGIN_NAMESPACE
Q_CORE_EXPORT QString qTopLevelDomain(const QString &domain);
Q_CORE_EXPORT bool qIsEffectiveTLD(const QStringRef &domain);
Q_NETWORK_EXPORT QString qTopLevelDomain(const QString &domain);
Q_NETWORK_EXPORT bool qIsEffectiveTLD(const QStringRef &domain);
inline bool qIsEffectiveTLD(const QString &domain)
{
return qIsEffectiveTLD(QStringRef(&domain));

View File

@ -52,7 +52,7 @@
// We mean it.
//
#include <QtCore/private/qglobal_p.h>
#include <QtNetwork/private/qtnetworkglobal_p.h>
QT_BEGIN_NAMESPACE

View File

@ -48,8 +48,6 @@ class tst_QUrl : public QObject
private slots:
void initTestCase();
void cleanupTestCase();
void effectiveTLDs_data();
void effectiveTLDs();
void getSetCheck();
void constructing();
void hashInPath();
@ -3387,61 +3385,6 @@ void tst_QUrl::acceptEmptyAuthoritySegments()
QCOMPARE(QUrl(file_uni_bar, QUrl::StrictMode).toString(), file_triple_bar);
}
void tst_QUrl::effectiveTLDs_data()
{
// See also: tst_QNetworkCookieJar::setCookiesFromUrl().
// in tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
QTest::addColumn<QUrl>("domain");
QTest::addColumn<QString>("TLD");
// TODO: autogenerate test-cases from:
// https://raw.githubusercontent.com/publicsuffix/list/master/tests/test_psl.txt
// checkPublicSuffix(domain, tail) appears in the list if
// either tail is null and domain is public or
// tail is the "registrable" part of domain; i.e. its minimal non-public tail.
QTest::newRow("yes0") << QUrl::fromEncoded("http://test.co.uk") << ".co.uk";
QTest::newRow("yes1") << QUrl::fromEncoded("http://test.com") << ".com";
QTest::newRow("yes2") << QUrl::fromEncoded("http://www.test.de") << ".de";
QTest::newRow("yes3") << QUrl::fromEncoded("http://test.ulm.museum") << ".ulm.museum";
QTest::newRow("yes4") << QUrl::fromEncoded("http://www.com.krodsherad.no") << ".krodsherad.no";
QTest::newRow("yes5") << QUrl::fromEncoded("http://www.co.uk.1.bg") << ".1.bg";
QTest::newRow("yes6") << QUrl::fromEncoded("http://www.com.com.cn") << ".com.cn";
QTest::newRow("yes7") << QUrl::fromEncoded("http://www.test.org.ws") << ".org.ws";
QTest::newRow("yes9") << QUrl::fromEncoded("http://www.com.co.uk.wallonie.museum") << ".wallonie.museum";
QTest::newRow("yes10") << QUrl::fromEncoded("http://www.com.evje-og-hornnes.no") << ".evje-og-hornnes.no";
QTest::newRow("yes11") << QUrl::fromEncoded("http://www.bla.kamijima.ehime.jp") << ".kamijima.ehime.jp";
QTest::newRow("yes12") << QUrl::fromEncoded("http://www.bla.kakuda.miyagi.jp") << ".kakuda.miyagi.jp";
QTest::newRow("yes13") << QUrl::fromEncoded("http://mypage.betainabox.com") << ".betainabox.com";
QTest::newRow("yes14") << QUrl::fromEncoded("http://mypage.rhcloud.com") << ".rhcloud.com";
QTest::newRow("yes15") << QUrl::fromEncoded("http://mypage.int.az") << ".int.az";
QTest::newRow("yes16") << QUrl::fromEncoded("http://anything.pagespeedmobilizer.com") << ".pagespeedmobilizer.com";
QTest::newRow("yes17") << QUrl::fromEncoded("http://anything.eu-central-1.compute.amazonaws.com") << ".eu-central-1.compute.amazonaws.com";
QTest::newRow("yes18") << QUrl::fromEncoded("http://anything.ltd.hk") << ".ltd.hk";
QTest::newRow("trentino.it")
<< QUrl::fromEncoded("http://any.thing.trentino.it") << ".trentino.it";
QTest::newRow("net.ni") << QUrl::fromEncoded("http://test.net.ni") << ".net.ni";
QTest::newRow("dyn.cosidns.de")
<< QUrl::fromEncoded("http://test.dyn.cosidns.de") << ".dyn.cosidns.de";
QTest::newRow("freeddns.org")
<< QUrl::fromEncoded("http://test.freeddns.org") << ".freeddns.org";
QTest::newRow("app.os.stg.fedoraproject.org")
<< QUrl::fromEncoded("http://test.app.os.stg.fedoraproject.org")
<< ".app.os.stg.fedoraproject.org";
QTest::newRow("development.run") << QUrl::fromEncoded("http://test.development.run") << ".development.run";
QTest::newRow("crafting.xyz") << QUrl::fromEncoded("http://test.crafting.xyz") << ".crafting.xyz";
QTest::newRow("nym.ie") << QUrl::fromEncoded("http://shamus.nym.ie") << ".nym.ie";
QTest::newRow("vapor.cloud") << QUrl::fromEncoded("http://test.vapor.cloud") << ".vapor.cloud";
QTest::newRow("official.academy") << QUrl::fromEncoded("http://acredited.official.academy") << ".official.academy";
}
void tst_QUrl::effectiveTLDs()
{
QFETCH(QUrl, domain);
QFETCH(QString, TLD);
QCOMPARE(domain.topLevelDomain(QUrl::PrettyDecoded), TLD);
QCOMPARE(domain.topLevelDomain(QUrl::FullyDecoded), TLD);
}
void tst_QUrl::lowercasesScheme()
{
QUrl url;

View File

@ -30,7 +30,6 @@
#include <QtCore/QUrl>
#include <QtTest/QtTest>
#include "private/qtldurl_p.h"
#include "private/qurl_p.h"
// For testsuites

View File

@ -191,6 +191,6 @@ int main(int argc, char **argv)
outFile.write(chunks.join(", ").toLatin1());
outFile.write("};\n");
outFile.close();
printf("Data generated to %s - now revise qtbase/src/corelib/io/qurltlds_p.h to use this data.\n", argv[2]);
printf("Data generated to %s - now revise qtbase/src/network/kernel/qurltlds_p.h to use this data.\n", argv[2]);
return 0;
}