Skip to content

Commit 8f554c0

Browse files
committed
Add invalid index test for switch costume block
1 parent 5e2d68e commit 8f554c0

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

test/blocks/looks_blocks_test.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,34 @@ TEST_F(LooksBlocksTest, SwitchCostumeTo_NegativeOutOfRangeNumberIndex)
804804
ASSERT_EQ(sprite->costumeIndex(), 1);
805805
}
806806

807+
TEST_F(LooksBlocksTest, SwitchCostumeTo_InvalidNumberIndex)
808+
{
809+
auto sprite = std::make_shared<Sprite>();
810+
auto costume1 = std::make_shared<Costume>("costume1", "a", "png");
811+
auto numberCostume = std::make_shared<Costume>("3", "b", "png");
812+
auto testCostume = std::make_shared<Costume>("test", "c", "svg");
813+
sprite->addCostume(costume1);
814+
sprite->addCostume(numberCostume);
815+
sprite->addCostume(testCostume);
816+
817+
ScriptBuilder builder(m_extension.get(), m_engine, sprite);
818+
819+
builder.addBlock("looks_switchcostumeto");
820+
builder.addValueInput("COSTUME", std::numeric_limits<double>::quiet_NaN());
821+
builder.addBlock("looks_switchcostumeto");
822+
builder.addValueInput("COSTUME", std::numeric_limits<double>::infinity());
823+
builder.addBlock("looks_switchcostumeto");
824+
builder.addValueInput("COSTUME", -std::numeric_limits<double>::infinity());
825+
builder.build();
826+
827+
builder.run();
828+
ASSERT_EQ(sprite->costumeIndex(), 0);
829+
830+
sprite->setCostumeIndex(2);
831+
builder.run();
832+
ASSERT_EQ(sprite->costumeIndex(), 0);
833+
}
834+
807835
TEST_F(LooksBlocksTest, SwitchCostumeTo_StringIndex)
808836
{
809837
auto sprite = std::make_shared<Sprite>();

0 commit comments

Comments
 (0)