Skip to content

Commit f9be0f5

Browse files
committed
Update tests to data provider and be version agnostic.
1 parent ba88780 commit f9be0f5

File tree

2 files changed

+146
-80
lines changed

2 files changed

+146
-80
lines changed

tests/phpunit/tests/dependencies/scripts.php

Lines changed: 73 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4132,52 +4132,85 @@ public function test_wp_scripts_doing_it_wrong_for_missing_dependencies() {
41324132
}
41334133

41344134
/**
4135+
* Test query string on handle when enqueuing script directly.
4136+
*
41354137
* @ticket 64372
4138+
*
41364139
* @covers WP_Scripts::do_item
4140+
*
4141+
* @dataProvider data_varying_versions_handle_args
4142+
*
4143+
* @param mixed $version Version to pass when enqueuing.
4144+
* @param string $expected_query_string Expected query string portion of the script src URL.
41374145
*/
4138-
public function test_varying_versions_with_args_added_to_enqueued_handle() {
4139-
$versions = array(
4140-
'string' => '1.0.0', // Same: ver=1.0.0&...
4141-
'null' => null, // Different: Bug Fixed (no ver on this branch)
4142-
'false' => false, // Same: 7.0-alpha...
4143-
'empty-string' => '', // trunk: 7.0-alpha...; this branch ver&qs1=
4144-
'integer' => 123, // Same: 123
4145-
'float' => 1.23, // Same: 1.23
4146-
'zero' => 0, // trunk: 7.0-alpha...; this branch ver=0
4147-
);
4146+
public function test_varying_versions_added_to_handle_args_enqueued_scripts( $version, $expected_query_string ) {
4147+
wp_enqueue_script( 'test-script?qs1=q1&qs2=q2', '/test-script.js', array(), $version );
4148+
$markup = get_echo( 'wp_print_scripts' );
41484149

4149-
foreach ( $versions as $key => $version ) {
4150-
wp_enqueue_script( "enqueue-only-{$key}?qs1=q1&qs2=q2", "/path/to/qs-{$key}.js", array(), $version );
4151-
}
4150+
$expected = "<script type='text/javascript' src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
4151+
$this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" );
4152+
}
41524153

4153-
// This does nothing on either trunk or feature branch. I think that's fine.
4154-
foreach ( $versions as $key => $version ) {
4155-
wp_register_script( "register-qs-then-enqueue-{$key}?qs1=q1&qs2=q2", "/path/to/qs2-{$key}.js", array(), $version );
4156-
wp_enqueue_script( "register-qs-then-enqueue-{$key}?qs1=q1&qs2=q2" );
4157-
}
4154+
/**
4155+
* Test query string on handle when registering then enqueuing script.
4156+
*
4157+
* @ticket 64372
4158+
*
4159+
* @covers WP_Scripts::do_item
4160+
*
4161+
* @dataProvider data_varying_versions_handle_args
4162+
*
4163+
* @param mixed $version Version to pass when enqueuing.
4164+
* @param string $expected_query_string Expected query string portion of the script src URL.
4165+
*/
4166+
public function test_varying_versions_added_to_handle_args_registered_then_enqueued_scripts( $version, $expected_query_string ) {
4167+
wp_register_script( 'test-script', '/test-script.js', array(), $version );
4168+
wp_enqueue_script( 'test-script?qs1=q1&qs2=q2' );
4169+
$markup = get_echo( 'wp_print_scripts' );
41584170

4159-
foreach ( $versions as $key => $version ) {
4160-
wp_register_script( "register-then-enqueue-qs-{$key}", "/path/to/qs3-{$key}.js", array(), $version );
4161-
wp_enqueue_script( "register-then-enqueue-qs-{$key}?qs1=q1&qs2=q2" );
4162-
}
4171+
$expected = "<script type='text/javascript' src='/test-script.js?{$expected_query_string}' id='test-script-js'></script>";
4172+
$this->assertEqualHTML( $expected, $markup, '<body>', 'Expected equal snapshot for wp_print_scripts() with version ' . var_export( $version, true ) . ":\n$markup" );
4173+
}
41634174

4164-
$markup = get_echo( 'wp_print_scripts' );
4165-
$expected = <<<'JS'
4166-
<script type="text/javascript" src="/path/to/qs-string.js?ver=1.0.0&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-string-js"></script>
4167-
<script type="text/javascript" src="/path/to/qs-null.js?qs1=q1&amp;qs2=q2" id="enqueue-only-null-js"></script>
4168-
<script type="text/javascript" src="/path/to/qs-false.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-false-js"></script>
4169-
<script type="text/javascript" src="/path/to/qs-empty-string.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-empty-string-js"></script>
4170-
<script type="text/javascript" src="/path/to/qs-integer.js?ver=123&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-integer-js"></script>
4171-
<script type="text/javascript" src="/path/to/qs-float.js?ver=1.23&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-float-js"></script>
4172-
<script type="text/javascript" src="/path/to/qs-zero.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="enqueue-only-zero-js"></script>
4173-
<script type="text/javascript" src="/path/to/qs3-string.js?ver=1.0.0&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-string-js"></script>
4174-
<script type="text/javascript" src="/path/to/qs3-null.js?qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-null-js"></script>
4175-
<script type="text/javascript" src="/path/to/qs3-false.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-false-js"></script>
4176-
<script type="text/javascript" src="/path/to/qs3-empty-string.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-empty-string-js"></script>
4177-
<script type="text/javascript" src="/path/to/qs3-integer.js?ver=123&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-integer-js"></script>
4178-
<script type="text/javascript" src="/path/to/qs3-float.js?ver=1.23&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-float-js"></script>
4179-
<script type="text/javascript" src="/path/to/qs3-zero.js?ver=7.0-alpha-61215-src&amp;qs1=q1&amp;qs2=q2" id="register-then-enqueue-qs-zero-js"></script>
4180-
JS;
4181-
$this->assertEqualHTML( $expected, $markup, '<body>', "Expected equal snapshot for wp_print_scripts():\n$markup" );
4175+
/**
4176+
* Data provider for:
4177+
* - test_varying_versions_added_to_handle_args_enqueued_scripts
4178+
* - test_varying_versions_added_to_handle_args_registered_then_enqueued_scripts
4179+
*
4180+
* @return array[]
4181+
*/
4182+
public function data_varying_versions_handle_args() {
4183+
$default_version = get_bloginfo( 'version' );
4184+
4185+
return array(
4186+
'string' => array(
4187+
'1.0.0',
4188+
'ver=1.0.0&amp;qs1=q1&amp;qs2=q2',
4189+
),
4190+
'null' => array(
4191+
null,
4192+
'qs1=q1&amp;qs2=q2',
4193+
),
4194+
'false' => array(
4195+
false,
4196+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
4197+
),
4198+
'empty-string' => array(
4199+
'',
4200+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
4201+
),
4202+
'integer' => array(
4203+
123,
4204+
'ver=123&amp;qs1=q1&amp;qs2=q2',
4205+
),
4206+
'float' => array(
4207+
1.23,
4208+
'ver=1.23&amp;qs1=q1&amp;qs2=q2',
4209+
),
4210+
'zero' => array(
4211+
0,
4212+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
4213+
),
4214+
);
41824215
}
41834216
}

