5
5
#include < scratchcpp/stage.h>
6
6
#include < scratchcpp/variable.h>
7
7
#include < scratchcpp/list.h>
8
+ #include < scratchcpp/keyevent.h>
8
9
#include < timermock.h>
9
10
#include < clockmock.h>
10
11
#include < thread>
@@ -192,6 +193,7 @@ TEST(EngineTest, KeyState)
192
193
ASSERT_FALSE (engine.keyPressed (" up arrow" ));
193
194
ASSERT_FALSE (engine.keyPressed (" any" ));
194
195
196
+ // Key name
195
197
engine.setKeyState (" A" , true );
196
198
ASSERT_TRUE (engine.keyPressed (" a" ));
197
199
ASSERT_FALSE (engine.keyPressed (" b" ));
@@ -263,6 +265,20 @@ TEST(EngineTest, KeyState)
263
265
264
266
engine.setAnyKeyPressed (false );
265
267
ASSERT_FALSE (engine.keyPressed (" any" ));
268
+
269
+ // Key object
270
+ engine.setKeyState (KeyEvent (" A" ), true );
271
+ ASSERT_TRUE (engine.keyPressed (" a" ));
272
+ ASSERT_FALSE (engine.keyPressed (" b" ));
273
+ ASSERT_FALSE (engine.keyPressed (" up arrow" ));
274
+ ASSERT_TRUE (engine.keyPressed (" any" ));
275
+
276
+ engine.setKeyState (KeyEvent (" up arrow" ), true );
277
+ ASSERT_TRUE (engine.keyPressed (" a" ));
278
+ ASSERT_FALSE (engine.keyPressed (" b" ));
279
+ ASSERT_TRUE (engine.keyPressed (" up arrow" ));
280
+ ASSERT_FALSE (engine.keyPressed (" U" ));
281
+ ASSERT_TRUE (engine.keyPressed (" any" ));
266
282
}
267
283
268
284
TEST (EngineTest, WhenKeyPressed)
@@ -335,21 +351,43 @@ TEST(EngineTest, WhenKeyPressed)
335
351
ASSERT_VAR (stage, " 4_pressed" );
336
352
ASSERT_EQ (GET_VAR (stage, " 4_pressed" )->value ().toInt (), 0 );
337
353
354
+ // right arrow - key object
355
+ engine->setKeyState (KeyEvent (" right arrow" ), true );
356
+ p.run ();
357
+
358
+ ASSERT_VAR (stage, " right_arrow_pressed" );
359
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
360
+ engine->setKeyState (" right arrow" , false );
361
+ p.run ();
362
+
363
+ ASSERT_VAR (stage, " space_pressed" );
364
+ ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
365
+ ASSERT_VAR (stage, " right_arrow_pressed" );
366
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
367
+ ASSERT_VAR (stage, " any_key_pressed" );
368
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 3 );
369
+ ASSERT_VAR (stage, " a_pressed" );
370
+ ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 0 );
371
+ ASSERT_VAR (stage, " x_pressed" );
372
+ ASSERT_EQ (GET_VAR (stage, " x_pressed" )->value ().toInt (), 0 );
373
+ ASSERT_VAR (stage, " 4_pressed" );
374
+ ASSERT_EQ (GET_VAR (stage, " 4_pressed" )->value ().toInt (), 0 );
375
+
338
376
// any key
339
377
engine->setAnyKeyPressed (true );
340
378
p.run ();
341
379
342
380
ASSERT_VAR (stage, " any_key_pressed" );
343
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 3 );
381
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 4 );
344
382
engine->setAnyKeyPressed (false );
345
383
p.run ();
346
384
347
385
ASSERT_VAR (stage, " space_pressed" );
348
386
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
349
387
ASSERT_VAR (stage, " right_arrow_pressed" );
350
- ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
388
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
351
389
ASSERT_VAR (stage, " any_key_pressed" );
352
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 3 );
390
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 4 );
353
391
ASSERT_VAR (stage, " a_pressed" );
354
392
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 0 );
355
393
ASSERT_VAR (stage, " x_pressed" );
@@ -369,9 +407,9 @@ TEST(EngineTest, WhenKeyPressed)
369
407
ASSERT_VAR (stage, " space_pressed" );
370
408
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
371
409
ASSERT_VAR (stage, " right_arrow_pressed" );
372
- ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
410
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
373
411
ASSERT_VAR (stage, " any_key_pressed" );
374
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 4 );
412
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 5 );
375
413
ASSERT_VAR (stage, " a_pressed" );
376
414
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 1 );
377
415
ASSERT_VAR (stage, " x_pressed" );
@@ -391,9 +429,9 @@ TEST(EngineTest, WhenKeyPressed)
391
429
ASSERT_VAR (stage, " space_pressed" );
392
430
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
393
431
ASSERT_VAR (stage, " right_arrow_pressed" );
394
- ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
432
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
395
433
ASSERT_VAR (stage, " any_key_pressed" );
396
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 5 );
434
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 6 );
397
435
ASSERT_VAR (stage, " a_pressed" );
398
436
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 1 );
399
437
ASSERT_VAR (stage, " x_pressed" );
@@ -413,9 +451,9 @@ TEST(EngineTest, WhenKeyPressed)
413
451
ASSERT_VAR (stage, " space_pressed" );
414
452
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 1 );
415
453
ASSERT_VAR (stage, " right_arrow_pressed" );
416
- ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
454
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
417
455
ASSERT_VAR (stage, " any_key_pressed" );
418
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 6 );
456
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 7 );
419
457
ASSERT_VAR (stage, " a_pressed" );
420
458
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 1 );
421
459
ASSERT_VAR (stage, " x_pressed" );
@@ -439,9 +477,9 @@ TEST(EngineTest, WhenKeyPressed)
439
477
ASSERT_VAR (stage, " space_pressed" );
440
478
ASSERT_EQ (GET_VAR (stage, " space_pressed" )->value ().toInt (), 2 );
441
479
ASSERT_VAR (stage, " right_arrow_pressed" );
442
- ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 1 );
480
+ ASSERT_EQ (GET_VAR (stage, " right_arrow_pressed" )->value ().toInt (), 2 );
443
481
ASSERT_VAR (stage, " any_key_pressed" );
444
- ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 8 );
482
+ ASSERT_EQ (GET_VAR (stage, " any_key_pressed" )->value ().toInt (), 9 );
445
483
ASSERT_VAR (stage, " a_pressed" );
446
484
ASSERT_EQ (GET_VAR (stage, " a_pressed" )->value ().toInt (), 1 );
447
485
ASSERT_VAR (stage, " x_pressed" );
0 commit comments