33#include < scratchcpp/project.h>
44#include < scratchcpp/sprite.h>
55#include < scratchcpp/stage.h>
6+ #include < scratchcpp/textbubble.h>
67#include < scratchcpp/variable.h>
78#include < scratchcpp/list.h>
89#include < scratchcpp/keyevent.h>
@@ -1246,27 +1247,49 @@ TEST(EngineTest, MoveDrawableToFront)
12461247 engine.moveDrawableToFront (sprites[2 ]);
12471248 ASSERT_EQ (sprites[0 ]->layerOrder (), 1 );
12481249 ASSERT_EQ (sprites[1 ]->layerOrder (), 4 );
1249- ASSERT_EQ (sprites[2 ]->layerOrder (), 5 );
1250+ ASSERT_EQ (sprites[2 ]->layerOrder (), 11 );
12501251 ASSERT_EQ (sprites[3 ]->layerOrder (), 3 );
12511252 ASSERT_EQ (sprites[4 ]->layerOrder (), 2 );
1253+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 6 );
1254+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 7 );
1255+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 8 );
1256+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 9 );
1257+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 10 );
12521258
12531259 for (int i = 0 ; i < 2 ; i++) {
12541260 engine.moveDrawableToFront (sprites[0 ]);
1255- ASSERT_EQ (sprites[0 ]->layerOrder (), 5 );
1261+ ASSERT_EQ (sprites[0 ]->layerOrder (), 11 );
12561262 ASSERT_EQ (sprites[1 ]->layerOrder (), 3 );
1257- ASSERT_EQ (sprites[2 ]->layerOrder (), 4 );
1263+ ASSERT_EQ (sprites[2 ]->layerOrder (), 10 );
12581264 ASSERT_EQ (sprites[3 ]->layerOrder (), 2 );
12591265 ASSERT_EQ (sprites[4 ]->layerOrder (), 1 );
1266+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 5 );
1267+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 6 );
1268+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 7 );
1269+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 8 );
1270+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 9 );
12601271 }
12611272
1273+ engine.moveDrawableToFront (sprites[0 ]->bubble ());
1274+ ASSERT_EQ (sprites[0 ]->layerOrder (), 10 );
1275+ ASSERT_EQ (sprites[1 ]->layerOrder (), 3 );
1276+ ASSERT_EQ (sprites[2 ]->layerOrder (), 9 );
1277+ ASSERT_EQ (sprites[3 ]->layerOrder (), 2 );
1278+ ASSERT_EQ (sprites[4 ]->layerOrder (), 1 );
1279+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 11 );
1280+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 5 );
1281+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 6 );
1282+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 7 );
1283+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 8 );
1284+
12621285 auto stage = std::make_shared<Stage>();
12631286 stage->setLayerOrder (0 );
12641287 auto sprite = std::make_shared<Sprite>();
12651288 sprite->setLayerOrder (1 );
12661289
12671290 engine.setTargets ({ stage, sprite });
12681291 engine.moveDrawableToFront (sprite.get ());
1269- ASSERT_EQ (sprite->layerOrder (), 1 );
1292+ ASSERT_EQ (sprite->layerOrder (), 3 );
12701293}
12711294
12721295TEST (EngineTest, MoveDrawableToBack)
@@ -1281,6 +1304,11 @@ TEST(EngineTest, MoveDrawableToBack)
12811304 ASSERT_EQ (sprites[2 ]->layerOrder (), 1 );
12821305 ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
12831306 ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1307+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1308+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1309+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1310+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1311+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
12841312
12851313 for (int i = 0 ; i < 1 ; i++) {
12861314 engine.moveDrawableToBack (sprites[1 ]);
@@ -1289,8 +1317,25 @@ TEST(EngineTest, MoveDrawableToBack)
12891317 ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
12901318 ASSERT_EQ (sprites[3 ]->layerOrder (), 5 );
12911319 ASSERT_EQ (sprites[4 ]->layerOrder (), 4 );
1320+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1321+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1322+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1323+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1324+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
12921325 }
12931326
1327+ engine.moveDrawableToBack (sprites[2 ]->bubble ());
1328+ ASSERT_EQ (sprites[0 ]->layerOrder (), 4 );
1329+ ASSERT_EQ (sprites[1 ]->layerOrder (), 2 );
1330+ ASSERT_EQ (sprites[2 ]->layerOrder (), 3 );
1331+ ASSERT_EQ (sprites[3 ]->layerOrder (), 6 );
1332+ ASSERT_EQ (sprites[4 ]->layerOrder (), 5 );
1333+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 8 );
1334+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 9 );
1335+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 1 );
1336+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1337+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
1338+
12941339 auto stage = std::make_shared<Stage>();
12951340 stage->setLayerOrder (0 );
12961341 auto sprite = std::make_shared<Sprite>();
@@ -1313,27 +1358,59 @@ TEST(EngineTest, MoveDrawableForwardLayers)
13131358 ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13141359 ASSERT_EQ (sprites[3 ]->layerOrder (), 3 );
13151360 ASSERT_EQ (sprites[4 ]->layerOrder (), 4 );
1361+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1362+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1363+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1364+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1365+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13161366
13171367 engine.moveDrawableForwardLayers (sprites[4 ], 2 );
13181368 ASSERT_EQ (sprites[0 ]->layerOrder (), 1 );
13191369 ASSERT_EQ (sprites[1 ]->layerOrder (), 4 );
13201370 ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13211371 ASSERT_EQ (sprites[3 ]->layerOrder (), 3 );
1322- ASSERT_EQ (sprites[4 ]->layerOrder (), 5 );
1372+ ASSERT_EQ (sprites[4 ]->layerOrder (), 6 );
1373+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1374+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1375+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1376+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1377+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13231378
13241379 engine.moveDrawableForwardLayers (sprites[4 ], -3 );
13251380 ASSERT_EQ (sprites[0 ]->layerOrder (), 1 );
13261381 ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
1327- ASSERT_EQ (sprites[2 ]->layerOrder (), 3 );
1382+ ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13281383 ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
1329- ASSERT_EQ (sprites[4 ]->layerOrder (), 2 );
1384+ ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1385+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1386+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1387+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1388+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1389+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13301390
13311391 engine.moveDrawableForwardLayers (sprites[2 ], -3 );
13321392 ASSERT_EQ (sprites[0 ]->layerOrder (), 2 );
13331393 ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
13341394 ASSERT_EQ (sprites[2 ]->layerOrder (), 1 );
13351395 ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
13361396 ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1397+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1398+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1399+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1400+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1401+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
1402+
1403+ engine.moveDrawableForwardLayers (sprites[0 ]->bubble (), 3 );
1404+ ASSERT_EQ (sprites[0 ]->layerOrder (), 2 );
1405+ ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
1406+ ASSERT_EQ (sprites[2 ]->layerOrder (), 1 );
1407+ ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
1408+ ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1409+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 10 );
1410+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 7 );
1411+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 8 );
1412+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 9 );
1413+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13371414}
13381415
13391416TEST (EngineTest, MoveDrawableBackwardLayers)
@@ -1348,27 +1425,59 @@ TEST(EngineTest, MoveDrawableBackwardLayers)
13481425 ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13491426 ASSERT_EQ (sprites[3 ]->layerOrder (), 3 );
13501427 ASSERT_EQ (sprites[4 ]->layerOrder (), 4 );
1428+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1429+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1430+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1431+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1432+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13511433
13521434 engine.moveDrawableBackwardLayers (sprites[4 ], -2 );
13531435 ASSERT_EQ (sprites[0 ]->layerOrder (), 1 );
13541436 ASSERT_EQ (sprites[1 ]->layerOrder (), 4 );
13551437 ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13561438 ASSERT_EQ (sprites[3 ]->layerOrder (), 3 );
1357- ASSERT_EQ (sprites[4 ]->layerOrder (), 5 );
1439+ ASSERT_EQ (sprites[4 ]->layerOrder (), 6 );
1440+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1441+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1442+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1443+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1444+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13581445
13591446 engine.moveDrawableBackwardLayers (sprites[4 ], 3 );
13601447 ASSERT_EQ (sprites[0 ]->layerOrder (), 1 );
13611448 ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
1362- ASSERT_EQ (sprites[2 ]->layerOrder (), 3 );
1449+ ASSERT_EQ (sprites[2 ]->layerOrder (), 2 );
13631450 ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
1364- ASSERT_EQ (sprites[4 ]->layerOrder (), 2 );
1451+ ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1452+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1453+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1454+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1455+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1456+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13651457
13661458 engine.moveDrawableBackwardLayers (sprites[2 ], 3 );
13671459 ASSERT_EQ (sprites[0 ]->layerOrder (), 2 );
13681460 ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
13691461 ASSERT_EQ (sprites[2 ]->layerOrder (), 1 );
13701462 ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
13711463 ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1464+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 7 );
1465+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 8 );
1466+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 9 );
1467+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 10 );
1468+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
1469+
1470+ engine.moveDrawableBackwardLayers (sprites[0 ]->bubble (), -3 );
1471+ ASSERT_EQ (sprites[0 ]->layerOrder (), 2 );
1472+ ASSERT_EQ (sprites[1 ]->layerOrder (), 5 );
1473+ ASSERT_EQ (sprites[2 ]->layerOrder (), 1 );
1474+ ASSERT_EQ (sprites[3 ]->layerOrder (), 4 );
1475+ ASSERT_EQ (sprites[4 ]->layerOrder (), 3 );
1476+ ASSERT_EQ (sprites[0 ]->bubble ()->layerOrder (), 10 );
1477+ ASSERT_EQ (sprites[1 ]->bubble ()->layerOrder (), 7 );
1478+ ASSERT_EQ (sprites[2 ]->bubble ()->layerOrder (), 8 );
1479+ ASSERT_EQ (sprites[3 ]->bubble ()->layerOrder (), 9 );
1480+ ASSERT_EQ (sprites[4 ]->bubble ()->layerOrder (), 11 );
13721481}
13731482
13741483TEST (EngineTest, MoveDrawableBehindOther)
0 commit comments