WordPress.org

Make WordPress Core

Changeset 749 in tests


Ignore:
Timestamp:
06/28/12 20:05:14 (22 months ago)
Author:
kurtpayne
Message:

Test that WP_Scripts and WP_Styles accept URLs with a double slash reference. See #WP16560

Location:
wp-testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • wp-testcase/test_includes_wp-scripts.php

    r581 r749  
    3636        $this->assertEquals("", get_echo('wp_print_scripts')); 
    3737    } 
     38     
     39    /** 
     40     * Test the different protocol references in wp_enqueue_script 
     41     * @global WP_Scripts $wp_scripts 
     42     */ 
     43    public function test_protocols() { 
     44        $this->knownWPBug( 16560 ); 
     45 
     46        // Init 
     47        global $wp_scripts; 
     48        $base_url_backup = $wp_scripts->base_url; 
     49        $wp_scripts->base_url = 'http://example.com/wordpress'; 
     50        $expected = ''; 
     51        $ver = get_bloginfo( 'version' ); 
     52 
     53        // Try with an HTTP reference 
     54        wp_enqueue_script( 'jquery-http', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' ); 
     55        $expected  .= "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n"; 
     56 
     57        // Try with an HTTPS reference 
     58        wp_enqueue_script( 'jquery-https', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' ); 
     59        $expected  .= "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n"; 
     60         
     61        // Try with an automatic protocol reference (//) 
     62        wp_enqueue_script( 'jquery-doubleslash', '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' ); 
     63        $expected  .= "<script type='text/javascript' src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=$ver'></script>\n"; 
     64 
     65        // Try with a local resource and an automatic protocol reference (//) 
     66        $url = '/' . plugins_url( '/my_plugin/script.js'); 
     67        wp_enqueue_script( 'plugin-script', $url  ); 
     68        $expected  .= "<script type='text/javascript' src='$url?ver=$ver'></script>\n"; 
     69 
     70        // Try with a bad protocol 
     71        wp_enqueue_script( 'jquery-ftp', 'ftp://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js' ); 
     72        $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"; 
     73         
     74        // Go! 
     75        $this->assertEquals( $expected, get_echo( 'wp_print_scripts' ) ); 
     76 
     77        // No scripts left to print 
     78        $this->assertEquals( '', get_echo( 'wp_print_scripts' ) ); 
     79 
     80        // Cleanup 
     81        $wp_scripts->base_url = $base_url_backup; 
     82    } 
    3883} 
    3984?> 
  • wp-testcase/test_includes_wp-styles.php

    r581 r749  
    3434        $this->assertEquals("", get_echo('wp_print_styles')); 
    3535    } 
     36     
     37    /** 
     38     * Test the different protocol references in wp_enqueue_style 
     39     * @global WP_Styles $wp_styles 
     40     */ 
     41    public function test_protocols() { 
     42        $this->knownWPBug( 16560 ); 
     43 
     44        // Init 
     45        global $wp_styles; 
     46        $base_url_backup = $wp_styles->base_url; 
     47        $wp_styles->base_url = 'http://example.com/wordpress'; 
     48        $expected = ''; 
     49        $ver = get_bloginfo( 'version' ); 
     50 
     51        // Try with an HTTP reference 
     52        wp_enqueue_style( 'reset-css-http', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' ); 
     53        $expected  .= "<link rel='stylesheet' id='reset-css-http-css'  href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n"; 
     54 
     55        // Try with an HTTPS reference 
     56        wp_enqueue_style( 'reset-css-https', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' ); 
     57        $expected  .= "<link rel='stylesheet' id='reset-css-https-css'  href='http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n"; 
     58         
     59        // Try with an automatic protocol reference (//) 
     60        wp_enqueue_style( 'reset-css-doubleslash', '//yui.yahooapis.com/2.8.1/build/reset/reset-min.css' ); 
     61        $expected  .= "<link rel='stylesheet' id='reset-css-doubleslash-css'  href='//yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n"; 
     62         
     63        // Try with a local resource and an automatic protocol reference (//) 
     64        $url = '/' . plugins_url( '/my_plugin/style.css'); 
     65        wp_enqueue_style( 'plugin-style', $url  ); 
     66        $expected  .= "<link rel='stylesheet' id='plugin-style-css'  href='$url?ver=$ver' type='text/css' media='all' />\n"; 
     67 
     68        // Try with a bad protocol 
     69        wp_enqueue_style( 'reset-css-ftp', 'ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' ); 
     70        $expected  .= "<link rel='stylesheet' id='reset-css-ftp-css'  href='{$wp_styles->base_url}ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css?ver=$ver' type='text/css' media='all' />\n"; 
     71 
     72        // Go! 
     73        $this->assertEquals( $expected, get_echo( 'wp_print_styles' ) ); 
     74 
     75        // No styles left to print 
     76        $this->assertEquals( '', get_echo( 'wp_print_styles' ) ); 
     77 
     78        // Cleanup 
     79        $wp_styles->base_url = $base_url_backup; 
     80    } 
    3681} 
    3782?> 
Note: See TracChangeset for help on using the changeset viewer.