refactor: port deskflow/ClipboardChunkTests to QtTests

This commit is contained in:
sithlord48
2025-04-05 20:43:03 -04:00
committed by Nick Bolton
parent 29a86cfbac
commit cbcaafe764
4 changed files with 95 additions and 67 deletions

View File

@ -1,67 +0,0 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2015 - 2016 Symless Ltd.
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "deskflow/ClipboardChunk.h"
#include "deskflow/ProtocolTypes.h"
#include <gtest/gtest.h>
TEST(ClipboardChunkTests, start_formatStartChunk)
{
ClipboardID id = 0;
uint32_t sequence = 0;
std::string mockDataSize("10");
ClipboardChunk *chunk = ClipboardChunk::start(id, sequence, mockDataSize);
uint32_t temp_m_chunk;
memcpy(&temp_m_chunk, &(chunk->m_chunk[1]), 4);
EXPECT_EQ(id, chunk->m_chunk[0]);
EXPECT_EQ(sequence, temp_m_chunk);
EXPECT_EQ(kDataStart, chunk->m_chunk[5]);
EXPECT_EQ('1', chunk->m_chunk[6]);
EXPECT_EQ('0', chunk->m_chunk[7]);
EXPECT_EQ('\0', chunk->m_chunk[8]);
delete chunk;
}
TEST(ClipboardChunkTests, data_formatDataChunk)
{
ClipboardID id = 0;
uint32_t sequence = 1;
std::string mockData("mock data");
ClipboardChunk *chunk = ClipboardChunk::data(id, sequence, mockData);
EXPECT_EQ(id, chunk->m_chunk[0]);
EXPECT_EQ(sequence, (uint32_t)chunk->m_chunk[1]);
EXPECT_EQ(kDataChunk, chunk->m_chunk[5]);
EXPECT_EQ('m', chunk->m_chunk[6]);
EXPECT_EQ('o', chunk->m_chunk[7]);
EXPECT_EQ('c', chunk->m_chunk[8]);
EXPECT_EQ('k', chunk->m_chunk[9]);
EXPECT_EQ(' ', chunk->m_chunk[10]);
EXPECT_EQ('d', chunk->m_chunk[11]);
EXPECT_EQ('a', chunk->m_chunk[12]);
EXPECT_EQ('t', chunk->m_chunk[13]);
EXPECT_EQ('a', chunk->m_chunk[14]);
EXPECT_EQ('\0', chunk->m_chunk[15]);
delete chunk;
}
TEST(ClipboardChunkTests, end_formatDataChunk)
{
ClipboardID id = 1;
uint32_t sequence = 1;
ClipboardChunk *chunk = ClipboardChunk::end(id, sequence);
EXPECT_EQ(id, chunk->m_chunk[0]);
EXPECT_EQ(sequence, (uint32_t)chunk->m_chunk[1]);
EXPECT_EQ(kDataEnd, chunk->m_chunk[5]);
EXPECT_EQ('\0', chunk->m_chunk[6]);
delete chunk;
}

View File

@ -13,6 +13,14 @@ create_test(
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow"
)
create_test(
NAME ClipboardChunksTests
DEPENDS app
LIBS arch base io ${extra_libs}
SOURCE ClipboardChunksTests.cpp
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/src/lib/deskflow"
)
create_test(
NAME ConfigTests
DEPENDS app

View File

@ -0,0 +1,70 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-FileCopyrightText: (C) 2015 - 2016 Symless Ltd.
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "ClipboardChunksTests.h"
#include "../../lib/deskflow/ClipboardChunk.h"
#include "deskflow/ProtocolTypes.h"
void ClipboardChunksTests::startFormatData()
{
ClipboardID id = 0;
uint32_t sequence = 0;
std::string mockDataSize("10");
ClipboardChunk *chunk = ClipboardChunk::start(id, sequence, mockDataSize);
uint32_t temp_m_chunk;
memcpy(&temp_m_chunk, &(chunk->m_chunk[1]), 4);
QCOMPARE(chunk->m_chunk[0], id);
QCOMPARE(temp_m_chunk, sequence);
QCOMPARE(chunk->m_chunk[5], kDataStart);
QCOMPARE(chunk->m_chunk[6], '1');
QCOMPARE(chunk->m_chunk[7], '0');
QCOMPARE(chunk->m_chunk[8], '\0');
delete chunk;
}
void ClipboardChunksTests::formatDataChunk()
{
ClipboardID id = 0;
uint32_t sequence = 1;
std::string mockData("mock data");
ClipboardChunk *chunk = ClipboardChunk::data(id, sequence, mockData);
QCOMPARE(chunk->m_chunk[0], id);
QCOMPARE((uint32_t)chunk->m_chunk[1], sequence);
QCOMPARE(chunk->m_chunk[5], kDataChunk);
QCOMPARE(chunk->m_chunk[6], 'm');
QCOMPARE(chunk->m_chunk[7], 'o');
QCOMPARE(chunk->m_chunk[8], 'c');
QCOMPARE(chunk->m_chunk[9], 'k');
QCOMPARE(chunk->m_chunk[10], ' ');
QCOMPARE(chunk->m_chunk[11], 'd');
QCOMPARE(chunk->m_chunk[12], 'a');
QCOMPARE(chunk->m_chunk[13], 't');
QCOMPARE(chunk->m_chunk[14], 'a');
QCOMPARE(chunk->m_chunk[15], '\0');
delete chunk;
}
void ClipboardChunksTests::endFormatData()
{
ClipboardID id = 1;
uint32_t sequence = 1;
ClipboardChunk *chunk = ClipboardChunk::end(id, sequence);
QCOMPARE(chunk->m_chunk[0], id);
QCOMPARE((uint32_t)chunk->m_chunk[1], sequence);
QCOMPARE(chunk->m_chunk[5], kDataEnd);
QCOMPARE(chunk->m_chunk[6], '\0');
delete chunk;
}
QTEST_MAIN(ClipboardChunksTests)

View File

@ -0,0 +1,17 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include <QTest>
class ClipboardChunksTests : public QObject
{
Q_OBJECT
private slots:
// Test are run in order top to bottom
void startFormatData();
void formatDataChunk();
void endFormatData();
};