From d376a9ac28cda9b24c6830cc6ec62efb5bbf14ee Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 8 Aug 2014 06:45:38 +0200 Subject: [PATCH] test for mutating after copying Package objects required and mimetype were not working, and this tests to ensure that doesn't break again --- autotests/CMakeLists.txt | 6 ++++++ autotests/packagestructuretest.cpp | 21 +++++++++++++++++++++ autotests/packagestructuretest.h | 1 + 3 files changed, 28 insertions(+) diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index ab101de38..4e64f38dc 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -12,6 +12,12 @@ find_package(Qt5Widgets REQUIRED) # add_definitions( -DKDESRCDIR=${CMAKE_CURRENT_SOURCE_DIR} ) +if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION) + set(PLASMA_NO_KIO TRUE) + set(PLASMA_NO_PACKAGEKIT TRUE) + set(PLASMA_NO_PACKAGE_EXTRADATA TRUE) +endif() + MACRO(PLASMA_UNIT_TESTS) FOREACH(_testname ${ARGN}) add_executable(${_testname} ${_testname}.cpp) diff --git a/autotests/packagestructuretest.cpp b/autotests/packagestructuretest.cpp index d0852d2f3..a411b0e3b 100644 --- a/autotests/packagestructuretest.cpp +++ b/autotests/packagestructuretest.cpp @@ -65,6 +65,27 @@ void PackageStructureTest::copyPerformance() QVERIFY(t.elapsed() < 400); } +void PackageStructureTest::mutateAfterCopy() +{ + const bool mainscriptRequired = ps.isRequired("mainscript"); + const QStringList imageMimeTypes = ps.mimeTypes("images"); + + Plasma::Package copy(ps); + + copy.setRequired("mainscript", !mainscriptRequired); + QVERIFY(ps.isRequired("mainscript") == mainscriptRequired); + QVERIFY(ps.isRequired("mainscript") != copy.isRequired("mainscript")); + +#ifndef PLASMA_NO_PACKAGE_EXTRADATA + QVERIFY(!imageMimeTypes.isEmpty()); + QStringList copyMimeTypes; + copyMimeTypes << imageMimeTypes.first(); + copy.setMimeTypes("images", copyMimeTypes); + QCOMPARE(ps.mimeTypes("images"), imageMimeTypes); + QCOMPARE(copy.mimeTypes("images"), copyMimeTypes); +#endif +} + void PackageStructureTest::emptyContentsPrefix() { NoPrefixes package; diff --git a/autotests/packagestructuretest.h b/autotests/packagestructuretest.h index 3786be305..81a95ed2d 100644 --- a/autotests/packagestructuretest.h +++ b/autotests/packagestructuretest.h @@ -30,6 +30,7 @@ class PackageStructureTest : public QObject private Q_SLOTS: void initTestCase(); void copyPerformance(); + void mutateAfterCopy(); void emptyContentsPrefix(); void multiplePaths(); void directories();