77ee35c4eb
Adds unit test. Props wonderboymusic, SergeyBiryukov, mikejolley. Fixes #28404. git-svn-id: https://develop.svn.wordpress.org/trunk@29252 602fd350-edb4-49c9-b593-d223f7449a82
85 lines
2.8 KiB
PHP
85 lines
2.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group dependencies
|
|
* @group scripts
|
|
*/
|
|
class Tests_Dependencies_jQuery extends WP_UnitTestCase {
|
|
|
|
function test_location_of_jquery() {
|
|
$scripts = new WP_Scripts;
|
|
wp_default_scripts( $scripts );
|
|
|
|
$jquery_scripts = array(
|
|
'jquery-core' => '/wp-includes/js/jquery/jquery.js',
|
|
);
|
|
if ( SCRIPT_DEBUG )
|
|
$jquery_scripts['jquery-migrate'] = '/wp-includes/js/jquery/jquery-migrate.js';
|
|
else
|
|
$jquery_scripts['jquery-migrate'] = '/wp-includes/js/jquery/jquery-migrate.min.js';
|
|
|
|
$object = $scripts->query( 'jquery', 'registered' );
|
|
$this->assertInstanceOf( '_WP_Dependency', $object );
|
|
$this->assertEqualSets( $object->deps, array_keys( $jquery_scripts ) );
|
|
foreach( $object->deps as $dep ) {
|
|
$o = $scripts->query( $dep, 'registered' );
|
|
$this->assertInstanceOf( '_WP_Dependency', $object );
|
|
$this->assertTrue( isset( $jquery_scripts[ $dep ] ) );
|
|
$this->assertEquals( $jquery_scripts[ $dep ], $o->src );
|
|
}
|
|
}
|
|
|
|
function test_presence_of_jquery_no_conflict() {
|
|
$contents = trim( file_get_contents( ABSPATH . WPINC . '/js/jquery/jquery.js' ) );
|
|
$noconflict = 'jQuery.noConflict();';
|
|
$end = substr( $contents, - strlen( $noconflict ) );
|
|
$this->assertEquals( $noconflict, $end );
|
|
}
|
|
|
|
/**
|
|
* @ticket 22896
|
|
*
|
|
* @expectedIncorrectUsage wp_deregister_script
|
|
*/
|
|
function test_dont_allow_deregister_core_scripts_in_admin() {
|
|
set_current_screen( 'edit.php' );
|
|
$this->assertTrue( is_admin() ) ;
|
|
$libraries = array(
|
|
'jquery', 'jquery-core', 'jquery-migrate', 'jquery-ui-core', 'jquery-ui-accordion',
|
|
'jquery-ui-autocomplete', 'jquery-ui-button', 'jquery-ui-datepicker', 'jquery-ui-dialog',
|
|
'jquery-ui-draggable', 'jquery-ui-droppable', 'jquery-ui-menu', 'jquery-ui-mouse',
|
|
'jquery-ui-position', 'jquery-ui-progressbar', 'jquery-ui-resizable', 'jquery-ui-selectable',
|
|
'jquery-ui-slider', 'jquery-ui-sortable', 'jquery-ui-spinner', 'jquery-ui-tabs',
|
|
'jquery-ui-tooltip', 'jquery-ui-widget', 'backbone', 'underscore',
|
|
);
|
|
|
|
foreach ( $libraries as $library ) {
|
|
// Try to deregister the script, which should fail.
|
|
wp_deregister_script( $library );
|
|
$this->assertTrue( wp_script_is( $library, 'registered' ) );
|
|
}
|
|
|
|
set_current_screen( 'front' );
|
|
}
|
|
|
|
/**
|
|
* @ticket 24994
|
|
*/
|
|
function test_exclusion_of_sourcemaps() {
|
|
$contents = trim( file_get_contents( ABSPATH . WPINC . '/js/jquery/jquery.js' ) );
|
|
$this->assertFalse( strpos( $contents, 'sourceMappingURL' ), 'Presence of sourceMappingURL' );
|
|
}
|
|
|
|
/**
|
|
* @ticket 28404
|
|
*/
|
|
function test_wp_script_is_dep_enqueued() {
|
|
wp_enqueue_script( 'jquery-ui-accordion' );
|
|
|
|
$this->assertTrue( wp_script_is( 'jquery', 'enqueued' ) );
|
|
$this->assertFalse( wp_script_is( 'underscore', 'enqueued' ) );
|
|
|
|
unset( $GLOBALS['wp_scripts'] );
|
|
}
|
|
}
|