dependencies.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. /**
  3. * @group dependencies
  4. * @group scripts
  5. */
  6. class Tests_Dependencies extends WP_UnitTestCase {
  7. function test_add() {
  8. $dep = new WP_Dependencies;
  9. $this->assertTrue($dep->add( 'one', '' ));
  10. $this->assertTrue($dep->add( 'two', '' ));
  11. $this->assertInstanceOf('_WP_Dependency', $dep->query( 'one' ));
  12. $this->assertInstanceOf('_WP_Dependency', $dep->query( 'two' ));
  13. //Cannot reuse names
  14. $this->assertFalse($dep->add( 'one', '' ));
  15. }
  16. function test_remove() {
  17. $dep = new WP_Dependencies;
  18. $this->assertTrue($dep->add( 'one', '' ));
  19. $this->assertTrue($dep->add( 'two', '' ));
  20. $dep->remove( 'one' );
  21. $this->assertFalse($dep->query( 'one'));
  22. $this->assertInstanceOf('_WP_Dependency', $dep->query( 'two' ));
  23. }
  24. function test_enqueue() {
  25. $dep = new WP_Dependencies;
  26. $this->assertTrue($dep->add( 'one', '' ));
  27. $this->assertTrue($dep->add( 'two', '' ));
  28. $this->assertFalse($dep->query( 'one', 'queue' ));
  29. $dep->enqueue('one');
  30. $this->assertTrue($dep->query( 'one', 'queue' ));
  31. $this->assertFalse($dep->query( 'two', 'queue' ));
  32. $dep->enqueue('two');
  33. $this->assertTrue($dep->query( 'one', 'queue' ));
  34. $this->assertTrue($dep->query( 'two', 'queue' ));
  35. }
  36. function test_dequeue() {
  37. $dep = new WP_Dependencies;
  38. $this->assertTrue($dep->add( 'one', '' ));
  39. $this->assertTrue($dep->add( 'two', '' ));
  40. $dep->enqueue('one');
  41. $dep->enqueue('two');
  42. $this->assertTrue($dep->query( 'one', 'queue' ));
  43. $this->assertTrue($dep->query( 'two', 'queue' ));
  44. $dep->dequeue('one');
  45. $this->assertFalse($dep->query( 'one', 'queue' ));
  46. $this->assertTrue($dep->query( 'two', 'queue' ));
  47. $dep->dequeue('two');
  48. $this->assertFalse($dep->query( 'one', 'queue' ));
  49. $this->assertFalse($dep->query( 'two', 'queue' ));
  50. }
  51. function test_enqueue_args() {
  52. $dep = new WP_Dependencies;
  53. $this->assertTrue($dep->add( 'one', '' ));
  54. $this->assertTrue($dep->add( 'two', '' ));
  55. $this->assertFalse($dep->query( 'one', 'queue' ));
  56. $dep->enqueue('one?arg');
  57. $this->assertTrue($dep->query( 'one', 'queue' ));
  58. $this->assertFalse($dep->query( 'two', 'queue' ));
  59. $this->assertEquals('arg', $dep->args['one']);
  60. $dep->enqueue('two?arg');
  61. $this->assertTrue($dep->query( 'one', 'queue' ));
  62. $this->assertTrue($dep->query( 'two', 'queue' ));
  63. $this->assertEquals('arg', $dep->args['two']);
  64. }
  65. function test_dequeue_args() {
  66. $dep = new WP_Dependencies;
  67. $this->assertTrue($dep->add( 'one', '' ));
  68. $this->assertTrue($dep->add( 'two', '' ));
  69. $dep->enqueue('one?arg');
  70. $dep->enqueue('two?arg');
  71. $this->assertTrue($dep->query( 'one', 'queue' ));
  72. $this->assertTrue($dep->query( 'two', 'queue' ));
  73. $this->assertEquals('arg', $dep->args['one']);
  74. $this->assertEquals('arg', $dep->args['two']);
  75. $dep->dequeue('one');
  76. $this->assertFalse($dep->query( 'one', 'queue' ));
  77. $this->assertTrue($dep->query( 'two', 'queue' ));
  78. $this->assertFalse(isset($dep->args['one']));
  79. $dep->dequeue('two');
  80. $this->assertFalse($dep->query( 'one', 'queue' ));
  81. $this->assertFalse($dep->query( 'two', 'queue' ));
  82. $this->assertFalse(isset($dep->args['two']));
  83. }
  84. /**
  85. * @ticket 21741
  86. */
  87. function test_query_and_registered_enqueued() {
  88. $dep = new WP_Dependencies;
  89. $this->assertTrue( $dep->add( 'one', '' ) );
  90. $this->assertInstanceOf( '_WP_Dependency', $dep->query( 'one' ) );
  91. $this->assertInstanceOf( '_WP_Dependency', $dep->query( 'one', 'registered' ) );
  92. $this->assertInstanceOf( '_WP_Dependency', $dep->query( 'one', 'scripts' ) );
  93. $this->assertFalse( $dep->query( 'one', 'enqueued' ) );
  94. $this->assertFalse( $dep->query( 'one', 'queue' ) );
  95. $dep->enqueue( 'one' );
  96. $this->assertTrue( $dep->query( 'one', 'enqueued' ) );
  97. $this->assertTrue( $dep->query( 'one', 'queue' ) );
  98. $dep->dequeue( 'one' );
  99. $this->assertFalse( $dep->query( 'one', 'queue' ) );
  100. $this->assertInstanceOf( '_WP_Dependency', $dep->query( 'one' ) );
  101. $dep->remove( 'one' );
  102. $this->assertFalse( $dep->query( 'one' ) );
  103. }
  104. }