Skip to content

Commit 7fed5be

Browse files
committed
Script Loader: Prevent double space between attributes in WP_Styles class.
This changeset prevents `<link />` elements to display a double space between attributes when no `title` attribute is provided. Props elten, audrasjb, whaze, SergeyBiryukov. Fixes #56675. git-svn-id: https://develop.svn.wordpress.org/trunk@54348 602fd350-edb4-49c9-b593-d223f7449a82
1 parent e7f52d6 commit 7fed5be

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

src/wp-includes/class-wp-styles.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,10 @@ public function do_item( $handle, $group = false ) {
224224
}
225225

226226
$rel = isset( $obj->extra['alt'] ) && $obj->extra['alt'] ? 'alternate stylesheet' : 'stylesheet';
227-
$title = isset( $obj->extra['title'] ) ? sprintf( "title='%s'", esc_attr( $obj->extra['title'] ) ) : '';
227+
$title = isset( $obj->extra['title'] ) ? sprintf( " title='%s'", esc_attr( $obj->extra['title'] ) ) : '';
228228

229229
$tag = sprintf(
230-
"<link rel='%s' id='%s-css' %s href='%s'%s media='%s' />\n",
230+
"<link rel='%s' id='%s-css'%s href='%s'%s media='%s' />\n",
231231
$rel,
232232
$handle,
233233
$title,
@@ -259,7 +259,7 @@ public function do_item( $handle, $group = false ) {
259259
}
260260

261261
$rtl_tag = sprintf(
262-
"<link rel='%s' id='%s-rtl-css' %s href='%s'%s media='%s' />\n",
262+
"<link rel='%s' id='%s-rtl-css'%s href='%s'%s media='%s' />\n",
263263
$rel,
264264
$handle,
265265
$title,

tests/phpunit/tests/dependencies/styles.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ public function test_wp_enqueue_style() {
6363
wp_enqueue_style( 'no-deps-null-version-print-media', 'example.com', array(), null, 'print' );
6464

6565
$ver = get_bloginfo( 'version' );
66-
$expected = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' type='text/css' media='all' />\n";
67-
$expected .= "<link rel='stylesheet' id='no-deps-version-css' href='http://example.com?ver=1.2' type='text/css' media='all' />\n";
68-
$expected .= "<link rel='stylesheet' id='no-deps-null-version-css' href='http://example.com' type='text/css' media='all' />\n";
69-
$expected .= "<link rel='stylesheet' id='no-deps-null-version-print-media-css' href='http://example.com' type='text/css' media='print' />\n";
66+
$expected = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' type='text/css' media='all' />\n";
67+
$expected .= "<link rel='stylesheet' id='no-deps-version-css' href='http://example.com?ver=1.2' type='text/css' media='all' />\n";
68+
$expected .= "<link rel='stylesheet' id='no-deps-null-version-css' href='http://example.com' type='text/css' media='all' />\n";
69+
$expected .= "<link rel='stylesheet' id='no-deps-null-version-print-media-css' href='http://example.com' type='text/css' media='print' />\n";
7070

7171
$this->assertSame( $expected, get_echo( 'wp_print_styles' ) );
7272

@@ -86,7 +86,7 @@ public function test_wp_enqueue_style_with_html5_support_does_not_contain_type_a
8686
wp_enqueue_style( 'no-deps-no-version', 'example.com' );
8787

8888
$ver = get_bloginfo( 'version' );
89-
$expected = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' media='all' />\n";
89+
$expected = "<link rel='stylesheet' id='no-deps-no-version-css' href='http://example.com?ver=$ver' media='all' />\n";
9090

9191
$this->assertSame( $expected, get_echo( 'wp_print_styles' ) );
9292
}
@@ -107,24 +107,24 @@ public function test_protocols() {
107107

108108
// Try with an HTTP reference.
109109
wp_enqueue_style( 'reset-css-http', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
110-
$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";
110+
$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";
111111

112112
// Try with an HTTPS reference.
113113
wp_enqueue_style( 'reset-css-https', 'http://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
114-
$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";
114+
$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";
115115

116116
// Try with an automatic protocol reference (//).
117117
wp_enqueue_style( 'reset-css-doubleslash', '//yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
118-
$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";
118+
$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";
119119

120120
// Try with a local resource and an automatic protocol reference (//).
121121
$url = '//my_plugin/style.css';
122122
wp_enqueue_style( 'plugin-style', $url );
123-
$expected .= "<link rel='stylesheet' id='plugin-style-css' href='$url?ver=$ver' type='text/css' media='all' />\n";
123+
$expected .= "<link rel='stylesheet' id='plugin-style-css' href='$url?ver=$ver' type='text/css' media='all' />\n";
124124

125125
// Try with a bad protocol.
126126
wp_enqueue_style( 'reset-css-ftp', 'ftp://yui.yahooapis.com/2.8.1/build/reset/reset-min.css' );
127-
$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";
127+
$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";
128128

129129
// Go!
130130
$this->assertSame( $expected, get_echo( 'wp_print_styles' ) );
@@ -147,7 +147,7 @@ public function test_inline_styles() {
147147
$style .= "\tbackground: red;\n";
148148
$style .= '}';
149149

150-
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
150+
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
151151
$expected .= "<style id='handle-inline-css' type='text/css'>\n";
152152
$expected .= "$style\n";
153153
$expected .= "</style>\n";
@@ -176,7 +176,7 @@ public function test_inline_styles_concat() {
176176
$style .= "\tbackground: red;\n";
177177
$style .= '}';
178178

179-
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
179+
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
180180
$expected .= "<style id='handle-inline-css' type='text/css'>\n";
181181
$expected .= "$style\n";
182182
$expected .= "</style>\n";
@@ -258,7 +258,7 @@ public function test_multiple_inline_styles() {
258258
$style2 .= "\tbackground: blue;\n";
259259
$style2 .= '}';
260260

261-
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
261+
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
262262
$expected .= "<style id='handle-inline-css' type='text/css'>\n";
263263
$expected .= "$style1\n";
264264
$expected .= "$style2\n";
@@ -287,7 +287,7 @@ public function test_plugin_doing_inline_styles_wrong() {
287287
$style .= "}\n";
288288
$style .= '</style>';
289289

290-
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
290+
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
291291
$expected .= "$style\n";
292292

293293
wp_enqueue_style( 'handle', 'http://example.com', array(), 1 );
@@ -305,7 +305,7 @@ public function test_plugin_doing_inline_styles_wrong() {
305305
*/
306306
public function test_unnecessary_style_tags() {
307307

308-
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
308+
$expected = "<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
309309

310310
wp_enqueue_style( 'handle', 'http://example.com', array(), 1 );
311311

@@ -320,7 +320,7 @@ public function test_unnecessary_style_tags() {
320320
public function test_conditional_inline_styles_are_also_conditional() {
321321
$expected = <<<CSS
322322
<!--[if IE]>
323-
<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />
323+
<link rel='stylesheet' id='handle-css' href='http://example.com?ver=1' type='text/css' media='all' />
324324
<style id='handle-inline-css' type='text/css'>
325325
a { color: blue; }
326326
</style>
@@ -350,8 +350,8 @@ public function test_wp_register_style() {
350350
public function test_wp_add_inline_style_for_handle_without_source() {
351351
$style = 'a { color: blue; }';
352352

353-
$expected = "<link rel='stylesheet' id='handle-one-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
354-
$expected .= "<link rel='stylesheet' id='handle-two-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
353+
$expected = "<link rel='stylesheet' id='handle-one-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
354+
$expected .= "<link rel='stylesheet' id='handle-two-css' href='http://example.com?ver=1' type='text/css' media='all' />\n";
355355
$expected .= "<style id='handle-three-inline-css' type='text/css'>\n";
356356
$expected .= "$style\n";
357357
$expected .= "</style>\n";

0 commit comments

Comments
 (0)