123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- /**
- * @group dependencies
- * @group scripts
- */
- class Tests_Dependencies_Scripts extends WP_UnitTestCase {
- var $old_wp_scripts;
- function setUp() {
- parent::setUp();
- $this->old_wp_scripts = isset( $GLOBALS['wp_scripts'] ) ? $GLOBALS['wp_scripts'] : null;
- remove_action( 'wp_default_scripts', 'wp_default_scripts' );
- $GLOBALS['wp_scripts'] = new WP_Scripts();
- $GLOBALS['wp_scripts']->default_version = get_bloginfo( 'version' );
- }
- function tearDown() {
- $GLOBALS['wp_scripts'] = $this->old_wp_scripts;
- add_action( 'wp_default_scripts', 'wp_default_scripts' );
- parent::tearDown();
- }
- /**
- * Test versioning
- * @ticket 11315
- */
- function test_wp_enqueue_script() {
- wp_enqueue_script('no-deps-no-version', 'example.com', array());
- wp_enqueue_script('empty-deps-no-version', 'example.com' );
- wp_enqueue_script('empty-deps-version', 'example.com', array(), 1.2);
- wp_enqueue_script('empty-deps-null-version', 'example.com', array(), null);
- $ver = get_bloginfo( 'version' );
- $expected = "<script type='text/javascript' src='http://example.com?ver=$ver'></script>\n";
- $expected .= "<script type='text/javascript' src='http://example.com?ver=$ver'></script>\n";
- $expected .= "<script type='text/javascript' src='http://example.com?ver=1.2'></script>\n";
- $expected .= "<script type='text/javascript' src='http://example.com'></script>\n";
- $this->assertEquals($expected, get_echo('wp_print_scripts'));
- // No scripts left to print
- $this->assertEquals("", get_echo('wp_print_scripts'));
- }
- /**
- * Test the different protocol references in wp_enqueue_script
- * @global WP_Scripts $wp_scripts
- * @ticket 16560
- */
- public function test_protocols() {
- // Init
- global $wp_scripts;
- $base_url_backup = $wp_scripts->base_url;
- $wp_scripts->base_url = 'http://example.com/wordpress';
- $expected = '';
- $ver = get_bloginfo( 'version' );
- // Try with an HTTP reference
- wp_enqueue_script( 'jquery-http', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
- $expected .= "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n";
- // Try with an HTTPS reference
- wp_enqueue_script( 'jquery-https', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
- $expected .= "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n";
- // Try with an automatic protocol reference (//)
- wp_enqueue_script( 'jquery-doubleslash', '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
- $expected .= "<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n";
- // Try with a local resource and an automatic protocol reference (//)
- $url = '//my_plugin/script.js';
- wp_enqueue_script( 'plugin-script', $url );
- $expected .= "<script type='text/javascript' src='$url?ver=$ver'></script>\n";
- // Try with a bad protocol
- wp_enqueue_script( 'jquery-ftp', 'ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' );
- $expected .= "<script type='text/javascript' src='{$wp_scripts->base_url}ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n";
- // Go!
- $this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) );
- // No scripts left to print
- $this->assertEquals( '', get_echo( 'wp_print_scripts' ) );
- // Cleanup
- $wp_scripts->base_url = $base_url_backup;
- }
- /**
- * @ticket 22229
- */
- function test_inline_should_not_output_script_tag_with_src() {
- wp_enqueue_script( 'baba-inline-0', 'inline' );
- $this->assertEquals( '', get_echo( 'wp_print_scripts' ) );
- }
- /**
- * @ticket 22229
- */
- function test_json_encode_should_not_encode_special_literal_values() {
- if ( ! class_exists( 'WP_JS_Literal' ) ) {
- $this->markTestSkipped( "WP_JS_Literal class doesn't exist" );
- }
- $literal = new WP_JS_Literal( 'baba()' );
- $this->assertEquals( '{"x":baba()}', WP_JS_Literal::json_encode( array( 'x' => $literal ), array( $literal ) ) );
- }
- /**
- * @ticket 22229
- */
- function test_json_encode_should_not_encode_special_literal_values_with_dependencies() {
- if ( ! class_exists( 'WP_JS_Literal' ) ) {
- $this->markTestSkipped( "WP_JS_Literal class doesn't exist" );
- }
-
- $literal = new WP_JS_Literal( 'baba()', array( 'dep0', 'dep1' ) );
- $this->assertEquals( '{"x":baba()}', WP_JS_Literal::json_encode( array( 'x' => $literal ), array( $literal ) ) );
- }
- }
|