@@ -706,6 +706,67 @@ TEST(EngineTest, WhenKeyPressed)
706706 ASSERT_EQ (GET_VAR (stage, " 4_pressed" )->value ().toInt (), 1 );
707707}
708708
709+ TEST (EngineTest, MouseWheel)
710+ {
711+ Project p (" mouse_wheel.sb3" );
712+ ASSERT_TRUE (p.load ());
713+
714+ auto engine = p.engine ();
715+
716+ Stage *stage = engine->stage ();
717+ ASSERT_TRUE (stage);
718+
719+ // Initial state
720+ ASSERT_VAR (stage, " up" );
721+ ASSERT_EQ (GET_VAR (stage, " up" )->value ().toInt (), 0 );
722+ ASSERT_VAR (stage, " down" );
723+ ASSERT_EQ (GET_VAR (stage, " down" )->value ().toInt (), 0 );
724+ ASSERT_VAR (stage, " any" );
725+ ASSERT_EQ (GET_VAR (stage, " any" )->value ().toInt (), 0 );
726+
727+ // Up
728+ engine->mouseWheelUp ();
729+ ASSERT_FALSE (engine->keyPressed (" up arrow" ));
730+ engine->step ();
731+ ASSERT_VAR (stage, " up" );
732+ ASSERT_EQ (GET_VAR (stage, " up" )->value ().toInt (), 1 );
733+ ASSERT_VAR (stage, " down" );
734+ ASSERT_EQ (GET_VAR (stage, " down" )->value ().toInt (), 0 );
735+ ASSERT_VAR (stage, " any" );
736+ ASSERT_EQ (GET_VAR (stage, " any" )->value ().toInt (), 0 );
737+
738+ engine->mouseWheelUp ();
739+ ASSERT_FALSE (engine->keyPressed (" up arrow" ));
740+ engine->step ();
741+ ASSERT_VAR (stage, " up" );
742+ ASSERT_EQ (GET_VAR (stage, " up" )->value ().toInt (), 2 );
743+ ASSERT_VAR (stage, " down" );
744+ ASSERT_EQ (GET_VAR (stage, " down" )->value ().toInt (), 0 );
745+ ASSERT_VAR (stage, " any" );
746+ ASSERT_EQ (GET_VAR (stage, " any" )->value ().toInt (), 0 );
747+
748+ // Down
749+ engine->mouseWheelDown ();
750+ ASSERT_FALSE (engine->keyPressed (" down arrow" ));
751+ engine->step ();
752+ ASSERT_VAR (stage, " up" );
753+ ASSERT_EQ (GET_VAR (stage, " up" )->value ().toInt (), 2 );
754+ ASSERT_VAR (stage, " down" );
755+ ASSERT_EQ (GET_VAR (stage, " down" )->value ().toInt (), 1 );
756+ ASSERT_VAR (stage, " any" );
757+ ASSERT_EQ (GET_VAR (stage, " any" )->value ().toInt (), 0 );
758+
759+ engine->mouseWheelDown ();
760+ ASSERT_FALSE (engine->keyPressed (" down arrow" ));
761+ engine->step ();
762+ ASSERT_VAR (stage, " up" );
763+ ASSERT_EQ (GET_VAR (stage, " up" )->value ().toInt (), 2 );
764+ ASSERT_VAR (stage, " down" );
765+ ASSERT_EQ (GET_VAR (stage, " down" )->value ().toInt (), 2 );
766+ ASSERT_VAR (stage, " any" );
767+ ASSERT_EQ (GET_VAR (stage, " any" )->value ().toInt (), 0 );
768+ }
769+
709770TEST (EngineTest, MouseX)
710771{
711772 Engine engine;
0 commit comments