From 550186ed78a023374239c1f8494188db030f035d Mon Sep 17 00:00:00 2001 From: Arttu Tarkiainen Date: Fri, 17 Apr 2020 16:25:25 +0300 Subject: Add possibility to accept licenses from CLI License agreements can be accepted automatically by using command line option --accept-licenses or interactively by answering queries with either "Accept", "Reject" or "Show" selections. Task-number: QTIFW-1742 Task-number: QTIFW-1745 Change-Id: Iff46b44f91faddb7f163b299994167ab16df68b3 Reviewed-by: Katja Marttila --- tests/auto/installer/installer.pro | 3 +- .../data/repository/A/1.0.2-1meta.7z | Bin 0 -> 11570 bytes .../licenseagreement/data/repository/Updates.xml | 16 +++++ .../licenseagreement/licenseagreement.pro | 10 +++ tests/auto/installer/licenseagreement/settings.qrc | 6 ++ .../licenseagreement/tst_licenseagreement.cpp | 72 +++++++++++++++++++++ 6 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 tests/auto/installer/licenseagreement/data/repository/A/1.0.2-1meta.7z create mode 100644 tests/auto/installer/licenseagreement/data/repository/Updates.xml create mode 100644 tests/auto/installer/licenseagreement/licenseagreement.pro create mode 100644 tests/auto/installer/licenseagreement/settings.qrc create mode 100644 tests/auto/installer/licenseagreement/tst_licenseagreement.cpp (limited to 'tests') diff --git a/tests/auto/installer/installer.pro b/tests/auto/installer/installer.pro index ecba4f9bb..81def2f76 100644 --- a/tests/auto/installer/installer.pro +++ b/tests/auto/installer/installer.pro @@ -34,7 +34,8 @@ SUBDIRS += \ copydirectoryoperation \ commandlineupdate \ moveoperation \ - environmentvariableoperation + environmentvariableoperation \ + licenseagreement win32 { SUBDIRS += registerfiletypeoperation \ diff --git a/tests/auto/installer/licenseagreement/data/repository/A/1.0.2-1meta.7z b/tests/auto/installer/licenseagreement/data/repository/A/1.0.2-1meta.7z new file mode 100644 index 000000000..d473ac487 Binary files /dev/null and b/tests/auto/installer/licenseagreement/data/repository/A/1.0.2-1meta.7z differ diff --git a/tests/auto/installer/licenseagreement/data/repository/Updates.xml b/tests/auto/installer/licenseagreement/data/repository/Updates.xml new file mode 100644 index 000000000..2afd2a741 --- /dev/null +++ b/tests/auto/installer/licenseagreement/data/repository/Updates.xml @@ -0,0 +1,16 @@ + + {AnyApplication} + 1.0.0 + false + + A + A + Example component A + 1.0.2-1 + 2015-01-01 + true + + + + + diff --git a/tests/auto/installer/licenseagreement/licenseagreement.pro b/tests/auto/installer/licenseagreement/licenseagreement.pro new file mode 100644 index 000000000..1d8c3c451 --- /dev/null +++ b/tests/auto/installer/licenseagreement/licenseagreement.pro @@ -0,0 +1,10 @@ +include(../../qttest.pri) + +QT -= gui +QT += testlib + +SOURCES += tst_licenseagreement.cpp + +RESOURCES += \ + settings.qrc \ + ..\shared\config.qrc diff --git a/tests/auto/installer/licenseagreement/settings.qrc b/tests/auto/installer/licenseagreement/settings.qrc new file mode 100644 index 000000000..d030220ab --- /dev/null +++ b/tests/auto/installer/licenseagreement/settings.qrc @@ -0,0 +1,6 @@ + + + data/repository/Updates.xml + data/repository/A/1.0.2-1meta.7z + + diff --git a/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp b/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp new file mode 100644 index 000000000..fad2faf0b --- /dev/null +++ b/tests/auto/installer/licenseagreement/tst_licenseagreement.cpp @@ -0,0 +1,72 @@ +/************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Installer Framework. +** +** $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 +#include +#include +#include + +#include +#include +#include + +using namespace KDUpdater; +using namespace QInstaller; + +class tst_licenseagreement : public QObject +{ + Q_OBJECT + +private slots: + void testAutoAcceptFromCLI() + { + QInstaller::init(); //This will eat debug output + PackageManagerCore *core = new PackageManagerCore(BinaryContent::MagicInstallerMarker, QList ()); + QSet repoList; + Repository repo = Repository::fromUserInput(":///data/repository"); + repoList.insert(repo); + core->settings().setDefaultRepositories(repoList); + + QString installDir = QInstaller::generateTemporaryFileName(); + QDir().mkpath(installDir); + core->setValue(scTargetDir, installDir); + core->setAutoAcceptLicenses(); + core->installDefaultComponentsSilently(); + + QFile file(installDir + "/Licenses/gpl3.txt"); + QVERIFY(file.exists()); + QDir dir(installDir); + QVERIFY(dir.removeRecursively()); + core->deleteLater(); + } +}; + +QTEST_MAIN(tst_licenseagreement) + +#include "tst_licenseagreement.moc" -- cgit v1.2.3