@@ -2812,3 +2812,67 @@ TEST_F(LooksBlocksTest, SwitchBackdropToAndWait_Stage)
28122812 thread.run ();
28132813 ASSERT_TRUE (thread.isFinished ());
28142814}
2815+
2816+ TEST_F (LooksBlocksTest, NextBackdrop_Sprite)
2817+ {
2818+ auto sprite = std::make_shared<Sprite>();
2819+ auto costume1 = std::make_shared<Costume>(" costume1" , " a" , " png" );
2820+ auto testCostume = std::make_shared<Costume>(" test" , " c" , " svg" );
2821+ sprite->addCostume (costume1);
2822+ sprite->addCostume (testCostume);
2823+
2824+ auto stage = std::make_shared<Stage>();
2825+ auto backdrop1 = std::make_shared<Costume>(" backdrop1" , " a" , " png" );
2826+ auto backdrop2 = std::make_shared<Costume>(" backdrop2" , " b" , " png" );
2827+ auto testBackdrop = std::make_shared<Costume>(" test" , " c" , " svg" );
2828+ stage->addCostume (backdrop1);
2829+ stage->addCostume (backdrop2);
2830+ stage->addCostume (testBackdrop);
2831+
2832+ m_engine->setTargets ({ stage, sprite });
2833+
2834+ ScriptBuilder builder (m_extension.get (), m_engine, sprite);
2835+
2836+ builder.addBlock (" looks_nextbackdrop" );
2837+ builder.build ();
2838+
2839+ sprite->setCostumeIndex (0 );
2840+ stage->setCostumeIndex (0 );
2841+ builder.run ();
2842+ ASSERT_EQ (sprite->costumeIndex (), 0 );
2843+ ASSERT_EQ (stage->costumeIndex (), 1 );
2844+
2845+ builder.run ();
2846+ ASSERT_EQ (sprite->costumeIndex (), 0 );
2847+ ASSERT_EQ (stage->costumeIndex (), 2 );
2848+
2849+ builder.run ();
2850+ ASSERT_EQ (sprite->costumeIndex (), 0 );
2851+ ASSERT_EQ (stage->costumeIndex (), 0 );
2852+ }
2853+
2854+ TEST_F (LooksBlocksTest, NextBackdrop_Stage)
2855+ {
2856+ auto stage = std::make_shared<Stage>();
2857+ auto backdrop1 = std::make_shared<Costume>(" backdrop1" , " a" , " png" );
2858+ auto backdrop2 = std::make_shared<Costume>(" backdrop2" , " b" , " png" );
2859+ auto testBackdrop = std::make_shared<Costume>(" test" , " c" , " svg" );
2860+ stage->addCostume (backdrop1);
2861+ stage->addCostume (backdrop2);
2862+ stage->addCostume (testBackdrop);
2863+
2864+ ScriptBuilder builder (m_extension.get (), m_engine, stage);
2865+
2866+ builder.addBlock (" looks_nextbackdrop" );
2867+ builder.build ();
2868+
2869+ stage->setCostumeIndex (0 );
2870+ builder.run ();
2871+ ASSERT_EQ (stage->costumeIndex (), 1 );
2872+
2873+ builder.run ();
2874+ ASSERT_EQ (stage->costumeIndex (), 2 );
2875+
2876+ builder.run ();
2877+ ASSERT_EQ (stage->costumeIndex (), 0 );
2878+ }
0 commit comments