collectionmodifytest.cpp 2.79 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
/*
 * Copyright 2015  Daniel Vrátil <dvratil@redhat.com>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License or (at your option) version 3 or any later version
 * accepted by the membership of KDE e.V. (or its successor approved
 * by the membership of KDE e.V.), which shall act as a proxy
 * defined in Section 14 of version 3 of the license.
Laurent Montel's avatar
Laurent Montel committed
11
 *
12
13
14
15
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
Laurent Montel's avatar
Laurent Montel committed
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
Laurent Montel's avatar
Laurent Montel committed
19
 *
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 */

#include "test_utils.h"
#include "collectioncreatejob.h"
#include "collectionfetchjob.h"
#include "collectionmodifyjob.h"
#include "collectiondeletejob.h"
#include "entitydisplayattribute.h"

using namespace Akonadi;

class CollectionModifyTest : public QObject
{
    Q_OBJECT

private Q_SLOTS:
    void initTestCase()
    {
        AkonadiTest::checkTestIsIsolated();
    }

    void testModifyCollection()
    {
        Collection col;
        col.setName(QLatin1String("test_collection"));
        col.setContentMimeTypes({ Collection::mimeType() });
        col.setParentCollection(Collection(collectionIdFromPath(QLatin1String("res1"))));
        col.setRights(Collection::AllRights);

        CollectionCreateJob *cj = new CollectionCreateJob(col, this);
        AKVERIFYEXEC(cj);
        col = cj->collection();
        QVERIFY(col.isValid());

54
        auto attr = col.attribute<EntityDisplayAttribute>(Collection::AddIfMissing);
Laurent Montel's avatar
Laurent Montel committed
55
        attr->setDisplayName(QStringLiteral("Test Collection"));
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
        col.setContentMimeTypes({ Collection::mimeType(), QLatin1String("application/octet-stream") });

        CollectionModifyJob *mj = new CollectionModifyJob(col, this);
        AKVERIFYEXEC(mj);

        CollectionFetchJob *fj = new CollectionFetchJob(col, CollectionFetchJob::Base);
        AKVERIFYEXEC(fj);
        QCOMPARE(fj->collections().count(), 1);
        const Collection actual = fj->collections().at(0);

        QCOMPARE(actual.id(), col.id());
        QCOMPARE(actual.name(), col.name());
        QCOMPARE(actual.displayName(), col.displayName());
        QCOMPARE(actual.contentMimeTypes(), col.contentMimeTypes());
        QCOMPARE(actual.parentCollection(), col.parentCollection());
        QCOMPARE(actual.rights(), col.rights());

        CollectionDeleteJob *dj = new CollectionDeleteJob(col, this);
        AKVERIFYEXEC(dj);
    }
};

QTEST_AKONADIMAIN(CollectionModifyTest)

Laurent Montel's avatar
Laurent Montel committed
80
81
#include "collectionmodifytest.moc"