diff --git a/src/test/unittests/deskflow/ClipboardChunkTests.cpp b/src/test/unittests/deskflow/ClipboardChunkTests.cpp deleted file mode 100644 index ea36f3f1f..000000000 --- a/src/test/unittests/deskflow/ClipboardChunkTests.cpp +++ /dev/null @@ -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 - -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; -} diff --git a/src/unittests/deskflow/CMakeLists.txt b/src/unittests/deskflow/CMakeLists.txt index 103acb058..e2092f94a 100644 --- a/src/unittests/deskflow/CMakeLists.txt +++ b/src/unittests/deskflow/CMakeLists.txt @@ -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 diff --git a/src/unittests/deskflow/ClipboardChunksTests.cpp b/src/unittests/deskflow/ClipboardChunksTests.cpp new file mode 100644 index 000000000..dc7218c33 --- /dev/null +++ b/src/unittests/deskflow/ClipboardChunksTests.cpp @@ -0,0 +1,70 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * 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) diff --git a/src/unittests/deskflow/ClipboardChunksTests.h b/src/unittests/deskflow/ClipboardChunksTests.h new file mode 100644 index 000000000..68ac88d63 --- /dev/null +++ b/src/unittests/deskflow/ClipboardChunksTests.h @@ -0,0 +1,17 @@ +/* + * Deskflow -- mouse and keyboard sharing utility + * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello + * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception + */ + +#include + +class ClipboardChunksTests : public QObject +{ + Q_OBJECT +private slots: + // Test are run in order top to bottom + void startFormatData(); + void formatDataChunk(); + void endFormatData(); +};