7
7
8
8
namespace WPackioTest ;
9
9
10
+ use WPackio \Enqueue ;
11
+ use UnexpectedValueException ;
12
+ use Brain \Monkey \Expectation \Exception \Exception ;
13
+ use Brain \Monkey \Expectation \Exception \MissedPatchworkReplace ;
14
+ use LogicException ;
15
+ use PHPUnit \Framework \ExpectationFailedException ;
16
+ use SebastianBergmann \RecursionContext \InvalidArgumentException ;
17
+
10
18
class EnqueueTest extends TestCase {
11
19
/**
12
20
* Mocked Template Directory Uri
@@ -452,6 +460,7 @@ public function test_enqueue() {
452
460
}
453
461
454
462
// Act
463
+ /** @var Enqueue $enqueue */
455
464
$ enqueue ->enqueue ( 'app ' , 'main ' , $ config );
456
465
}
457
466
@@ -465,9 +474,11 @@ public function test_getHandle_throws_exception() {
465
474
}
466
475
467
476
/**
468
- * @testdox `getPrimaryJsHandle` returns the proper handle for proper assets
477
+ * Prepare enqueue and assets.
478
+ *
479
+ * @return (Enqueue|array)[] Touple of Enqueue and assets.
469
480
*/
470
- public function test_getPrimaryJsHandle_returns_the_proper_handle_for_proper_assets () {
481
+ protected function prepare_enqueue_assets () {
471
482
// Prepare
472
483
$ enqueue = new \WPackio \Enqueue ( 'foo ' , 'dist ' , '1.0.0 ' , 'plugin ' , $ this ->pp );
473
484
\Brain \Monkey \Functions \expect ( 'wp_register_script ' )
@@ -486,6 +497,16 @@ public function test_getPrimaryJsHandle_returns_the_proper_handle_for_proper_ass
486
497
'in_footer ' => true ,
487
498
'media ' => 'all ' ,
488
499
] );
500
+ return [ $ enqueue , $ assets ];
501
+ }
502
+
503
+ /**
504
+ * @testdox `getPrimaryJsHandle` returns the proper handle for proper assets
505
+ */
506
+ public function test_getPrimaryJsHandle_returns_the_proper_handle_for_proper_assets () {
507
+ // Prepare
508
+ [ $ enqueue , $ assets ] = $ this ->prepare_enqueue_assets ();
509
+
489
510
$ handle = $ enqueue ->getPrimaryJsHandle ( $ assets );
490
511
$ this ->assertSame ( 'wpackio_fooapp_app__main_js_script ' , $ handle );
491
512
@@ -502,23 +523,8 @@ public function test_getPrimaryJsHandle_returns_the_proper_handle_for_proper_ass
502
523
*/
503
524
public function test_getPrimaryCssHandle_returns_the_proper_handle_for_proper_assets () {
504
525
// Prepare
505
- $ enqueue = new \WPackio \Enqueue ( 'foo ' , 'dist ' , '1.0.0 ' , 'plugin ' , $ this ->pp );
506
- \Brain \Monkey \Functions \expect ( 'wp_register_script ' )
507
- ->atLeast ()
508
- ->once ();
526
+ [ $ enqueue , $ assets ] = $ this ->prepare_enqueue_assets ();
509
527
510
- \Brain \Monkey \Functions \expect ( 'wp_register_style ' )
511
- ->atLeast ()
512
- ->once ();
513
-
514
- $ assets = $ enqueue ->register ( 'app ' , 'main ' , [
515
- 'js ' => true ,
516
- 'css ' => true ,
517
- 'js_dep ' => [],
518
- 'css_dep ' => [],
519
- 'in_footer ' => true ,
520
- 'media ' => 'all ' ,
521
- ] );
522
528
$ handle = $ enqueue ->getPrimaryCssHandle ( $ assets );
523
529
$ this ->assertSame ( 'wpackio_fooapp_app__main_css_style ' , $ handle );
524
530
@@ -529,4 +535,50 @@ public function test_getPrimaryCssHandle_returns_the_proper_handle_for_proper_as
529
535
$ this ->assertFalse ( $ enqueue ->getPrimaryCssHandle ( [ 'js ' => [] ] ) );
530
536
$ this ->assertFalse ( $ enqueue ->getPrimaryCssHandle ( [ 'js ' => [ 'bla ' ] ] ) );
531
537
}
538
+
539
+ /**
540
+ * @testdox `getCssHandles` works for proper assets
541
+ */
542
+ public function test_getCssHandles_works_for_proper_assets () {
543
+ // Prepare
544
+ [ $ enqueue , $ assets ] = $ this ->prepare_enqueue_assets ();
545
+
546
+ $ css_handles = $ enqueue ->getCssHandles ( $ assets );
547
+ $ this ->assertEquals (
548
+ [ 'wpackio_fooapp_app__main_css_style ' ],
549
+ $ css_handles
550
+ );
551
+
552
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( false ) );
553
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( [] ) );
554
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( 'foo ' ) );
555
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( [ 'js ' => 'foo ' ] ) );
556
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( [ 'js ' => [] ] ) );
557
+ $ this ->assertCount ( 0 , $ enqueue ->getCssHandles ( [ 'js ' => [ 'bla ' ] ] ) );
558
+ }
559
+
560
+ /**
561
+ * @testdox `getJsHandles` works for proper assets
562
+ */
563
+ public function test_getJsHandles_works_for_proper_assets () {
564
+ // Prepare
565
+ [ $ enqueue , $ assets ] = $ this ->prepare_enqueue_assets ();
566
+
567
+ $ css_handles = $ enqueue ->getJsHandles ( $ assets );
568
+ $ this ->assertEquals (
569
+ [
570
+ 'wpackio_fooapp_app__runtime_js_script ' ,
571
+ 'wpackio_fooapp_app__vendor_js_script ' ,
572
+ 'wpackio_fooapp_app__main_js_script ' ,
573
+ ],
574
+ $ css_handles
575
+ );
576
+
577
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( false ) );
578
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( [] ) );
579
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( 'foo ' ) );
580
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( [ 'css ' => 'foo ' ] ) );
581
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( [ 'css ' => [] ] ) );
582
+ $ this ->assertCount ( 0 , $ enqueue ->getJsHandles ( [ 'css ' => [ 'bla ' ] ] ) );
583
+ }
532
584
}
0 commit comments