Skip to content

Commit a87f884

Browse files
Update test_keyboard.cpp
1 parent 709c2ca commit a87f884

File tree

1 file changed

+104
-65
lines changed

1 file changed

+104
-65
lines changed

code/tests/cases/test_keyboard.cpp

Lines changed: 104 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -15,113 +15,152 @@
1515

1616
#include "fossil/io/framework.h"
1717

18+
1819
// * * * * * * * * * * * * * * * * * * * * * * * *
19-
// * Fossil Logic Test Utilites
20+
// * Fossil Logic Test Utilities
2021
// * * * * * * * * * * * * * * * * * * * * * * * *
2122
// Setup steps for things like test fixtures and
2223
// mock objects are set here.
2324
// * * * * * * * * * * * * * * * * * * * * * * * *
2425

25-
// Define the test suite and add test cases
26-
FOSSIL_TEST_SUITE(cpp_keyboard_suite);
26+
FOSSIL_TEST_SUITE(cpp_device_suite);
2727

28-
// Setup function for the test suite
29-
FOSSIL_SETUP(cpp_keyboard_suite) {
30-
// Setup code here
28+
FOSSIL_SETUP(cpp_device_suite) {
29+
// Setup for all device tests (keyboard, mouse, touch)
3130
}
3231

33-
// Teardown function for the test suite
34-
FOSSIL_TEARDOWN(cpp_keyboard_suite) {
35-
// Teardown code here
32+
FOSSIL_TEARDOWN(cpp_device_suite) {
33+
// Teardown for device tests
3634
}
3735

3836
// * * * * * * * * * * * * * * * * * * * * * * * *
39-
// * Fossil Logic Test Cases
40-
// * * * * * * * * * * * * * * * * * * * * * * * *
41-
// The test cases below are provided as samples, inspired
42-
// by the Meson build system's approach of using test cases
43-
// as samples for library usage.
37+
// * Fossil Logic Test Cases — Keyboard Class
4438
// * * * * * * * * * * * * * * * * * * * * * * * *
4539

46-
FOSSIL_TEST_CASE(cpp_test_keyboard_register_unregister_binding) {
40+
FOSSIL_TEST_CASE(cpp_test_keyboard_register_and_unregister) {
41+
fossil::io::Keyboard keyboard;
4742
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
48-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
43+
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)0x1;
4944

50-
fossil_io_keyboard_register_binding(event, callback);
51-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
45+
keyboard.register_binding(event, callback);
46+
ASSUME_NOT_CNULL(callback);
5247

53-
fossil_io_keyboard_unregister_binding(event);
54-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
48+
keyboard.unregister_binding(event);
49+
ASSUME_NOT_CNULL(callback);
5550
}
5651

5752
FOSSIL_TEST_CASE(cpp_test_keyboard_clear_bindings) {
58-
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
59-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
53+
fossil::io::Keyboard keyboard;
54+
fossil_io_keyboard_event_t event = { 'b', 0, 0, 0 };
55+
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)0x1;
6056

61-
fossil_io_keyboard_register_binding(event, callback);
62-
fossil_io_keyboard_clear_bindings();
63-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
57+
keyboard.register_binding(event, callback);
58+
keyboard.clear_bindings();
59+
ASSUME_NOT_CNULL(callback);
6460
}
6561

6662
FOSSIL_TEST_CASE(cpp_test_keyboard_poll_events) {
67-
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
68-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
63+
fossil::io::Keyboard keyboard;
64+
fossil_io_keyboard_event_t event = { 'c', 0, 0, 0 };
65+
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)0x1;
6966

70-
fossil_io_keyboard_register_binding(event, callback);
71-
fossil_io_keyboard_poll_events();
72-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
73-
fossil_io_keyboard_unregister_binding(event);
67+
keyboard.register_binding(event, callback);
68+
keyboard.poll_events();
69+
keyboard.unregister_binding(event);
7470
}
7571

