File indexing completed on 2024-06-09 04:23:53

0001 /*
0002  * SPDX-FileCopyrightText: 2017 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include "TestMemoryStorage.h"
0008 #include <simpletest.h>
0009 
0010 #include <KisMemoryStorage.h>
0011 #include <KoResource.h>
0012 
0013 #include "DummyResource.h"
0014 #include "ResourceTestHelper.h"
0015 
0016 #ifndef FILES_DATA_DIR
0017 #error "FILES_DATA_DIR not set. A directory with the data used for testing installing resources"
0018 #endif
0019 
0020 void TestMemoryStorage::initTestCase()
0021 {
0022     ResourceTestHelper::createDummyLoaderRegistry();
0023 }
0024 
0025 void TestMemoryStorage ::testStorage()
0026 {
0027     KisMemoryStorage memoryStorage;
0028     KoResourceSP resource(new DummyResource("test.gbr", ResourceType::Brushes));
0029     memoryStorage.saveAsNewVersion(ResourceType::Brushes, resource);
0030 
0031     QSharedPointer<KisResourceStorage::ResourceIterator> iter = memoryStorage.resources(ResourceType::Brushes);
0032     QVERIFY(iter->hasNext());
0033     int count = 0;
0034     while (iter->hasNext()) {
0035         iter->next();
0036         QVERIFY(iter->resource());
0037         count++;
0038     }
0039     QCOMPARE(count, 1);
0040 }
0041 
0042 void TestMemoryStorage ::testStorageRetrieval()
0043 {
0044     KisMemoryStorage memoryStorage;
0045     KoResourceSP resource1(new DummyResource("test1.gbr", ResourceType::Brushes));
0046     memoryStorage.saveAsNewVersion(ResourceType::Brushes, resource1);
0047     KoResourceSP resource2(new DummyResource("test2.gbr", ResourceType::Brushes));
0048     memoryStorage.saveAsNewVersion(ResourceType::Brushes, resource2);
0049 
0050     QString url = QString("brushes/test1.0000.gbr");
0051     KoResourceSP resource = memoryStorage.resource(url);
0052     QVERIFY(resource);
0053     QCOMPARE(resource->filename(), "test1.0000.gbr");
0054 }
0055 
0056 
0057 void TestMemoryStorage::testAddResource()
0058 {
0059     KisMemoryStorage memoryStorage;
0060     KoResourceSP res1(new DummyResource("test1.gbr", ResourceType::Brushes));
0061     memoryStorage.saveAsNewVersion(ResourceType::Brushes, res1);
0062 
0063     ResourceTestHelper::testVersionedStorage(memoryStorage, ResourceType::Brushes, "brushes/test1.0000.gbr");
0064     ResourceTestHelper::testVersionedStorageIterator(memoryStorage, ResourceType::Brushes, "brushes/test1.0000.gbr");
0065 }
0066 
0067 SIMPLE_TEST_MAIN(TestMemoryStorage)
0068