diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/EventTest.cpp | 39 | ||||
| -rw-r--r-- | src/test/InputTest.cpp | 47 | 
2 files changed, 53 insertions, 33 deletions
diff --git a/src/test/EventTest.cpp b/src/test/EventTest.cpp index 4a4872d..53c2469 100644 --- a/src/test/EventTest.cpp +++ b/src/test/EventTest.cpp @@ -63,16 +63,15 @@ TEST_F(EventManagerTest, EventManagerTest_trigger_all_channels) {  	EventHandler<MouseClickEvent> mouse_handler = [&](const MouseClickEvent & e) {  		triggered = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false;  	};  	EventManager::get_instance().subscribe<MouseClickEvent>(mouse_handler,  															EventManager::CHANNEL_ALL); -	MouseClickEvent click_event{ -		.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}; +	MouseClickEvent click_event{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE};  	EventManager::get_instance().trigger_event<MouseClickEvent>(click_event,  																EventManager::CHANNEL_ALL); @@ -83,15 +82,14 @@ TEST_F(EventManagerTest, EventManagerTest_trigger_one_channel) {  	int test_channel = 1;  	EventHandler<MouseClickEvent> mouse_handler = [&](const MouseClickEvent & e) {  		triggered = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false;  	};  	EventManager::get_instance().subscribe<MouseClickEvent>(mouse_handler, test_channel); -	MouseClickEvent click_event{ -		.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}; +	MouseClickEvent click_event{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE};  	EventManager::get_instance().trigger_event<MouseClickEvent>(click_event,  																EventManager::CHANNEL_ALL); @@ -109,23 +107,22 @@ TEST_F(EventManagerTest, EventManagerTest_callback_propagation) {  	// Handlers  	EventHandler<MouseClickEvent> mouse_handler_true = [&](const MouseClickEvent & e) {  		triggered_true = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return true; // Stops propagation  	};  	EventHandler<MouseClickEvent> mouse_handler_false = [&](const MouseClickEvent & e) {  		triggered_false = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false; // Allows propagation  	};  	// Test event -	MouseClickEvent click_event{ -		.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}; +	MouseClickEvent click_event{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE};  	event_manager.subscribe<MouseClickEvent>(mouse_handler_true, EventManager::CHANNEL_ALL);  	event_manager.subscribe<MouseClickEvent>(mouse_handler_false, EventManager::CHANNEL_ALL); @@ -201,16 +198,16 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) {  	// Define EventHandlers  	EventHandler<MouseClickEvent> mouse_handler1 = [&](const MouseClickEvent & e) {  		triggered1 = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false; // Allows propagation  	};  	EventHandler<MouseClickEvent> mouse_handler2 = [&](const MouseClickEvent & e) {  		triggered2 = true; -		EXPECT_EQ(e.mouse_x, 100); -		EXPECT_EQ(e.mouse_y, 200); +		EXPECT_EQ(e.mouse_pos.x, 100); +		EXPECT_EQ(e.mouse_pos.y, 200);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false; // Allows propagation  	}; @@ -220,7 +217,7 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) {  	// Queue events  	event_manager.queue_event<MouseClickEvent>( -		MouseClickEvent{.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}); +		MouseClickEvent{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE});  	// Dispatch events - both handlers should be triggered  	event_manager.dispatch_events(); @@ -236,7 +233,7 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) {  	// Queue the same event again  	event_manager.queue_event<MouseClickEvent>( -		MouseClickEvent{.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}); +		MouseClickEvent{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE});  	// Dispatch events - only handler 2 should be triggered, handler 1 should NOT  	event_manager.dispatch_events(); @@ -251,7 +248,7 @@ TEST_F(EventManagerTest, EventManagerTest_unsubscribe) {  	// Queue the event again  	event_manager.queue_event<MouseClickEvent>( -		MouseClickEvent{.mouse_x = 100, .mouse_y = 200, .button = MouseButton::LEFT_MOUSE}); +		MouseClickEvent{.mouse_pos = {100,200}, .button = MouseButton::LEFT_MOUSE});  	// Dispatch events - no handler should be triggered  	event_manager.dispatch_events(); diff --git a/src/test/InputTest.cpp b/src/test/InputTest.cpp index 73eaab3..7d4a017 100644 --- a/src/test/InputTest.cpp +++ b/src/test/InputTest.cpp @@ -1,4 +1,7 @@  #include <gtest/gtest.h> + +#include <iostream> +  #define protected public  #define private public  #include "api/KeyCodes.h" @@ -32,8 +35,6 @@ public:  protected:  	void SetUp() override { -		mediator.event_manager = event_manager; -		mediator.component_manager = mgr;  		event_manager.clear();  	} @@ -67,8 +68,8 @@ TEST_F(InputTest, MouseDown) {  	EventHandler<MousePressEvent> on_mouse_down = [&](const MousePressEvent & event) {  		mouse_triggered = true;  		//middle of the screen = 0,0 -		EXPECT_EQ(event.mouse_x, 0); -		EXPECT_EQ(event.mouse_y, 0); +		EXPECT_EQ(event.mouse_pos.x, 0); +		EXPECT_EQ(event.mouse_pos.y, 0);  		EXPECT_EQ(event.button, MouseButton::LEFT_MOUSE);  		return false;  	}; @@ -96,8 +97,8 @@ TEST_F(InputTest, MouseUp) {  	bool function_triggered = false;  	EventHandler<MouseReleaseEvent> on_mouse_release = [&](const MouseReleaseEvent & e) {  		function_triggered = true; -		EXPECT_EQ(e.mouse_x, 0); -		EXPECT_EQ(e.mouse_y, 0); +		EXPECT_EQ(e.mouse_pos.x, 0); +		EXPECT_EQ(e.mouse_pos.y, 0);  		EXPECT_EQ(e.button, MouseButton::LEFT_MOUSE);  		return false;  	}; @@ -124,10 +125,10 @@ TEST_F(InputTest, MouseMove) {  	bool function_triggered = false;  	EventHandler<MouseMoveEvent> on_mouse_move = [&](const MouseMoveEvent & e) {  		function_triggered = true; -		EXPECT_EQ(e.mouse_x, 0); -		EXPECT_EQ(e.mouse_y, 0); -		EXPECT_EQ(e.delta_x, 10); -		EXPECT_EQ(e.delta_y, 10); +		EXPECT_EQ(e.mouse_pos.x, 0); +		EXPECT_EQ(e.mouse_pos.y, 0); +		EXPECT_EQ(e.mouse_delta.x, 10); +		EXPECT_EQ(e.mouse_delta.y, 10);  		return false;  	};  	event_manager.subscribe<MouseMoveEvent>(on_mouse_move); @@ -210,8 +211,8 @@ TEST_F(InputTest, MouseClick) {  	EventHandler<MouseClickEvent> on_mouse_click = [&](const MouseClickEvent & event) {  		on_click_triggered = true;  		EXPECT_EQ(event.button, MouseButton::LEFT_MOUSE); -		EXPECT_EQ(event.mouse_x, 0); -		EXPECT_EQ(event.mouse_y, 0); +		EXPECT_EQ(event.mouse_pos.x, 0); +		EXPECT_EQ(event.mouse_pos.y, 0);  		return false;  	};  	event_manager.subscribe<MouseClickEvent>(on_mouse_click); @@ -291,3 +292,25 @@ TEST_F(InputTest, testButtonHover) {  	event_manager.dispatch_events();  	EXPECT_TRUE(button.hover);  } + +TEST_F(InputTest, WindowResizeTest) { +	bool callback_triggered = false; +	EventHandler<WindowResizeEvent> on_window_resize = [&](const WindowResizeEvent & event) { +		std::cout << "test callback" << std::endl; +		callback_triggered = true; +		EXPECT_EQ(event.dimensions.x, 0); +		EXPECT_EQ(event.dimensions.y, 0); +		return false; +	}; +	event_manager.subscribe<WindowResizeEvent>(on_window_resize); +	SDL_Event resize_event; +    SDL_zero(resize_event); +    resize_event.type = SDL_WINDOWEVENT; +    resize_event.window.event = SDL_WINDOWEVENT_RESIZED; +    resize_event.window.data1 = 800; // new width +    resize_event.window.data2 = 600; // new height +    SDL_PushEvent(&resize_event); +	input_system.update(); +	event_manager.dispatch_events(); +	EXPECT_TRUE(callback_triggered); +}  |