Changeset 49639 for trunk/tests/phpunit/tests/l10n/loadScriptTextdomain.php
- Timestamp:
- 11/17/2020 08:50:21 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/l10n/loadScriptTextdomain.php
r48937 r49639 6 6 */ 7 7 class Tests_L10n_loadScriptTextdomain extends WP_UnitTestCase { 8 public function site_url_subdirectory( $site_url ) { 9 return $site_url . '/wp'; 8 9 /** 10 * @ticket 45528 11 * @ticket 46336 12 * @ticket 46387 13 * @ticket 49145 14 * 15 * @dataProvider data_test_resolve_relative_path 16 */ 17 public function test_resolve_relative_path( $translation_path, $handle, $src, $textdomain, $filter = array() ) { 18 if ( ! empty( $filter ) ) { 19 add_filter( $filter[0], $filter[1], 10, isset( $filter[2] ) ? $filter[2] : 1 ); 20 } 21 wp_enqueue_script( $handle, $src, array(), null ); 22 23 $expected = file_get_contents( DIR_TESTDATA . $translation_path ); 24 $this->assertSame( $expected, load_script_textdomain( $handle, $textdomain, DIR_TESTDATA . '/languages' ) ); 25 } 26 27 public function data_test_resolve_relative_path() { 28 return array( 29 // @ticket 45528 30 array( 31 '/languages/en_US-813e104eb47e13dd4cc5af844c618754.json', 32 'test-example-root', 33 '/wp-includes/js/script.js', 34 'default', 35 ), 36 // Assets on a CDN. 37 array( 38 '/languages/en_US-813e104eb47e13dd4cc5af844c618754.json', 39 'test-example-cdn', 40 'https://my-cdn.com/wordpress/wp-includes/js/script.js', 41 'default', 42 array( 'load_script_textdomain_relative_path', array( $this, 'relative_path_from_cdn' ), 2 ), 43 ), 44 // Test for WordPress installs in a subdirectory. 45 array( 46 '/languages/en_US-813e104eb47e13dd4cc5af844c618754.json', 47 'test-example-subdir', 48 '/wp/wp-includes/js/script.js', 49 'default', 50 array( 51 'site_url', 52 function ( $site_url ) { 53 return $site_url . '/wp'; 54 }, 55 ), 56 ), 57 // @ticket 46336 58 array( 59 '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json', 60 'plugin-example-1', 61 'https://plugins.example.com/my-plugin/js/script.js', 62 'internationalized-plugin', 63 array( 64 'plugins_url', 65 function () { 66 return 'https://plugins.example.com'; 67 }, 68 ), 69 ), 70 // @ticket 46387 71 array( 72 '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json', 73 'plugin-example-2', 74 'https://content.example.com/plugins/my-plugin/js/script.js', 75 'internationalized-plugin', 76 array( 77 'content_url', 78 function () { 79 return 'https://content.example.com'; 80 }, 81 ), 82 ), 83 // @ticket 49145 84 array( 85 '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json', 86 'test-when-no-content_url-host', 87 'https://content.example.com/plugins/my-plugin/js/script.js', 88 'internationalized-plugin', 89 array( 90 'content_url', 91 function () { 92 return '/'; 93 }, 94 ), 95 ), 96 // @ticket 49145 97 array( 98 '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json', 99 'test-when-no-plugins_url-host', 100 'https://plugins.example.com/my-plugin/js/script.js', 101 'internationalized-plugin', 102 array( 103 'plugins_url', 104 function () { 105 return '/'; 106 }, 107 ), 108 ), 109 // @ticket 49145 110 array( 111 '/languages/en_US-813e104eb47e13dd4cc5af844c618754.json', 112 'test-when-no-site_url-host', 113 '/wp/wp-includes/js/script.js', 114 'default', 115 array( 116 'site_url', 117 function () { 118 return '/wp'; 119 }, 120 ), 121 ), 122 ); 10 123 } 11 124 … … 17 130 return $relative; 18 131 } 19 20 public function plugins_url_custom_domain() {21 return 'https://plugins.example.com';22 }23 24 public function content_url_custom_domain_with_no_path() {25 return 'https://content.example.com';26 }27 28 /**29 * @ticket 4552830 */31 public function test_resolve_relative_path() {32 $json_translations = file_get_contents( DIR_TESTDATA . '/languages/en_US-813e104eb47e13dd4cc5af844c618754.json' );33 34 wp_enqueue_script( 'test-example-root', '/wp-includes/js/script.js', array(), null );35 $this->assertSame( $json_translations, load_script_textdomain( 'test-example-root', 'default', DIR_TESTDATA . '/languages' ) );36 37 // Assets on a CDN.38 add_filter( 'load_script_textdomain_relative_path', array( $this, 'relative_path_from_cdn' ), 10, 2 );39 wp_enqueue_script( 'test-example-cdn', 'https://my-cdn.com/wordpress/wp-includes/js/script.js', array(), null );40 $this->assertSame( $json_translations, load_script_textdomain( 'test-example-cdn', 'default', DIR_TESTDATA . '/languages' ) );41 remove_filter( 'load_script_textdomain_relative_path', array( $this, 'relative_path_from_cdn' ) );42 43 // Test for WordPress installs in a subdirectory.44 add_filter( 'site_url', array( $this, 'site_url_subdirectory' ) );45 wp_enqueue_script( 'test-example-subdir', '/wp/wp-includes/js/script.js', array(), null );46 $this->assertSame( $json_translations, load_script_textdomain( 'test-example-subdir', 'default', DIR_TESTDATA . '/languages' ) );47 remove_filter( 'site_url', array( $this, 'site_url_subdirectory' ) );48 }49 50 /**51 * @ticket 4633652 */53 public function test_resolve_relative_path_custom_plugins_url() {54 $json_translations = file_get_contents( DIR_TESTDATA . '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json' );55 56 add_filter( 'plugins_url', array( $this, 'plugins_url_custom_domain' ) );57 wp_enqueue_script( 'plugin-example-1', 'https://plugins.example.com/my-plugin/js/script.js', array(), null );58 $this->assertSame( $json_translations, load_script_textdomain( 'plugin-example-1', 'internationalized-plugin', DIR_TESTDATA . '/languages' ) );59 remove_filter( 'plugins_url', array( $this, 'plugins_url_custom_domain' ) );60 }61 62 /**63 * @ticket 4638764 */65 public function test_resolve_relative_path_custom_content_url() {66 $json_translations = file_get_contents( DIR_TESTDATA . '/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json' );67 68 add_filter( 'content_url', array( $this, 'content_url_custom_domain_with_no_path' ) );69 wp_enqueue_script( 'plugin-example-2', 'https://content.example.com/plugins/my-plugin/js/script.js', array(), null );70 $this->assertSame( $json_translations, load_script_textdomain( 'plugin-example-2', 'internationalized-plugin', DIR_TESTDATA . '/languages' ) );71 remove_filter( 'content_url', array( $this, 'content_url_custom_domain_with_no_path' ) );72 }73 132 }
Note: See TracChangeset
for help on using the changeset viewer.