From 9b8c1020f2752ab5095086577ab98fa80926c43d Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 13 Jul 2016 17:28:15 +0200 Subject: Add View Source API and make the feature available from context menu [ChangeLog][QtWebEngineQML][QQuickWebEngineView] View Source feature is now supported [ChangeLog][QtWebEngineWidgets][QWebEnginePage] View Source feature is now supported Change-Id: Icc16da71fc6ec95880897fc9744dd8be8c004e00 Reviewed-by: Allan Sandfeld Jensen --- tests/auto/quick/qmltests/data/tst_viewSource.qml | 93 +++++++++++++++++++++++ tests/auto/quick/qmltests/qmltests.pro | 1 + 2 files changed, 94 insertions(+) create mode 100644 tests/auto/quick/qmltests/data/tst_viewSource.qml (limited to 'tests/auto/quick/qmltests') diff --git a/tests/auto/quick/qmltests/data/tst_viewSource.qml b/tests/auto/quick/qmltests/data/tst_viewSource.qml new file mode 100644 index 000000000..7c7dd34e0 --- /dev/null +++ b/tests/auto/quick/qmltests/data/tst_viewSource.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtTest 1.0 +import QtWebEngine 1.4 + +TestWebEngineView { + id: webEngineView + width: 200 + height: 400 + + property var viewRequest: null + + SignalSpy { + id: newViewRequestedSpy + target: webEngineView + signalName: "newViewRequested" + } + + SignalSpy { + id: titleChangedSpy + target: webEngineView + signalName: "titleChanged" + } + + onNewViewRequested: { + viewRequest = { + "destination": request.destination, + "userInitiated": request.userInitiated + }; + + request.openIn(webEngineView); + } + + TestCase { + id: test + name: "WebEngineViewSource" + + function init() { + newViewRequestedSpy.clear(); + titleChangedSpy.clear(); + viewRequest = null; + } + + function test_viewSource() { + webEngineView.url = Qt.resolvedUrl("test1.html"); + verify(webEngineView.waitForLoadSucceeded()); + compare(webEngineView.title, "Test page 1"); + verify(webEngineView.canViewSource, true); + + titleChangedSpy.clear(); + webEngineView.viewSource(); + tryCompare(newViewRequestedSpy, "count", 1); + verify(webEngineView.waitForLoadSucceeded()); + // The first titleChanged signal is emitted by adoptWebContents() + tryCompare(titleChangedSpy, "count", 2); + + compare(viewRequest.destination, WebEngineView.NewViewInTab); + verify(viewRequest.userInitiated); + verify(!webEngineView.canViewSource); + + compare(webEngineView.title, "test1.html"); + compare(webEngineView.url, "view-source:" + Qt.resolvedUrl("test1.html")); + } + } +} + diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro index 0158a7268..abb0a86fb 100644 --- a/tests/auto/quick/qmltests/qmltests.pro +++ b/tests/auto/quick/qmltests/qmltests.pro @@ -63,6 +63,7 @@ OTHER_FILES += \ $$PWD/data/tst_titleChanged.qml \ $$PWD/data/tst_unhandledKeyEventPropagation.qml \ $$PWD/data/tst_userScripts.qml \ + $$PWD/data/tst_viewSource.qml \ $$PWD/data/tst_webchannel.qml \ $$PWD/data/tst_settings.qml \ $$PWD/data/tst_keyboardModifierMapping.qml \ -- cgit v1.2.3