@@ -1170,6 +1170,41 @@ TEST_F(PenBlocksTest, ChangePenColorParamBy_NonConstInvalidParam)
11701170 ASSERT_EQ (model.penAttributes ().color , original);
11711171}
11721172
1173+ TEST_F (PenBlocksTest, ChangePenColorParamBy_Stage)
1174+ {
1175+ auto stage = std::make_shared<Stage>();
1176+ stage->setEngine (&m_engineMock);
1177+
1178+ RenderedTarget renderedTarget;
1179+ StageModel model;
1180+ model.init (stage.get ());
1181+ model.setRenderedTarget (&renderedTarget);
1182+ stage->setInterface (&model);
1183+
1184+ ScriptBuilder builder (m_extension.get (), m_engine, stage);
1185+ builder.addBlock (" pen_changePenColorParamBy" );
1186+ builder.addDropdownInput (" COLOR_PARAM" , " color" );
1187+ builder.addValueInput (" VALUE" , 53.2 );
1188+
1189+ PenState &penState = model.penState ();
1190+ penState.color = 12.67 ;
1191+ penState.saturation = 39.21 ;
1192+ penState.brightness = 58.82 ;
1193+ penState.updateColor ();
1194+
1195+ auto original = model.penAttributes ().color ;
1196+
1197+ auto thread = buildScript (builder, stage.get ());
1198+
1199+ EXPECT_CALL (m_engineMock, requestRedraw).Times (0 );
1200+ thread->run ();
1201+
1202+ EXPECT_EQ (model.penAttributes ().color .red (), 91 );
1203+ EXPECT_EQ (model.penAttributes ().color .green (), 94 );
1204+ EXPECT_EQ (model.penAttributes ().color .blue (), 149 );
1205+ EXPECT_EQ (model.penAttributes ().color .alpha (), 255 );
1206+ }
1207+
11731208TEST_F (PenBlocksTest, SetPenColorParamTo_Color)
11741209{
11751210 auto sprite = std::make_shared<Sprite>();
@@ -1882,3 +1917,38 @@ TEST_F(PenBlocksTest, SetPenColorParamTo_NonConstInvalidParam)
18821917 // The color shouldn't change
18831918 ASSERT_EQ (model.penAttributes ().color , original);
18841919}
1920+
1921+ TEST_F (PenBlocksTest, SetPenColorParamTo_Stage)
1922+ {
1923+ auto stage = std::make_shared<Stage>();
1924+ stage->setEngine (&m_engineMock);
1925+
1926+ RenderedTarget renderedTarget;
1927+ StageModel model;
1928+ model.init (stage.get ());
1929+ model.setRenderedTarget (&renderedTarget);
1930+ stage->setInterface (&model);
1931+
1932+ ScriptBuilder builder (m_extension.get (), m_engine, stage);
1933+ builder.addBlock (" pen_setPenColorParamTo" );
1934+ builder.addDropdownInput (" COLOR_PARAM" , " color" );
1935+ builder.addValueInput (" VALUE" , 53.2 );
1936+
1937+ PenState &penState = model.penState ();
1938+ penState.color = 12.67 ;
1939+ penState.saturation = 39.21 ;
1940+ penState.brightness = 58.82 ;
1941+ penState.updateColor ();
1942+
1943+ auto original = model.penAttributes ().color ;
1944+
1945+ auto thread = buildScript (builder, stage.get ());
1946+
1947+ EXPECT_CALL (m_engineMock, requestRedraw).Times (0 );
1948+ thread->run ();
1949+
1950+ EXPECT_EQ (model.penAttributes ().color .red (), 91 );
1951+ EXPECT_EQ (model.penAttributes ().color .green (), 138 );
1952+ EXPECT_EQ (model.penAttributes ().color .blue (), 149 );
1953+ EXPECT_EQ (model.penAttributes ().color .alpha (), 255 );
1954+ }
0 commit comments