Warning, file /frameworks/karchive/autotests/klimitediodevicetest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2009 Pino Toscano <pino@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "klimitediodevicetest.h" 0008 0009 #include "klimitediodevice_p.h" 0010 0011 #include <QTest> 0012 0013 QTEST_MAIN(KLimitedIODeviceTest) 0014 0015 void KLimitedIODeviceTest::addChunk(const QByteArray &chunk) 0016 { 0017 ChunkData cd; 0018 cd.data = chunk; 0019 cd.offset = m_chunks.isEmpty() ? 0 : m_chunks.last().offset + m_chunks.last().data.size(); 0020 m_chunks.append(cd); 0021 m_data.append(chunk); 0022 } 0023 0024 void KLimitedIODeviceTest::initTestCase() 0025 { 0026 addChunk("Test of string"); 0027 addChunk("second part of the large buffer"); 0028 addChunk("... which will be used to test the KLimitedIODevice"); 0029 0030 m_buffer.setBuffer(&m_data); 0031 m_buffer.open(QIODevice::ReadOnly); 0032 } 0033 0034 void KLimitedIODeviceTest::testReadChunks_data() 0035 { 0036 QTest::addColumn<int>("index"); 0037 0038 for (int i = 0; i < m_chunks.count(); ++i) { 0039 const ChunkData &d = m_chunks.at(i); 0040 QTest::newRow(d.data.constData()) << i; 0041 } 0042 } 0043 0044 void KLimitedIODeviceTest::testReadChunks() 0045 { 0046 QFETCH(int, index); 0047 0048 const ChunkData &chunk = m_chunks.at(index); 0049 0050 KLimitedIODevice dev(&m_buffer, chunk.offset, chunk.data.size()); 0051 QVERIFY(dev.isOpen()); 0052 QCOMPARE(dev.readAll(), chunk.data); 0053 } 0054 0055 void KLimitedIODeviceTest::testSeeking() 0056 { 0057 const ChunkData &chunk = m_chunks.at(2); 0058 0059 KLimitedIODevice dev(&m_buffer, chunk.offset, chunk.data.size()); 0060 QVERIFY(dev.seek(dev.size() - 16)); 0061 QCOMPARE(dev.readAll(), chunk.data.right(16)); 0062 QVERIFY(dev.seek(0)); 0063 QCOMPARE(dev.readAll(), chunk.data); 0064 } 0065 0066 #include "moc_klimitediodevicetest.cpp"