tests/phpunit/tests/dependencies/styles.php

Lines changed: 73 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -854,52 +854,85 @@ public function test_wp_style_doing_it_wrong_for_missing_dependencies() {
854854
}
855855

856856
/**
857+
* Test query string on handle when enqueuing styles directly.
858+
*
857859
* @ticket 64372
860+
*
858861
* @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.
859867
*/
860-
public function test_varying_versions_with_args_added_to_enqueued_handle() {
861-
$versions = array(
862-
'string' => '1.0.0', // Same: ver=1.0.0&...
863-
'null' => null, // Different: Bug Fixed (no ver on this branch)
864-
'false' => false, // Same: 7.0-alpha...
865-
'empty-string' => '', // trunk: 7.0-alpha...; this branch ver&qs1=
866-
'integer' => 123, // Same: 123
867-
'float' => 1.23, // Same: 1.23
868-
'zero' => 0, // trunk: 7.0-alpha...; this branch ver=0
869-
);
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' );
870871

871-
foreach ( $versions as $key => $version ) {
872-
wp_enqueue_style( "enqueue-only-{$key}?qs1=q1&qs2=q2", "/path/to/qs-{$key}.css", array(), $version );
873-
}
872+
$expected = "<link rel='stylesheet' href='/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+
}
874875

