diff --git a/lib/experimental/class-wp-webfonts-provider-local.php b/lib/experimental/class-wp-webfonts-provider-local.php
index 4959fe6f586c27..bf04108524dd72 100644
--- a/lib/experimental/class-wp-webfonts-provider-local.php
+++ b/lib/experimental/class-wp-webfonts-provider-local.php
@@ -35,18 +35,6 @@ class WP_Webfonts_Provider_Local extends WP_Webfonts_Provider {
*/
protected $id = 'local';
- /**
- * Holds a string which contains the type attribute for style tag.
- *
- * If the active theme does not declare HTML5 support for 'style',
- * then it initializes as `type='text/css'`.
- *
- * @since 6.1.0
- *
- * @var string
- */
- private $type_attr = '';
-
/**
* Constructor.
*
@@ -58,7 +46,7 @@ function_exists( 'is_admin' ) && ! is_admin()
&&
function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' )
) {
- $this->type_attr = " type='text/css'";
+ $this->style_tag_atts = " type='text/css'";
}
}
@@ -123,12 +111,6 @@ public function get_css() {
$css .= '@font-face{' . $this->build_font_face_css( $webfont ) . '}';
}
- $css = sprintf(
- "\n",
- $this->type_attr,
- $css
- );
-
return $css;
}
diff --git a/lib/experimental/class-wp-webfonts-provider.php b/lib/experimental/class-wp-webfonts-provider.php
index 5113c0c46c023a..2de789bb7bb09d 100644
--- a/lib/experimental/class-wp-webfonts-provider.php
+++ b/lib/experimental/class-wp-webfonts-provider.php
@@ -34,6 +34,15 @@
*/
abstract class WP_Webfonts_Provider {
+ /**
+ * The provider's unique ID.
+ *
+ * @since X.X.X
+ *
+ * @var string
+ */
+ protected $id = '';
+
/**
* Webfonts to be processed.
*
@@ -43,6 +52,15 @@ abstract class WP_Webfonts_Provider {
*/
protected $webfonts = array();
+ /**
+ * Font-face style tag's attribute(s).
+ *
+ * @since X.X.X
+ *
+ * @var string
+ */
+ protected $style_tag_atts = '';
+
/**
* Sets this provider's webfonts property.
*
@@ -57,6 +75,18 @@ public function set_webfonts( array $webfonts ) {
$this->webfonts = $webfonts;
}
+ /**
+ * Prints the generated styles.
+ *
+ * @since X.X.X
+ */
+ public function print_styles() {
+ printf(
+ $this->get_style_element(),
+ $this->get_css()
+ );
+ }
+
/**
* Gets the `@font-face` CSS for the provider's webfonts.
*
@@ -71,11 +101,13 @@ public function set_webfonts( array $webfonts ) {
abstract public function get_css();
/**
- * Prints the generated styles.
+ * Gets the `\n";
}
}
diff --git a/phpunit/fixtures/mock-provider.php b/phpunit/fixtures/mock-provider.php
index 2e31092ac8f248..91475837e0e916 100644
--- a/phpunit/fixtures/mock-provider.php
+++ b/phpunit/fixtures/mock-provider.php
@@ -8,15 +8,20 @@ class Mock_Provider extends WP_Webfonts_Provider {
*/
protected $id = 'mock';
- /**
- * CSS to print.
- *
- * @var string
- */
- public $css = '%s\n';
-
public function get_css() {
$handles = array_keys( $this->webfonts );
+ return implode( '; ', $handles );
return sprintf( $this->css, implode( '; ', $handles ) );
}
+
+ /**
+ * Gets the `\n",
+ 'font-face-css' => <<
-
CSS
- ,
+ ,
+ ),
),
'woff2 format' => array(
'webfonts' => array(
@@ -119,13 +136,14 @@ public function data_get_css() {
'src' => 'http://example.org/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2',
),
),
- 'expected' => <<
+ 'expected' => array(
+ 'style-element' => "\n",
+ 'font-face-css' => <<
-
CSS
- ,
+
+ ,
+ ),
),
);
}