dependencies.php 4.0 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->assertSame( '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->assertSame( '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->assertSame( 'arg', $dep->args['one'] );
  74. $this->assertSame( '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. }