diff --git a/qt6-after/qt6-migrated-benchmark/CMakeLists.txt b/qt6-after/qt6-migrated-benchmark/CMakeLists.txt index b676520..4c5526a 100644 --- a/qt6-after/qt6-migrated-benchmark/CMakeLists.txt +++ b/qt6-after/qt6-migrated-benchmark/CMakeLists.txt @@ -60,7 +60,7 @@ enable_testing() # Add test executable add_executable(Qt6MigratedBenchmarkTest - tests/test_main.cpp + tests/test_mainwindow.cpp MainWindow.h MainWindow.cpp ) diff --git a/qt6-after/qt6-migrated-benchmark/tests/test_mainwindow.cpp b/qt6-after/qt6-migrated-benchmark/tests/test_mainwindow.cpp new file mode 100644 index 0000000..81e0da8 --- /dev/null +++ b/qt6-after/qt6-migrated-benchmark/tests/test_mainwindow.cpp @@ -0,0 +1,88 @@ +#include "MainWindow.h" + +#include + +class TestMainWindow : public QObject +{ + Q_OBJECT + + private slots: + void testValidateInputValid(); + void testValidateInputInvalid(); + void testValidateInputEmpty(); + void testValidateInputMixedCase(); + void testMainWindowCreation(); + void testWindowTitle(); + void testValidateInputMethod(); + void testGetScreenInfo(); +}; + +void TestMainWindow::testValidateInputValid() +{ + // Test valid input patterns + QRegularExpression pattern(R"(^[A-Za-z]+\d+$)"); + + QVERIFY(pattern.match("Test123").hasMatch()); + QVERIFY(pattern.match("abc456").hasMatch()); + QVERIFY(pattern.match("ABC789").hasMatch()); +} + +void TestMainWindow::testValidateInputInvalid() +{ + // Test invalid input patterns + QRegularExpression pattern(R"(^[A-Za-z]+\d+$)"); + + QVERIFY(!pattern.match("123Test").hasMatch()); + QVERIFY(!pattern.match("Test").hasMatch()); + QVERIFY(!pattern.match("123").hasMatch()); + QVERIFY(!pattern.match("Test123ABC").hasMatch()); + QVERIFY(!pattern.match("Test-123").hasMatch()); +} + +void TestMainWindow::testValidateInputEmpty() +{ + QRegularExpression pattern(R"(^[A-Za-z]+\d+$)"); + QVERIFY(!pattern.match("").hasMatch()); +} + +void TestMainWindow::testValidateInputMixedCase() +{ + QRegularExpression pattern(R"(^[A-Za-z]+\d+$)"); + + QVERIFY(pattern.match("TeSt123").hasMatch()); + QVERIFY(pattern.match("aBcDeF999").hasMatch()); +} + +void TestMainWindow::testMainWindowCreation() +{ + MainWindow window; + QVERIFY(!window.windowTitle().isEmpty()); +} + +void TestMainWindow::testWindowTitle() +{ + MainWindow window; + QCOMPARE(window.windowTitle(), QStringLiteral("Qt6 Legacy Migration Benchmark")); +} + +void TestMainWindow::testValidateInputMethod() +{ + MainWindow window; + + QVERIFY(window.validateInput(QStringLiteral("Test123"))); + QVERIFY(window.validateInput(QStringLiteral("abc456"))); + QVERIFY(!window.validateInput(QStringLiteral("123Test"))); + QVERIFY(!window.validateInput(QStringLiteral(""))); +} + +void TestMainWindow::testGetScreenInfo() +{ + MainWindow window; + QString info = window.getScreenInfo(); + QVERIFY(!info.isEmpty()); + QVERIFY(info.contains(QStringLiteral("Screen:"))); +} + +QTEST_MAIN(TestMainWindow) + +#include "test_main.moc" \ No newline at end of file