Changeset 61397
- Timestamp:
- 12/22/2025 12:54:50 AM (3 months ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
src/wp-includes/class-wp-scripts.php (modified) (5 diffs)
-
src/wp-includes/class-wp-styles.php (modified) (8 diffs)
-
tests/phpunit/tests/dependencies/scripts.php (modified) (31 diffs)
-
tests/phpunit/tests/dependencies/styles.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-scripts.php
r61358 r61397 23 23 * 24 24 * @since 2.6.0 25 * @var string 25 * @see wp_default_scripts() 26 * @var string|null 26 27 */ 27 28 public $base_url; … … 31 32 * 32 33 * @since 2.8.0 33 * @var string 34 * @see wp_default_scripts() 35 * @var string|null 34 36 */ 35 37 public $content_url; … … 39 41 * 40 42 * @since 2.6.0 41 * @var string 43 * @see wp_default_scripts() 44 * @var string|null 42 45 */ 43 46 public $default_version; … … 119 122 * 120 123 * @since 2.8.0 124 * @see wp_default_scripts() 121 125 * @var string[]|null 122 126 */ … … 414 418 } 415 419 416 if ( ! empty( $ver ) ) { 417 $src = add_query_arg( 'ver', $ver, $src ); 418 } 420 $query_args = array(); 421 if ( empty( $obj->ver ) && null !== $obj->ver && is_string( $this->default_version ) ) { 422 $query_args['ver'] = $this->default_version; 423 } elseif ( is_scalar( $obj->ver ) ) { 424 $query_args['ver'] = (string) $obj->ver; 425 } 426 if ( isset( $this->args[ $handle ] ) ) { 427 parse_str( $this->args[ $handle ], $parsed_args ); 428 if ( $parsed_args ) { 429 $query_args = array_merge( $query_args, $parsed_args ); 430 } 431 } 432 $src = add_query_arg( rawurlencode_deep( $query_args ), $src ); 419 433 420 434 /** This filter is documented in wp-includes/class-wp-scripts.php */ -
trunk/src/wp-includes/class-wp-styles.php
r61389 r61397 23 23 * 24 24 * @since 2.6.0 25 * @var string 25 * @see wp_default_styles() 26 * @var string|null 26 27 */ 27 28 public $base_url; … … 31 32 * 32 33 * @since 2.8.0 33 * @var string 34 * @see wp_default_styles() 35 * @var string|null 34 36 */ 35 37 public $content_url; … … 39 41 * 40 42 * @since 2.6.0 41 * @var string 43 * @see wp_default_styles() 44 * @var string|null 42 45 */ 43 46 public $default_version; … … 47 50 * 48 51 * @since 2.6.0 52 * @see wp_default_styles() 49 53 * @var string 50 54 */ … … 97 101 * 98 102 * @since 2.8.0 103 * @see wp_default_styles() 99 104 * @var string[]|null 100 105 */ … … 219 224 } 220 225 221 $href = $this->_css_href( $src, $ ver, $handle );226 $href = $this->_css_href( $src, $obj->ver, $handle ); 222 227 if ( ! $href ) { 223 228 return true; … … 426 431 * @since 2.6.0 427 432 * 428 * @param string $src The source of the enqueued style.429 * @param string $ver The version of the enqueued style.430 * @param string $handle The style's registered handle.433 * @param string $src The source of the enqueued style. 434 * @param string|false|null $ver The version of the enqueued style. 435 * @param string $handle The style's registered handle. 431 436 * @return string Style's fully-qualified URL. 432 437 */ … … 436 441 } 437 442 438 if ( ! empty( $ver ) ) { 439 $src = add_query_arg( 'ver', $ver, $src ); 440 } 443 $query_args = array(); 444 if ( empty( $ver ) && null !== $ver && is_string( $this->default_version ) ) { 445 $query_args['ver'] = $this->default_version; 446 } elseif ( is_scalar( $ver ) ) { 447 $query_args['ver'] = (string) $ver; 448 } 449 if ( isset( $this->args[ $handle ] ) ) { 450 parse_str( $this->args[ $handle ], $parsed_args ); 451 if ( $parsed_args ) { 452 $query_args = array_merge( $query_args, $parsed_args ); 453 } 454 } 455 $src = add_query_arg( rawurlencode_deep( $query_args ), $src ); 441 456 442 457 /** -
trunk/tests/phpunit/tests/dependencies/scripts.php
r61394 r61397 112 112 * 113 113 * @ticket 11315 114 * @ticket 64372 114 115 */ 115 116 public function test_wp_enqueue_script() { … … 118 119 wp_enqueue_script( 'no-deps-no-version', 'example.com', array() ); 119 120 wp_enqueue_script( 'empty-deps-no-version', 'example.com' ); 120 wp_enqueue_script( 'empty-deps-version', 'example.com', array(), 1.2);121 wp_enqueue_script( 'empty-deps-version', 'example.com', array(), '1.2' ); 121 122 wp_enqueue_script( 'empty-deps-null-version', 'example.com', array(), null ); 123 wp_enqueue_script( 'empty-deps-arg-in-handle-with-ver?arg1=foo&arg2=bar', 'https://example.com/test.js', array(), '2.0' ); 124 wp_enqueue_script( 'empty-deps-arg-in-handle-without-ver?arg1=foo&arg2=bar', 'https://example.com/test.js', array(), null ); 125 wp_register_script( 'registered-no-qs-handle-null-version-enqueued-with-qs', 'https://example.com/test.js' ); 126 wp_enqueue_script( 'registered-no-qs-handle-null-version-enqueued-with-qs?arg1=foo&arg2=bar' ); 122 127 123 128 $expected = "<script type='text/javascript' src='http://example.com?ver={$wp_version}' id='no-deps-no-version-js'></script>\n"; … … 125 130 $expected .= "<script type='text/javascript' src='http://example.com?ver=1.2' id='empty-deps-version-js'></script>\n"; 126 131 $expected .= "<script type='text/javascript' src='http://example.com' id='empty-deps-null-version-js'></script>\n"; 132 $expected .= "<script type='text/javascript' src='https://example.com/test.js?ver=2.0&arg1=foo&arg2=bar' id='empty-deps-arg-in-handle-with-ver-js'></script>\n"; 133 $expected .= "<script type='text/javascript' src='https://example.com/test.js?arg1=foo&arg2=bar' id='empty-deps-arg-in-handle-without-ver-js'></script>\n"; 134 $expected .= "<script type='text/javascript' src='https://example.com/test.js?ver={$wp_version}&arg1=foo&arg2=bar' id='registered-no-qs-handle-null-version-enqueued-with-qs-js'></script>\n"; 127 135 128 136 $this->assertEqualHTML( $expected, get_echo( 'wp_print_scripts' ) ); … … 565 573 /* ]]> */ 566 574 </script> 567 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-not-async-without-dependency :%20script' id='blocking-not-async-without-dependency-js'></script>575 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-not-async-without-dependency%3A+script' id='blocking-not-async-without-dependency-js'></script> 568 576 <script id="blocking-not-async-without-dependency-js-after" type="text/javascript"> 569 577 /* <![CDATA[ */ … … 578 586 /* ]]> */ 579 587 </script> 580 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependency :%20script' id='async-with-blocking-dependency-js' data-wp-strategy='async'></script>588 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependency%3A+script' id='async-with-blocking-dependency-js' data-wp-strategy='async'></script> 581 589 <script id="async-with-blocking-dependency-js-after" type="text/javascript"> 582 590 /* <![CDATA[ */ … … 614 622 /* ]]> */ 615 623 </script> 616 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-no-dependency :%20script' id='async-no-dependency-js' data-wp-strategy='async'></script>624 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-no-dependency%3A+script' id='async-no-dependency-js' data-wp-strategy='async'></script> 617 625 <script id="async-no-dependency-js-after" type="text/javascript"> 618 626 /* <![CDATA[ */ … … 627 635 /* ]]> */ 628 636 </script> 629 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-one-async-dependency :%20script' id='async-one-async-dependency-js' data-wp-strategy='async'></script>637 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-one-async-dependency%3A+script' id='async-one-async-dependency-js' data-wp-strategy='async'></script> 630 638 <script id="async-one-async-dependency-js-after" type="text/javascript"> 631 639 /* <![CDATA[ */ … … 640 648 /* ]]> */ 641 649 </script> 642 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-two-async-dependencies :%20script' id='async-two-async-dependencies-js' data-wp-strategy='async'></script>650 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-two-async-dependencies%3A+script' id='async-two-async-dependencies-js' data-wp-strategy='async'></script> 643 651 <script id="async-two-async-dependencies-js-after" type="text/javascript"> 644 652 /* <![CDATA[ */ … … 668 676 /* ]]> */ 669 677 </script> 670 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependent :%20script' id='async-with-blocking-dependent-js' data-wp-strategy='async'></script>678 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-blocking-dependent%3A+script' id='async-with-blocking-dependent-js' data-wp-strategy='async'></script> 671 679 <script id="async-with-blocking-dependent-js-after" type="text/javascript"> 672 680 /* <![CDATA[ */ … … 681 689 /* ]]> */ 682 690 </script> 683 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependent-of-async :%20script' id='blocking-dependent-of-async-js'></script>691 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependent-of-async%3A+script' id='blocking-dependent-of-async-js'></script> 684 692 <script id="blocking-dependent-of-async-js-after" type="text/javascript"> 685 693 /* <![CDATA[ */ … … 709 717 /* ]]> */ 710 718 </script> 711 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-defer-dependent :%20script' id='async-with-defer-dependent-js' data-wp-strategy='async'></script>719 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-with-defer-dependent%3A+script' id='async-with-defer-dependent-js' data-wp-strategy='async'></script> 712 720 <script id="async-with-defer-dependent-js-after" type="text/javascript"> 713 721 /* <![CDATA[ */ … … 722 730 /* ]]> */ 723 731 </script> 724 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async :%20script' id='defer-dependent-of-async-js' data-wp-strategy='defer'></script>732 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async%3A+script' id='defer-dependent-of-async-js' data-wp-strategy='defer'></script> 725 733 <script id="defer-dependent-of-async-js-after" type="text/javascript"> 726 734 /* <![CDATA[ */ … … 765 773 /* ]]> */ 766 774 </script> 767 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-none :%20script' id='defer-dependent-of-blocking-bundle-of-none-js' data-wp-strategy='defer'></script>775 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-none%3A+script' id='defer-dependent-of-blocking-bundle-of-none-js' data-wp-strategy='defer'></script> 768 776 <script id="defer-dependent-of-blocking-bundle-of-none-js-after" type="text/javascript"> 769 777 /* <![CDATA[ */ … … 799 807 /* ]]> */ 800 808 </script> 801 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-one :%20script' id='blocking-bundle-member-one-js'></script>809 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-one%3A+script' id='blocking-bundle-member-one-js'></script> 802 810 <script id="blocking-bundle-member-one-js-after" type="text/javascript"> 803 811 /* <![CDATA[ */ … … 812 820 /* ]]> */ 813 821 </script> 814 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-two :%20script' id='blocking-bundle-member-two-js'></script>822 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-bundle-member-two%3A+script' id='blocking-bundle-member-two-js'></script> 815 823 <script id="blocking-bundle-member-two-js-after" type="text/javascript"> 816 824 /* <![CDATA[ */ … … 825 833 /* ]]> */ 826 834 </script> 827 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-two :%20script' id='defer-dependent-of-blocking-bundle-of-two-js' data-wp-strategy='defer'></script>835 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-bundle-of-two%3A+script' id='defer-dependent-of-blocking-bundle-of-two-js' data-wp-strategy='defer'></script> 828 836 <script id="defer-dependent-of-blocking-bundle-of-two-js-after" type="text/javascript"> 829 837 /* <![CDATA[ */ … … 870 878 /* ]]> */ 871 879 </script> 872 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-bundle-of-none :%20script' id='defer-dependent-of-defer-bundle-of-none-js' data-wp-strategy='defer'></script>880 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-bundle-of-none%3A+script' id='defer-dependent-of-defer-bundle-of-none-js' data-wp-strategy='defer'></script> 873 881 <script id="defer-dependent-of-defer-bundle-of-none-js-after" type="text/javascript"> 874 882 /* <![CDATA[ */ … … 901 909 /* ]]> */ 902 910 </script> 903 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-following-dependency :%20script' id='blocking-dependency-with-defer-following-dependency-js'></script>911 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-following-dependency%3A+script' id='blocking-dependency-with-defer-following-dependency-js'></script> 904 912 <script id="blocking-dependency-with-defer-following-dependency-js-after" type="text/javascript"> 905 913 /* <![CDATA[ */ … … 914 922 /* ]]> */ 915 923 </script> 916 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-preceding-dependency :%20script' id='defer-dependency-with-blocking-preceding-dependency-js' data-wp-strategy='defer'></script>924 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-preceding-dependency%3A+script' id='defer-dependency-with-blocking-preceding-dependency-js' data-wp-strategy='defer'></script> 917 925 <script id="defer-dependency-with-blocking-preceding-dependency-js-after" type="text/javascript"> 918 926 /* <![CDATA[ */ … … 927 935 /* ]]> */ 928 936 </script> 929 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-and-defer-dependencies :%20script' id='defer-dependent-of-blocking-and-defer-dependencies-js' data-wp-strategy='defer'></script>937 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-blocking-and-defer-dependencies%3A+script' id='defer-dependent-of-blocking-and-defer-dependencies-js' data-wp-strategy='defer'></script> 930 938 <script id="defer-dependent-of-blocking-and-defer-dependencies-js-after" type="text/javascript"> 931 939 /* <![CDATA[ */ … … 958 966 /* ]]> */ 959 967 </script> 960 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-following-dependency :%20script' id='defer-dependency-with-blocking-following-dependency-js' data-wp-strategy='defer'></script>968 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependency-with-blocking-following-dependency%3A+script' id='defer-dependency-with-blocking-following-dependency-js' data-wp-strategy='defer'></script> 961 969 <script id="defer-dependency-with-blocking-following-dependency-js-after" type="text/javascript"> 962 970 /* <![CDATA[ */ … … 971 979 /* ]]> */ 972 980 </script> 973 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-preceding-dependency :%20script' id='blocking-dependency-with-defer-preceding-dependency-js'></script>981 <script type='text/javascript' src='https://example.com/external.js?script_event_log=blocking-dependency-with-defer-preceding-dependency%3A+script' id='blocking-dependency-with-defer-preceding-dependency-js'></script> 974 982 <script id="blocking-dependency-with-defer-preceding-dependency-js-after" type="text/javascript"> 975 983 /* <![CDATA[ */ … … 984 992 /* ]]> */ 985 993 </script> 986 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-and-blocking-dependencies :%20script' id='defer-dependent-of-defer-and-blocking-dependencies-js' data-wp-strategy='defer'></script>994 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-defer-and-blocking-dependencies%3A+script' id='defer-dependent-of-defer-and-blocking-dependencies-js' data-wp-strategy='defer'></script> 987 995 <script id="defer-dependent-of-defer-and-blocking-dependencies-js-after" type="text/javascript"> 988 996 /* <![CDATA[ */ … … 1012 1020 /* ]]> */ 1013 1021 </script> 1014 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-async-dependent :%20script' id='defer-with-async-dependent-js' data-wp-strategy='defer'></script>1022 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-async-dependent%3A+script' id='defer-with-async-dependent-js' data-wp-strategy='defer'></script> 1015 1023 <script id="defer-with-async-dependent-js-after" type="text/javascript"> 1016 1024 /* <![CDATA[ */ … … 1025 1033 /* ]]> */ 1026 1034 </script> 1027 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-dependent-of-defer :%20script' id='async-dependent-of-defer-js' data-wp-strategy='async'></script>1035 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async-dependent-of-defer%3A+script' id='async-dependent-of-defer-js' data-wp-strategy='async'></script> 1028 1036 <script id="async-dependent-of-defer-js-after" type="text/javascript"> 1029 1037 /* <![CDATA[ */ … … 1049 1057 /* ]]> */ 1050 1058 </script> 1051 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-before-inline :%20script' id='defer-with-before-inline-js' defer='defer' data-wp-strategy='defer'></script>1059 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-before-inline%3A+script' id='defer-with-before-inline-js' defer='defer' data-wp-strategy='defer'></script> 1052 1060 HTML 1053 1061 , … … 1061 1069 }, 1062 1070 'expected_markup' => <<<HTML 1063 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-after-inline :%20script' id='defer-with-after-inline-js' data-wp-strategy='defer'></script>1071 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-with-after-inline%3A+script' id='defer-with-after-inline-js' data-wp-strategy='defer'></script> 1064 1072 <script id="defer-with-after-inline-js-after" type="text/javascript"> 1065 1073 /* <![CDATA[ */ … … 1107 1115 }, 1108 1116 'expected_markup' => <<<HTML 1109 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-one :%20script' id='inner-bundle-member-one-js' data-wp-strategy='defer'></script>1110 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-two :%20script' id='inner-bundle-member-two-js' data-wp-strategy='defer'></script>1111 <script type='text/javascript' src='https://example.com/external.js?script_event_log=outer-bundle-leaf-member :%20script' id='outer-bundle-leaf-member-js'></script>1117 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-one%3A+script' id='inner-bundle-member-one-js' data-wp-strategy='defer'></script> 1118 <script type='text/javascript' src='https://example.com/external.js?script_event_log=inner-bundle-member-two%3A+script' id='inner-bundle-member-two-js' data-wp-strategy='defer'></script> 1119 <script type='text/javascript' src='https://example.com/external.js?script_event_log=outer-bundle-leaf-member%3A+script' id='outer-bundle-leaf-member-js'></script> 1112 1120 <script id="defer-dependent-of-nested-aliases-js-before" type="text/javascript"> 1113 1121 /* <![CDATA[ */ … … 1116 1124 /* ]]> */ 1117 1125 </script> 1118 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-nested-aliases :%20script' id='defer-dependent-of-nested-aliases-js' data-wp-strategy='defer'></script>1126 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-nested-aliases%3A+script' id='defer-dependent-of-nested-aliases-js' data-wp-strategy='defer'></script> 1119 1127 <script id="defer-dependent-of-nested-aliases-js-after" type="text/javascript"> 1120 1128 /* <![CDATA[ */ … … 1140 1148 }, 1141 1149 'expected_markup' => <<<HTML 1142 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async1 :%20script' id='async1-js' defer='defer' data-wp-strategy='async'></script>1143 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async2 :%20script' id='async2-js' defer='defer' data-wp-strategy='async'></script>1144 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async-aliases :%20script' id='defer-dependent-of-async-aliases-js' defer='defer' data-wp-strategy='defer'></script>1150 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async1%3A+script' id='async1-js' defer='defer' data-wp-strategy='async'></script> 1151 <script type='text/javascript' src='https://example.com/external.js?script_event_log=async2%3A+script' id='async2-js' defer='defer' data-wp-strategy='async'></script> 1152 <script type='text/javascript' src='https://example.com/external.js?script_event_log=defer-dependent-of-async-aliases%3A+script' id='defer-dependent-of-async-aliases-js' defer='defer' data-wp-strategy='defer'></script> 1145 1153 HTML 1146 1154 , … … 4158 4166 ); 4159 4167 } 4168 4169 /** 4170 * Test query string on handle when enqueuing script directly. 4171 * 4172 * @ticket 64372 4173 * 4174 * @covers WP_Scripts::do_item 4175 * 4176 * @dataProvider data_varying_versions_handle_args 4177 * 4178 * @param mixed $version Version to pass when enqueuing. 4179 * @param string $expected_query_string Expected query string portion of the script src URL. 4180 */ 4181 public function test_varying_versions_added_to_handle_args_enqueued_scripts( $version, $expected_query_string ) { 4182 wp_enqueue_script( 'test-script?qs1=q1&qs2=q2', '/test-script.js', array(), $version ); 4183 $markup = get_echo( 'wp_print_scripts' ); 4184 4185 $expected = "<script type='text/javascript' src="https://core.trac.wordpress.org/test-script.js?{$expected_query_string}" id='test-script-js'></script>"; 4186 $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" ); 4187 } 4188 4189 /** 4190 * Test query string on handle when registering then enqueuing script. 4191 * 4192 * @ticket 64372 4193 * 4194 * @covers WP_Scripts::do_item 4195 * 4196 * @dataProvider data_varying_versions_handle_args 4197 * 4198 * @param mixed $version Version to pass when enqueuing. 4199 * @param string $expected_query_string Expected query string portion of the script src URL. 4200 */ 4201 public function test_varying_versions_added_to_handle_args_registered_then_enqueued_scripts( $version, $expected_query_string ) { 4202 wp_register_script( 'test-script', '/test-script.js', array(), $version ); 4203 wp_enqueue_script( 'test-script?qs1=q1&qs2=q2' ); 4204 $markup = get_echo( 'wp_print_scripts' ); 4205 4206 $expected = "<script type='text/javascript' src="https://core.trac.wordpress.org/test-script.js?{$expected_query_string}" id='test-script-js'></script>"; 4207 $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" ); 4208 } 4209 4210 /** 4211 * Data provider for: 4212 * - test_varying_versions_added_to_handle_args_enqueued_scripts 4213 * - test_varying_versions_added_to_handle_args_registered_then_enqueued_scripts 4214 * 4215 * @return array[] Data provider. 4216 */ 4217 public function data_varying_versions_handle_args() { 4218 $default_version = get_bloginfo( 'version' ); 4219 4220 return array( 4221 'string' => array( 4222 '1.0.0', 4223 'ver=1.0.0&qs1=q1&qs2=q2', 4224 ), 4225 'null' => array( 4226 null, 4227 'qs1=q1&qs2=q2', 4228 ), 4229 'false' => array( 4230 false, 4231 "ver={$default_version}&qs1=q1&qs2=q2", 4232 ), 4233 'empty-string' => array( 4234 '', 4235 "ver={$default_version}&qs1=q1&qs2=q2", 4236 ), 4237 'zero-string' => array( 4238 '0', 4239 "ver={$default_version}&qs1=q1&qs2=q2", 4240 ), 4241 'integer' => array( 4242 123, 4243 'ver=123&qs1=q1&qs2=q2', 4244 ), 4245 'zero-integer' => array( 4246 0, 4247 "ver={$default_version}&qs1=q1&qs2=q2", 4248 ), 4249 'float' => array( 4250 1.23, 4251 'ver=1.23&qs1=q1&qs2=q2', 4252 ), 4253 'zero-float' => array( 4254 0.0, 4255 "ver={$default_version}&qs1=q1&qs2=q2", 4256 ), 4257 ); 4258 } 4160 4259 } -
trunk/tests/phpunit/tests/dependencies/styles.php
r61392 r61397 56 56 * 57 57 * @ticket 11315 58 * @ticket 64372 58 59 */ 59 60 public function test_wp_enqueue_style() { 60 61 wp_enqueue_style( 'no-deps-no-version', 'example.com' ); 61 wp_enqueue_style( 'no-deps-version', 'example.com', array(), 1.2);62 wp_enqueue_style( 'no-deps-version', 'example.com', array(), '1.2' ); 62 63 wp_enqueue_style( 'no-deps-null-version', 'example.com', array(), null ); 63 64 wp_enqueue_style( 'no-deps-null-version-print-media', 'example.com', array(), null, 'print' ); 65 wp_enqueue_style( 'no-deps-arg-in-handle-with-ver?arg1=foo&arg2=bar', 'https://example.com/test.css', array(), '2.0' ); 66 wp_enqueue_style( 'no-deps-arg-in-handle-without-ver?arg1=foo&arg2=bar', 'https://example.com/test.css', array(), null ); 67 wp_register_style( 'registered-no-qs-handle-null-version-enqueued-with-qs', 'https://example.com/test.css' ); 68 wp_enqueue_style( 'registered-no-qs-handle-null-version-enqueued-with-qs?arg1=foo&arg2=bar' ); 64 69 65 70 $ver = get_bloginfo( 'version' ); … … 68 73 $expected .= "<link rel='stylesheet' id='no-deps-null-version-css' href='http://example.com' type='text/css' media='all' />\n"; 69 74 $expected .= "<link rel='stylesheet' id='no-deps-null-version-print-media-css' href='http://example.com' type='text/css' media='print' />\n"; 75 $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-with-ver-css' href='https://example.com/test.css?ver=2.0&arg1=foo&arg2=bar' type='text/css' media='all' />\n"; 76 $expected .= "<link rel='stylesheet' id='no-deps-arg-in-handle-without-ver-css' href='https://example.com/test.css?arg1=foo&arg2=bar' type='text/css' media='all' />\n"; 77 $expected .= "<link rel='stylesheet' id='registered-no-qs-handle-null-version-enqueued-with-qs-css' href='https://example.com/test.css?ver={$ver}&arg1=foo&arg2=bar' type='text/css' media='all' />\n"; 70 78 71 79 $this->assertEqualHTML( $expected, get_echo( 'wp_print_styles' ) ); … … 845 853 ); 846 854 } 855 856 /** 857 * Test query string on handle when enqueuing styles directly. 858 * 859 * @ticket 64372 860 * 861 * @covers WP_Styles::do_item 862 * 863 * @dataProvider data_varying_versions_handle_args 864 * 865 * @param mixed $version Version to pass when enqueuing. 866 * @param string $expected_query_string Expected query string portion of the style sheet URL. 867 */ 868 public function test_varying_versions_added_to_handle_args_enqueued_styles( $version, $expected_query_string ) { 869 wp_enqueue_style( 'test-style?qs1=q1&qs2=q2', '/test-style.css', array(), $version ); 870 $markup = get_echo( 'wp_print_styles' ); 871 872 $expected = "<link rel='stylesheet' href="https://core.trac.wordpress.org/test-style.css?{$expected_query_string}" id='test-style-css' type='text/css' media='all' />"; 873 $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_styles() with version ' . var_export( $version, true ) . ":\n$markup" ); 874 } 875 876 /** 877 * Test query string on handle when registering then enqueuing styles. 878 * 879 * @ticket 64372 880 * 881 * @covers WP_Styles::do_item 882 * 883 * @dataProvider data_varying_versions_handle_args 884 * 885 * @param mixed $version Version to pass when enqueuing. 886 * @param string $expected_query_string Expected query string portion of the style sheet URL. 887 */ 888 public function test_varying_versions_added_to_handle_args_registered_then_enqueued_styles( $version, $expected_query_string ) { 889 wp_register_style( 'test-style', '/test-style.css', array(), $version ); 890 wp_enqueue_style( 'test-style?qs1=q1&qs2=q2' ); 891 $markup = get_echo( 'wp_print_styles' ); 892 893 $expected = "<link rel='stylesheet' href="https://core.trac.wordpress.org/test-style.css?{$expected_query_string}" id='test-style-css' type='text/css' media='all' />"; 894 $this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_styles() with version ' . var_export( $version, true ) . ":\n$markup" ); 895 } 896 897 /** 898 * Data provider for: 899 * - test_varying_versions_added_to_handle_args_enqueued_styles 900 * - test_varying_versions_added_to_handle_args_registered_then_enqueued_styles 901 * 902 * @return array[] Data provider. 903 */ 904 public function data_varying_versions_handle_args() { 905 $default_version = get_bloginfo( 'version' ); 906 907 return array( 908 'string' => array( 909 '1.0.0', 910 'ver=1.0.0&qs1=q1&qs2=q2', 911 ), 912 'null' => array( 913 null, 914 'qs1=q1&qs2=q2', 915 ), 916 'false' => array( 917 false, 918 "ver={$default_version}&qs1=q1&qs2=q2", 919 ), 920 'empty-string' => array( 921 '', 922 "ver={$default_version}&qs1=q1&qs2=q2", 923 ), 924 'zero-string' => array( 925 '0', 926 "ver={$default_version}&qs1=q1&qs2=q2", 927 ), 928 'integer' => array( 929 123, 930 'ver=123&qs1=q1&qs2=q2', 931 ), 932 'zero-integer' => array( 933 0, 934 "ver={$default_version}&qs1=q1&qs2=q2", 935 ), 936 'float' => array( 937 1.23, 938 'ver=1.23&qs1=q1&qs2=q2', 939 ), 940 'zero-float' => array( 941 0.0, 942 "ver={$default_version}&qs1=q1&qs2=q2", 943 ), 944 ); 945 } 847 946 }
Note: See TracChangeset
for help on using the changeset viewer.