WordPress.org

Make WordPress Core

Ticket #25247: 25247_tests.diff

File 25247_tests.diff, 3.4 KB (added by gitlost, 5 years ago)

Unit tests for patch.

  • tests/phpunit/tests/dependencies/jquery.php

     
    8181
    8282                unset( $GLOBALS['wp_scripts'] );
    8383        }
     84
     85        /**
     86         * Test placing of jquery in footer.
     87         * @ticket 25247
     88         */
     89        function test_jquery_in_footer() {
     90                $scripts = new WP_Scripts;
     91                $scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ) );
     92                $scripts->add( 'jquery-core', '/jquery.js', array() );
     93                $scripts->add( 'jquery-migrate', "/jquery-migrate.js", array() );
     94
     95                $scripts->enqueue( 'jquery' );
     96
     97                $object = $scripts->query( 'jquery' );
     98                $object->add_data( 'group', 1 );
     99                foreach( $object->deps as $dep ) {
     100                        $scripts->add_data( $dep, 'group', 1 );
     101                }
     102
     103                ob_start();
     104
     105                $scripts->do_items( false, 0 );
     106                // Could do $this->assertContains( 'jquery', $scripts->done );
     107                $this->assertNotContains( 'jquery-core', $scripts->done, 'jquery-core should be in footer but is in head' );
     108                $this->assertNotContains( 'jquery-migrate', $scripts->done, 'jquery-migrate should be in footer but is in head' );
     109
     110                $scripts->do_items( false, 1 );
     111                $this->assertContains( 'jquery', $scripts->done );
     112                $this->assertContains( 'jquery-core', $scripts->done, 'jquery-core in footer' );
     113                $this->assertContains( 'jquery-migrate', $scripts->done, 'jquery-migrate in footer' );
     114
     115                ob_end_clean();
     116        }
    84117}
  • tests/phpunit/tests/dependencies/scripts.php

     
    8484                // Cleanup
    8585                $wp_scripts->base_url = $base_url_backup;
    8686        }
     87
     88        /**
     89         * Test mismatch of groups in dependencies outputs all scripts in right order.
     90         * @ticket 25247
     91         */
     92        public function test_group_mismatch_in_deps() {
     93                $scripts = new WP_Scripts;
     94                $scripts->add( 'one', 'one', array(), 'v1', 1 );
     95                $scripts->add( 'two', 'two', array( 'one' ) );
     96                $scripts->add( 'three', 'three', array( 'two' ), 'v1', 1 );
     97
     98                $scripts->enqueue( array( 'three' ) );
     99
     100                ob_start();
     101
     102                $scripts->do_items( false, 0 );
     103                $this->assertContains( 'one', $scripts->done );
     104                $this->assertContains( 'two', $scripts->done );
     105                $this->assertNotContains( 'three', $scripts->done );
     106
     107                $scripts->do_items( false, 1 );
     108                $this->assertContains( 'one', $scripts->done );
     109                $this->assertContains( 'two', $scripts->done );
     110                $this->assertContains( 'three', $scripts->done );
     111
     112                $scripts = new WP_Scripts;
     113                $scripts->add( 'one', 'one', array(), 'v1', 1 );
     114                $scripts->add( 'two', 'two', array( 'one' ), 'v1', 1 );
     115                $scripts->add( 'three', 'three', array( 'one' ) );
     116                $scripts->add( 'four', 'four', array( 'two', 'three' ), 'v1', 1 );
     117
     118                $scripts->enqueue( array( 'four' ) );
     119
     120                $scripts->do_items( false, 0 );
     121                $this->assertContains( 'one', $scripts->done );
     122                $this->assertNotContains( 'two', $scripts->done );
     123                $this->assertContains( 'three', $scripts->done );
     124                $this->assertNotContains( 'four', $scripts->done );
     125
     126                $scripts->do_items( false, 1 );
     127                $this->assertContains( 'one', $scripts->done );
     128                $this->assertContains( 'two', $scripts->done );
     129                $this->assertContains( 'three', $scripts->done );
     130                $this->assertContains( 'four', $scripts->done );
     131
     132                ob_end_clean();
     133        }
    87134}