875-
// This does nothing on either trunk or feature branch. I think that's fine.
876-
foreach ( $versions as $key => $version ) {
877-
wp_register_style( "register-qs-then-enqueue-{$key}?qs1=q1&qs2=q2", "/path/to/qs2-{$key}.css", array(), $version );
878-
wp_enqueue_style( "register-qs-then-enqueue-{$key}?qs1=q1&qs2=q2" );
879-
}
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' );
880892

881-
foreach ( $versions as $key => $version ) {
882-
wp_register_style( "register-then-enqueue-qs-{$key}", "/path/to/qs3-{$key}.css", array(), $version );
883-
wp_enqueue_style( "register-then-enqueue-qs-{$key}?qs1=q1&qs2=q2" );
884-
}
893+
$expected = "<link rel='stylesheet' href='/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_scripts
900+
* - test_varying_versions_added_to_handle_args_registered_then_enqueued_scripts
901+
*
902+
* @return array[]
903+
*/
904+
public function data_varying_versions_handle_args() {
905+
$default_version = get_bloginfo( 'version' );
885906

886-
$markup = get_echo( 'wp_print_styles' );
887-
$expected = <<<'JS'
888-
<link rel='stylesheet' id='enqueue-only-string-css' href='/path/to/qs-string.css?ver=1.0.0&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
889-
<link rel='stylesheet' id='enqueue-only-null-css' href='/path/to/qs-null.css?qs1=q1&#038;qs2=q2' type='text/css' media='all' />
890-
<link rel='stylesheet' id='enqueue-only-false-css' href='/path/to/qs-false.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
891-
<link rel='stylesheet' id='enqueue-only-empty-string-css' href='/path/to/qs-empty-string.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
892-
<link rel='stylesheet' id='enqueue-only-integer-css' href='/path/to/qs-integer.css?ver=123&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
893-
<link rel='stylesheet' id='enqueue-only-float-css' href='/path/to/qs-float.css?ver=1.23&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
894-
<link rel='stylesheet' id='enqueue-only-zero-css' href='/path/to/qs-zero.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
895-
<link rel='stylesheet' id='register-then-enqueue-qs-string-css' href='/path/to/qs3-string.css?ver=1.0.0&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
896-
<link rel='stylesheet' id='register-then-enqueue-qs-null-css' href='/path/to/qs3-null.css?qs1=q1&#038;qs2=q2' type='text/css' media='all' />
897-
<link rel='stylesheet' id='register-then-enqueue-qs-false-css' href='/path/to/qs3-false.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
898-
<link rel='stylesheet' id='register-then-enqueue-qs-empty-string-css' href='/path/to/qs3-empty-string.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
899-
<link rel='stylesheet' id='register-then-enqueue-qs-integer-css' href='/path/to/qs3-integer.css?ver=123&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
900-
<link rel='stylesheet' id='register-then-enqueue-qs-float-css' href='/path/to/qs3-float.css?ver=1.23&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
901-
<link rel='stylesheet' id='register-then-enqueue-qs-zero-css' href='/path/to/qs3-zero.css?ver=7.0-alpha-61215-src&#038;qs1=q1&#038;qs2=q2' type='text/css' media='all' />
902-
JS;
903-
$this->assertEqualHTML( $expected, $markup, '<body>', "Expected equal snapshot for wp_print_styles():\n$markup" );
907+
return array(
908+
'string' => array(
909+
'1.0.0',
910+
'ver=1.0.0&amp;qs1=q1&amp;qs2=q2',
911+
),
912+
'null' => array(
913+
null,
914+
'qs1=q1&amp;qs2=q2',
915+
),
916+
'false' => array(
917+
false,
918+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
919+
),
920+
'empty-string' => array(
921+
'',
922+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
923+
),
924+
'integer' => array(
925+
123,
926+
'ver=123&amp;qs1=q1&amp;qs2=q2',
927+
),
928+
'float' => array(
929+
1.23,
930+
'ver=1.23&amp;qs1=q1&amp;qs2=q2',
931+
),
932+
'zero' => array(
933+
0,
934+
"ver={$default_version}&amp;qs1=q1&amp;qs2=q2",
935+
),
936+
);
904937
}
905938
}

0 commit comments

Comments
 (0)