From 551b83b280bf83137e0c8ceefad59558bfe9e03e Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 14 Jun 2021 16:11:54 +0200 Subject: Stop using Widgets in WebEngineCore tests With QWebEnginePage in Core we can now make the core tests core-only. Add the same times moves tests from widgets that only uses core classes. Change-Id: I67a25b534912d9a0891e16b0419f0db9bf434e92 Reviewed-by: Peter Varga (cherry picked from commit b8c48ee53009365a39d9dde1f6773048ec5ee4a0) Reviewed-by: Qt Cherry-pick Bot --- tests/auto/core/devtools/tst_devtools.cpp | 87 +++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 tests/auto/core/devtools/tst_devtools.cpp (limited to 'tests/auto/core/devtools/tst_devtools.cpp') diff --git a/tests/auto/core/devtools/tst_devtools.cpp b/tests/auto/core/devtools/tst_devtools.cpp new file mode 100644 index 000000000..3026b3931 --- /dev/null +++ b/tests/auto/core/devtools/tst_devtools.cpp @@ -0,0 +1,87 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWebEngine module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +#include + +class tst_DevTools : public QObject { + Q_OBJECT + +private Q_SLOTS: + void attachAndDestroyPageFirst(); + void attachAndDestroyInspectorFirst(); +}; + +void tst_DevTools::attachAndDestroyPageFirst() +{ + // External inspector + manual destruction of page first + QWebEnginePage* page = new QWebEnginePage(); + QWebEnginePage* inspector = new QWebEnginePage(); + + QSignalSpy spy(page, &QWebEnginePage::loadFinished); + page->load(QUrl("data:text/plain,foobarbaz")); + QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 12000); + + inspector->setInspectedPage(page); + page->triggerAction(QWebEnginePage::InspectElement); + + // This is deliberately racy: + QTest::qWait(10); + + delete page; + delete inspector; +} + +void tst_DevTools::attachAndDestroyInspectorFirst() +{ + // External inspector + manual destruction of inspector first + QWebEnginePage* page = new QWebEnginePage(); + QWebEnginePage* inspector = new QWebEnginePage(); + inspector->setInspectedPage(page); + + QSignalSpy spy(page, &QWebEnginePage::loadFinished); + page->setHtml(QStringLiteral("

FOO BAR!

")); + QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 12000); + + page->triggerAction(QWebEnginePage::InspectElement); + + delete inspector; + + page->triggerAction(QWebEnginePage::InspectElement); + + // This is deliberately racy: + QTest::qWait(10); + + delete page; +} + + +QTEST_MAIN(tst_DevTools) + +#include "tst_devtools.moc" -- cgit v1.2.3