76-
FOSSIL_TEST_CASE(cpp_test_keyboard_class_register_unregister_binding) {
77-
fossil::io::keyboard::init();
78-
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
79-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
72+
// * * * * * * * * * * * * * * * * * * * * * * * *
73+
// * Fossil Logic Test Cases — Mouse Class
74+
// * * * * * * * * * * * * * * * * * * * * * * * *
75+
76+
FOSSIL_TEST_CASE(cpp_test_mouse_register_and_unregister) {
77+
fossil::io::Mouse mouse;
78+
fossil_io_mouse_event_t event = { 1, 100, 200, 0 };
79+
fossil_io_mouse_callback_t callback = (fossil_io_mouse_callback_t)0x2;
8080

81-
fossil::io::keyboard::register_binding(event, callback);
82-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
81+
mouse.register_binding(event, callback);
82+
ASSUME_NOT_CNULL(callback);
8383

84-
fossil::io::keyboard::unregister_binding(event);
85-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
86-
fossil::io::keyboard::shutdown();
84+
mouse.unregister_binding(event);
85+
ASSUME_NOT_CNULL(callback);
8786
}
8887

89-
FOSSIL_TEST_CASE(cpp_test_keyboard_class_clear_bindings) {
90-
fossil::io::keyboard::init();
91-
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
92-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
88+
FOSSIL_TEST_CASE(cpp_test_mouse_clear_bindings) {
89+
fossil::io::Mouse mouse;
90+
fossil_io_mouse_event_t event = { 2, 150, 250, 0 };
91+
fossil_io_mouse_callback_t callback = (fossil_io_mouse_callback_t)0x2;
9392

94-
fossil::io::keyboard::register_binding(event, callback);
95-
fossil::io::keyboard::clear_bindings();
96-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
97-
fossil::io::keyboard::shutdown();
93+
mouse.register_binding(event, callback);
94+
mouse.clear_bindings();
95+
ASSUME_NOT_CNULL(callback);
9896
}
9997

100-
FOSSIL_TEST_CASE(cpp_test_keyboard_class_poll_events) {
101-
fossil::io::keyboard::init();
102-
fossil_io_keyboard_event_t event = { 'a', 0, 0, 0 };
103-
fossil_io_keyboard_callback_t callback = (fossil_io_keyboard_callback_t)1; // Assuming a valid callback function
98+
FOSSIL_TEST_CASE(cpp_test_mouse_poll_events) {
99+
fossil::io::Mouse mouse;
100+
fossil_io_mouse_event_t event = { 3, 120, 180, 0 };
101+
fossil_io_mouse_callback_t callback = (fossil_io_mouse_callback_t)0x2;
104102

105-
fossil::io::keyboard::register_binding(event, callback);
106-
fossil::io::keyboard::poll_events();
107-
ASSUME_NOT_CNULL(callback); // Assumption on pointer
108-
fossil::io::keyboard::unregister_binding(event);
109-
fossil::io::keyboard::shutdown();
103+
mouse.register_binding(event, callback);
104+
mouse.poll_events();
105+
mouse.unregister_binding(event);
110106
}
111107

108+
// * * * * * * * * * * * * * * * * * * * * * * * *
109+
// * Fossil Logic Test Cases — Touch Class
110+
// * * * * * * * * * * * * * * * * * * * * * * * *
111+
112+
FOSSIL_TEST_CASE(cpp_test_touch_register_and_unregister) {
113+
fossil::io::Touch touch;
114+
fossil_io_touch_event_t event = { 0, 400, 300, 0 };
115+
fossil_io_touch_callback_t callback = (fossil_io_touch_callback_t)0x3;
116+
117+
touch.register_binding(event, callback);
118+
ASSUME_NOT_CNULL(callback);
119+
120+
touch.unregister_binding(event);
121+
ASSUME_NOT_CNULL(callback);
122+
}
123+
124+
FOSSIL_TEST_CASE(cpp_test_touch_clear_bindings) {
125+
fossil::io::Touch touch;
126+
fossil_io_touch_event_t event = { 1, 500, 600, 0 };
127+
fossil_io_touch_callback_t callback = (fossil_io_touch_callback_t)0x3;
128+
129+
touch.register_binding(event, callback);
130+
touch.clear_bindings();
131+
ASSUME_NOT_CNULL(callback);
132+
}
133+
134+
FOSSIL_TEST_CASE(cpp_test_touch_poll_events) {
135+
fossil::io::Touch touch;
136+
fossil_io_touch_event_t event = { 2, 700, 800, 0 };
137+
fossil_io_touch_callback_t callback = (fossil_io_touch_callback_t)0x3;
138+
139+
touch.register_binding(event, callback);
140+
touch.poll_events();
141+
touch.unregister_binding(event);
142+
}
112143

113144
// * * * * * * * * * * * * * * * * * * * * * * * *
114145
// * Fossil Logic Test Pool
115146
// * * * * * * * * * * * * * * * * * * * * * * * *
116147

117-
FOSSIL_TEST_GROUP(cpp_keyboard_tests) {
118-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_register_unregister_binding);
119-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_clear_bindings);
120-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_poll_events);
148+
FOSSIL_TEST_GROUP(cpp_device_tests) {
149+
// Keyboard
150+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_keyboard_register_and_unregister);
151+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_keyboard_clear_bindings);
152+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_keyboard_poll_events);
153+
154+
// Mouse
155+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_mouse_register_and_unregister);
156+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_mouse_clear_bindings);
157+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_mouse_poll_events);
121158

122-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_class_register_unregister_binding);
123-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_class_clear_bindings);
124-
FOSSIL_TEST_ADD(cpp_keyboard_suite, cpp_test_keyboard_class_poll_events);
159+
// Touch
160+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_touch_register_and_unregister);
161+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_touch_clear_bindings);
162+
FOSSIL_TEST_ADD(cpp_device_suite, cpp_test_touch_poll_events);
125163

126-
FOSSIL_TEST_REGISTER(cpp_keyboard_suite);
164+
// Register the test suite
165+
FOSSIL_TEST_REGISTER(cpp_device_suite);
127166
}

0 commit comments

Comments
 (0)