Skip to content

Commit 19a343b

Browse files
committed
Add KeyEventHandler test
1 parent 26db0eb commit 19a343b

File tree

4 files changed

+50
-3
lines changed

4 files changed

+50
-3
lines changed

ScratchCPPGui/keyeventhandler.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ class KeyEventHandler : public QObject
1313
public:
1414
explicit KeyEventHandler(QObject *parent = nullptr);
1515

16+
bool eventFilter(QObject *obj, QEvent *event) override;
17+
1618
signals:
1719
void keyPressed(Qt::Key key, const QString &text);
1820
void keyReleased(Qt::Key key, const QString &text);
19-
20-
protected:
21-
bool eventFilter(QObject *obj, QEvent *event) override;
2221
};
2322

2423
} // namespace scratchcppgui

test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ add_subdirectory(renderedtarget)
2525
add_subdirectory(targetpainter)
2626
add_subdirectory(target_models)
2727
add_subdirectory(projectscene)
28+
add_subdirectory(keyeventhandler)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
add_executable(
2+
keyeventhandler_test
3+
keyeventhandler_test.cpp
4+
)
5+
6+
target_link_libraries(
7+
keyeventhandler_test
8+
GTest::gtest_main
9+
libscratchcpp-gui
10+
${QT_LIBS}
11+
Qt6::Test
12+
)
13+
14+
add_test(keyeventhandler_test)
15+
gtest_discover_tests(keyeventhandler_test)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <QtTest/QSignalSpy>
2+
#include <QKeyEvent>
3+
#include <keyeventhandler.h>
4+
5+
#include "../common.h"
6+
7+
using namespace scratchcppgui;
8+
9+
TEST(KeyEventHandlerTest, EventFilter)
10+
{
11+
KeyEventHandler handler;
12+
QSignalSpy keyPressedSpy(&handler, &KeyEventHandler::keyPressed);
13+
QSignalSpy keyReleasedSpy(&handler, &KeyEventHandler::keyReleased);
14+
15+
{
16+
QKeyEvent event(QEvent::KeyPress, Qt::Key_Space, Qt::ShiftModifier | Qt::AltModifier, " ", true, 1);
17+
handler.eventFilter(nullptr, &event);
18+
ASSERT_EQ(keyPressedSpy.count(), 1);
19+
ASSERT_EQ(keyReleasedSpy.count(), 0);
20+
keyPressedSpy.clear();
21+
keyReleasedSpy.clear();
22+
}
23+
24+
{
25+
QKeyEvent event(QEvent::KeyRelease, Qt::Key_Space, Qt::ShiftModifier | Qt::AltModifier, " ", true, 1);
26+
handler.eventFilter(nullptr, &event);
27+
ASSERT_EQ(keyPressedSpy.count(), 0);
28+
ASSERT_EQ(keyReleasedSpy.count(), 1);
29+
keyPressedSpy.clear();
30+
keyReleasedSpy.clear();
31+
}
32+
}

0 commit comments

Comments
 (0)