@@ -449,3 +449,64 @@ TEST_F(OperatorBlocksTest, Length)
449449 ASSERT_EQ (Value (values[1 ]), 11 );
450450 ASSERT_EQ (Value (values[2 ]), 9 );
451451}
452+
453+ TEST_F (OperatorBlocksTest, Contains)
454+ {
455+ auto target = std::make_shared<Sprite>();
456+ ScriptBuilder builder (m_extension.get (), m_engine, target);
457+
458+ builder.addBlock (" operator_contains" );
459+ builder.addValueInput (" STRING1" , " abc" );
460+ builder.addValueInput (" STRING2" , " a" );
461+ builder.captureBlockReturnValue ();
462+
463+ builder.addBlock (" operator_contains" );
464+ builder.addValueInput (" STRING1" , " abc" );
465+ builder.addValueInput (" STRING2" , " e" );
466+ builder.captureBlockReturnValue ();
467+
468+ builder.addBlock (" operator_contains" );
469+ builder.addValueInput (" STRING1" , " abc" );
470+ builder.addValueInput (" STRING2" , " C" );
471+ builder.captureBlockReturnValue ();
472+
473+ builder.addBlock (" operator_contains" );
474+ builder.addValueInput (" STRING1" , " Hello world" );
475+ builder.addValueInput (" STRING2" , " ello" );
476+ builder.captureBlockReturnValue ();
477+
478+ builder.addBlock (" operator_contains" );
479+ builder.addValueInput (" STRING1" , " Hello world" );
480+ builder.addValueInput (" STRING2" , " olld" );
481+ builder.captureBlockReturnValue ();
482+
483+ builder.addBlock (" operator_contains" );
484+ builder.addValueInput (" STRING1" , " ábČ" );
485+ builder.addValueInput (" STRING2" , " á" );
486+ builder.captureBlockReturnValue ();
487+
488+ builder.addBlock (" operator_contains" );
489+ builder.addValueInput (" STRING1" , " ábČ" );
490+ builder.addValueInput (" STRING2" , " bČ" );
491+ builder.captureBlockReturnValue ();
492+
493+ builder.addBlock (" operator_contains" );
494+ builder.addValueInput (" STRING1" , " ábČ" );
495+ builder.addValueInput (" STRING2" , " ďá" );
496+ builder.captureBlockReturnValue ();
497+
498+ builder.build ();
499+ builder.run ();
500+
501+ List *valueList = builder.capturedValues ();
502+ ValueData *values = valueList->data ();
503+ ASSERT_EQ (valueList->size (), 8 );
504+ ASSERT_EQ (Value (values[0 ]), true );
505+ ASSERT_EQ (Value (values[1 ]), false );
506+ ASSERT_EQ (Value (values[2 ]), true );
507+ ASSERT_EQ (Value (values[3 ]), true );
508+ ASSERT_EQ (Value (values[4 ]), false );
509+ ASSERT_EQ (Value (values[5 ]), true );
510+ ASSERT_EQ (Value (values[6 ]), true );
511+ ASSERT_EQ (Value (values[7 ]), false );
512+ }
0 commit comments