diff --git a/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontFamilyName.php b/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontFamilyName.php deleted file mode 100644 index 5054b291ac137..0000000000000 --- a/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontFamilyName.php +++ /dev/null @@ -1,140 +0,0 @@ -setAccessible( true ); - - parent::set_up_before_class(); - } - - public static function tear_down_after_class() { - self::$resolver->setAccessible( false ); - - parent::tear_down_after_class(); - } - - /** - * @dataProvider data_should_return_font_family_name - * - * @param array $definition The font-family definition to test. - * @param string $expected Expected font-family name. - */ - public function test_should_return_font_family_name( $definition, $expected ) { - $actual = static::$resolver->invokeArgs( null, array( $definition ) ); - - $this->assertSame( $actual, $expected ); - } - - /** - * Data provider. - * - * @return array - */ - public function data_should_return_font_family_name() { - return array( - 'name and fontFamily declared' => array( - 'definition' => array( - 'fontFamily' => 'DM Sans', - 'name' => 'DM Sans', - 'slug' => 'dm-sans', - 'fontFace' => array( - 'fontFamily' => 'DM Sans', - 'fontStretch' => 'normal', - 'fontStyle' => 'italic', - 'fontWeight' => '700', - 'src' => array( - 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', - ), - ), - ), - 'expected' => 'DM Sans', - ), - 'only name declared' => array( - 'definition' => array( - 'name' => 'DM Sans', - 'fontFace' => array( - 'fontFamily' => 'DM Sans', - 'fontStretch' => 'normal', - 'fontStyle' => 'italic', - 'fontWeight' => '700', - 'src' => array( - 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', - ), - ), - ), - 'expected' => 'DM Sans', - ), - 'only fontFamily declared' => array( - 'definition' => array( - 'fontFamily' => 'DM Sans', - 'slug' => 'dm-sans', - 'fontFace' => array( - 'fontFamily' => 'DM Sans', - 'fontStretch' => 'normal', - 'fontStyle' => 'italic', - 'fontWeight' => '700', - 'src' => array( - 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', - ), - ), - ), - 'expected' => 'DM Sans', - ), - 'fontFamily comma-separated list' => array( - 'definition' => array( - 'fontFamily' => 'DM Sans, sans-serif', - 'slug' => 'dm-sans', - 'fontFace' => array( - 'fontFamily' => 'DM Sans', - 'fontStretch' => 'normal', - 'fontStyle' => 'italic', - 'fontWeight' => '700', - 'src' => array( - 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', - ), - ), - ), - 'expected' => 'DM Sans', - ), - ); - } - - public function test_should_return_empty_string_on_failure() { - $definition = array( - 'slug' => 'dm-sans', - 'fontFace' => array( - 'fontFamily' => 'DM Sans', - 'fontStretch' => 'normal', - 'fontStyle' => 'italic', - 'fontWeight' => '700', - 'src' => array( - 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', - ), - ), - ); - - $actual = static::$resolver->invokeArgs( null, array( $definition ) ); - $expected = ''; - $this->assertSame( $actual, $expected ); - } -} diff --git a/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php b/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php index 481c451bbafa0..a3861e6102db5 100644 --- a/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php +++ b/phpunit/tests/fonts/font-face/wpFontFaceResolver/getFontsFromThemeJson.php @@ -101,4 +101,108 @@ public function data_should_replace_src_file_placeholder() { ), ); } + + /** + * @dataProvider data_should_get_font_family_name + * + * @param array $fonts Fonts to test. + * @param string $expected_name Expected font-family name. + */ + public function test_should_get_font_family_name( $fonts, $expected_name ) { + switch_theme( static::FONTS_THEME ); + + $replace_fonts = static function ( $theme_json_data ) use ( $fonts ) { + $data = $theme_json_data->get_data(); + + // Replace typography.fontFamilies. + $data['settings']['typography']['fontFamilies']['theme'] = $fonts; + + return new WP_Theme_JSON_Data_Gutenberg( $data ); + }; + add_filter( 'wp_theme_json_data_theme', $replace_fonts ); + $fonts = WP_Font_Face_Resolver::get_fonts_from_theme_json(); + remove_filter( 'wp_theme_json_data_theme', $replace_fonts ); + + $this->assertArrayHasKey( $expected_name, $fonts ); + } + + /** + * Data provider. + * + * @return array + */ + public function data_should_get_font_family_name() { + $font_face = array( + array( + 'fontFamily' => 'DM Sans', + 'fontStretch' => 'normal', + 'fontStyle' => 'normal', + 'fontWeight' => '400', + 'src' => array( + 'file:./assets/fonts/dm-sans/DMSans-Regular.woff2', + ), + ), + array( + 'fontFamily' => 'DM Sans', + 'fontStretch' => 'normal', + 'fontStyle' => 'italic', + 'fontWeight' => '400', + 'src' => array( + 'file:./assets/fonts/dm-sans/DMSans-Regular-Italic.woff2', + ), + ), + array( + 'fontFamily' => 'DM Sans', + 'fontStretch' => 'normal', + 'fontStyle' => 'italic', + 'fontWeight' => '700', + 'src' => array( + 'file:./assets/fonts/dm-sans/DMSans-Bold.woff2', + ), + ), + array( + 'fontFamily' => 'DM Sans', + 'fontStretch' => 'normal', + 'fontStyle' => 'italic', + 'fontWeight' => '700', + 'src' => array( + 'file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2', + ), + ), + ); + + return array( + 'name declared' => array( + 'fonts' => array( + array( + 'fontFamily' => 'DM Sans', + 'name' => 'DM Sans', + 'slug' => 'dm-sans', + 'fontFace' => $font_face, + ), + ), + 'expected_name' => 'DM Sans', + ), + 'name not declared' => array( + 'fonts' => array( + array( + 'fontFamily' => 'DM Sans', + 'slug' => 'dm-sans', + 'fontFace' => $font_face, + ), + ), + 'expected_name' => 'DM Sans', + ), + 'fontFamily comma-separated list' => array( + 'fonts' => array( + array( + 'fontFamily' => 'DM Sans, sans-serif', + 'slug' => 'dm-sans', + 'fontFace' => $font_face, + ), + ), + 'expected_name' => 'DM Sans', + ), + ); + } }