@@ -108,6 +108,7 @@ TEST_F(LooksBlocksTest, RegisterBlocks)
108108 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_hide" , &LooksBlocks::compileHide));
109109 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_changeeffectby" , &LooksBlocks::compileChangeEffectBy));
110110 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_seteffectto" , &LooksBlocks::compileSetEffectTo));
111+ EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_cleargraphiceffects" , &LooksBlocks::compileClearGraphicEffects));
111112 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_changesizeby" , &LooksBlocks::compileChangeSizeBy));
112113 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_setsizeto" , &LooksBlocks::compileSetSizeTo));
113114 EXPECT_CALL (m_engineMock, addCompileFunction (m_section.get (), " looks_size" , &LooksBlocks::compileSize));
@@ -785,6 +786,43 @@ TEST_F(LooksBlocksTest, SetEffectToImpl)
785786 ASSERT_EQ(sprite.graphicsEffectValue(ScratchConfiguration::getGraphicsEffect("ghost")), 0.01);*/
786787}
787788
789+ TEST_F (LooksBlocksTest, ClearGraphicEffects)
790+ {
791+ Compiler compiler (&m_engineMock);
792+
793+ auto block = std::make_shared<Block>(" a" , " looks_cleargraphiceffects" );
794+
795+ EXPECT_CALL (m_engineMock, functionIndex (&LooksBlocks::clearGraphicEffects)).WillOnce (Return (0 ));
796+
797+ compiler.init ();
798+ compiler.setBlock (block);
799+ LooksBlocks::compileClearGraphicEffects (&compiler);
800+ compiler.end ();
801+
802+ ASSERT_EQ (compiler.bytecode (), std::vector<unsigned int >({ vm::OP_START, vm::OP_EXEC, 0 , vm::OP_HALT }));
803+ ASSERT_TRUE (compiler.constValues ().empty ());
804+ }
805+
806+ TEST_F (LooksBlocksTest, ClearGraphicEffectsImpl)
807+ {
808+ static unsigned int bytecode[] = { vm::OP_START, vm::OP_EXEC, 0 , vm::OP_HALT };
809+ static BlockFunc functions[] = { &LooksBlocks::clearGraphicEffects };
810+
811+ Sprite sprite;
812+ GraphicsEffectMock effect1, effect2;
813+ sprite.setGraphicsEffectValue (&effect1, 48.21 );
814+ sprite.setGraphicsEffectValue (&effect2, -107.08 );
815+
816+ VirtualMachine vm (&sprite, nullptr , nullptr );
817+ vm.setBytecode (bytecode);
818+ vm.setFunctions (functions);
819+ vm.run ();
820+
821+ ASSERT_EQ (vm.registerCount (), 0 );
822+ ASSERT_EQ (sprite.graphicsEffectValue (&effect1), 0 );
823+ ASSERT_EQ (sprite.graphicsEffectValue (&effect2), 0 );
824+ }
825+
788826TEST_F (LooksBlocksTest, ChangeSizeBy)
789827{
790828 Compiler compiler (&m_engineMock);
0 commit comments