Changeset 39125
- Timestamp:
- 11/03/2016 07:56:53 PM (9 years ago)
- Location:
- trunk/tests/phpunit/tests
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/l10n.php
r38930 r39125 34 34 } 35 35 36 function test_load_unload_textdomain() {37 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );38 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) );39 40 $file = DIR_TESTDATA . '/pomo/simple.mo';41 $this->assertTrue( load_textdomain( 'wp-tests-domain', $file ) );42 $this->assertTrue( is_textdomain_loaded( 'wp-tests-domain' ) );43 $this->assertTrue( unload_textdomain( 'wp-tests-domain' ) );44 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );45 }46 47 36 /** 48 37 * @ticket 35073 … … 52 41 $this->assertEquals( 'before-last-bar', before_last_bar( 'before-last-bar|after-bar' ) ); 53 42 $this->assertEquals( 'first-before-bar|second-before-bar', before_last_bar( 'first-before-bar|second-before-bar|after-last-bar' ) ); 54 }55 56 /**57 * @ticket 2131958 */59 function test_is_textdomain_loaded_for_no_translations() {60 $this->assertFalse( load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ) );61 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );62 $this->assertInstanceOf( 'NOOP_Translations', get_translations_for_domain( 'wp-tests-domain' ) );63 // Ensure that we don't confuse NOOP_Translations to be a loaded text domain.64 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );65 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) );66 }67 68 /**69 * @ticket 2131970 */71 function test_is_textdomain_is_not_loaded_after_gettext_call_with_no_translations() {72 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );73 __( 'just some string', 'wp-tests-domain' );74 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );75 43 } 76 44 … … 177 145 $this->assertNotEmpty( $array['X-Generator'] ); 178 146 } 179 180 function test_override_load_textdomain_noop() {181 add_filter( 'override_load_textdomain', '__return_true' );182 $load_textdomain = load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' );183 remove_filter( 'override_load_textdomain', '__return_true' );184 185 $this->assertTrue( $load_textdomain );186 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) );187 }188 189 function test_override_load_textdomain_non_existent_mofile() {190 add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );191 $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/non-existent-file.mo' );192 remove_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ) );193 194 $is_textdomain_loaded = is_textdomain_loaded( 'wp-tests-domain' );195 unload_textdomain( 'wp-tests-domain' );196 $is_textdomain_loaded_after = is_textdomain_loaded( 'wp-tests-domain' );197 198 $this->assertFalse( $load_textdomain );199 $this->assertFalse( $is_textdomain_loaded );200 $this->assertFalse( $is_textdomain_loaded_after );201 }202 203 function test_override_load_textdomain_custom_mofile() {204 add_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ), 10, 3 );205 $load_textdomain = load_textdomain( 'wp-tests-domain', WP_LANG_DIR . '/plugins/internationalized-plugin-de_DE.mo' );206 remove_filter( 'override_load_textdomain', array( $this, '_override_load_textdomain_filter' ) );207 208 $is_textdomain_loaded = is_textdomain_loaded( 'wp-tests-domain' );209 unload_textdomain( 'wp-tests-domain' );210 $is_textdomain_loaded_after = is_textdomain_loaded( 'wp-tests-domain' );211 212 $this->assertTrue( $load_textdomain );213 $this->assertTrue( $is_textdomain_loaded );214 $this->assertFalse( $is_textdomain_loaded_after );215 }216 217 /**218 * @param bool $override Whether to override the .mo file loading. Default false.219 * @param string $domain Text domain. Unique identifier for retrieving translated strings.220 * @param string $mofile Path to the MO file.221 * @return bool222 */223 function _override_load_textdomain_filter( $override, $domain, $file ) {224 global $l10n;225 226 if ( ! is_readable( $file ) ) {227 return false;228 }229 230 $mo = new MO();231 232 if ( ! $mo->import_from_file( $file ) ) {233 return false;234 }235 236 if ( isset( $l10n[ $domain ] ) ) {237 $mo->merge_with( $l10n[ $domain ] );238 }239 240 $l10n[ $domain ] = &$mo;241 242 return true;243 }244 147 } -
trunk/tests/phpunit/tests/l10n/loadTextdomain.php
r39124 r39125 5 5 * @group i18n 6 6 */ 7 class Tests_L10n extends WP_UnitTestCase { 7 class Tests_L10n_loadTextdomain extends WP_UnitTestCase { 8 protected $locale; 8 9 9 /** 10 * @ticket 35961 11 */ 12 function test_n_noop() { 13 $text_domain = 'text-domain'; 14 $nooped_plural = _n_noop( '%s post', '%s posts', $text_domain ); 10 public function setUp() { 11 parent::setUp(); 15 12 16 $this-> assertNotEmpty( $nooped_plural['domain'] );17 $this->assertEquals( '%s posts', translate_nooped_plural( $nooped_plural, 0, $text_domain ) ); 18 $this->assertEquals( '%s post', translate_nooped_plural( $nooped_plural, 1, $text_domain) );19 $this->assertEquals( '%s posts', translate_nooped_plural( $nooped_plural, 2, $text_domain) );13 $this->locale = ''; 14 15 add_filter( 'plugin_locale', array( $this, 'store_locale' ) ); 16 add_filter( 'theme_locale', array( $this, 'store_locale' ) ); 20 17 } 21 18 22 /** 23 * @ticket 35961 24 */ 25 function test_nx_noop() { 26 $text_domain = 'text-domain'; 27 $nooped_plural = _nx_noop( '%s post', '%s posts', 'my-context', $text_domain ); 19 public function tearDown() { 20 remove_filter( 'plugin_locale', array( $this, 'store_locale' ) ); 21 remove_filter( 'theme_locale', array( $this, 'store_locale' ) ); 28 22 29 $this->assertNotEmpty( $nooped_plural['domain'] ); 30 $this->assertNotEmpty( $nooped_plural['context'] ); 31 $this->assertEquals( '%s posts', translate_nooped_plural( $nooped_plural, 0, $text_domain ) ); 32 $this->assertEquals( '%s post', translate_nooped_plural( $nooped_plural, 1, $text_domain ) ); 33 $this->assertEquals( '%s posts', translate_nooped_plural( $nooped_plural, 2, $text_domain ) ); 23 parent::tearDown(); 34 24 } 35 25 36 function test_load_unload_textdomain() { 37 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 38 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) ); 26 public function store_locale( $locale ) { 27 $this->locale = $locale; 39 28 40 $file = DIR_TESTDATA . '/pomo/simple.mo';41 $this->assertTrue( load_textdomain( 'wp-tests-domain', $file ) );42 $this->assertTrue( is_textdomain_loaded( 'wp-tests-domain' ) ); 43 $this->assertTrue( unload_textdomain( 'wp-tests-domain' ) );29 return $locale; 30 } 31 32 public function test_is_textdomain_loaded( ) { 44 33 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 45 34 } 46 35 47 /** 48 * @ticket 35073 49 */ 50 function test_before_last_bar() { 51 $this->assertEquals( 'no-bar-at-all', before_last_bar( 'no-bar-at-all' ) ); 52 $this->assertEquals( 'before-last-bar', before_last_bar( 'before-last-bar|after-bar' ) ); 53 $this->assertEquals( 'first-before-bar|second-before-bar', before_last_bar( 'first-before-bar|second-before-bar|after-last-bar' ) ); 36 public function test_unload_textdomain( ) { 37 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) ); 38 } 39 40 public function test_load_textdomain() { 41 $loaded = load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/pomo/simple.mo' ); 42 43 unload_textdomain( 'wp-tests-domain' ); 44 45 $this->assertTrue( $loaded ); 46 } 47 48 public function test_is_textdomain_loaded_after_loading( ) { 49 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/pomo/simple.mo' ); 50 51 $loaded = is_textdomain_loaded( 'wp-tests-domain' ); 52 53 unload_textdomain( 'wp-tests-domain' ); 54 55 $this->assertTrue( $loaded ); 56 } 57 58 public function test_unload_textdomain_after_loading( ) { 59 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/pomo/simple.mo' ); 60 61 $this->assertTrue( unload_textdomain( 'wp-tests-domain' ) ); 62 } 63 64 public function test_is_textdomain_loaded_after_unloading( ) { 65 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/pomo/simple.mo' ); 66 67 unload_textdomain( 'wp-tests-domain' ); 68 69 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 54 70 } 55 71 … … 57 73 * @ticket 21319 58 74 */ 59 function test_is_textdomain_loaded_for_no_translations() {75 public function test_load_textdomain_non_existent_file() { 60 76 $this->assertFalse( load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ) ); 77 } 78 79 /** 80 * @ticket 21319 81 */ 82 public function test_is_textdomain_loaded_non_existent_file( ) { 83 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ); 84 61 85 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 86 } 87 88 /** 89 * @ticket 21319 90 */ 91 public function test_get_translations_for_domain_non_existent_file( ) { 92 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ); 93 62 94 $this->assertInstanceOf( 'NOOP_Translations', get_translations_for_domain( 'wp-tests-domain' ) ); 63 // Ensure that we don't confuse NOOP_Translations to be a loaded text domain. 64 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 95 } 96 97 /** 98 * @ticket 21319 99 */ 100 public function test_unload_textdomain_non_existent_file() { 101 load_textdomain( 'wp-tests-domain', DIR_TESTDATA . '/non-existent-file' ); 102 65 103 $this->assertFalse( unload_textdomain( 'wp-tests-domain' ) ); 66 104 } … … 73 111 __( 'just some string', 'wp-tests-domain' ); 74 112 $this->assertFalse( is_textdomain_loaded( 'wp-tests-domain' ) ); 75 }76 77 /**78 * @ticket 3595079 */80 function test_get_available_languages() {81 $array = get_available_languages();82 $this->assertInternalType( 'array', $array );83 84 $array = get_available_languages( '.' );85 $this->assertEmpty( $array );86 87 $array = get_available_languages( DIR_TESTDATA . '/languages/' );88 $this->assertEquals( array( 'de_DE', 'en_GB', 'es_ES' ), $array );89 }90 91 /**92 * @ticket 3528493 */94 function test_wp_get_installed_translations_for_core() {95 $installed_translations = wp_get_installed_translations( 'core' );96 $this->assertInternalType( 'array', $installed_translations );97 $textdomains_expected = array( 'admin', 'admin-network', 'continents-cities', 'default' );98 $this->assertEqualSets( $textdomains_expected, array_keys( $installed_translations ) );99 100 $this->assertNotEmpty( $installed_translations['default']['en_GB'] );101 $data_en_GB = $installed_translations['default']['en_GB'];102 $this->assertEquals( '2016-10-26 00:01+0200', $data_en_GB['PO-Revision-Date'] );103 $this->assertEquals( 'Development (4.4.x)', $data_en_GB['Project-Id-Version'] );104 $this->assertEquals( 'Poedit 1.8.10', $data_en_GB['X-Generator'] );105 106 $this->assertNotEmpty( $installed_translations['admin']['es_ES'] );107 $data_es_ES = $installed_translations['admin']['es_ES'];108 $this->assertEquals( '2016-10-25 18:29+0200', $data_es_ES['PO-Revision-Date'] );109 $this->assertEquals( 'Administration', $data_es_ES['Project-Id-Version'] );110 $this->assertEquals( 'Poedit 1.8.10', $data_es_ES['X-Generator'] );111 }112 113 /**114 * @ticket 35294115 */116 function test_wp_dropdown_languages() {117 $args = array(118 'id' => 'foo',119 'name' => 'bar',120 'languages' => array( 'de_DE' ),121 'translations' => $this->wp_dropdown_languages_filter(),122 'selected' => 'de_DE',123 'echo' => false,124 );125 $actual = wp_dropdown_languages( $args );126 127 $this->assertContains( 'id="foo"', $actual );128 $this->assertContains( 'name="bar"', $actual );129 $this->assertContains( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );130 $this->assertContains( '<option value="de_DE" lang="de" selected=\'selected\' data-installed="1">Deutsch</option>', $actual );131 $this->assertContains( '<option value="it_IT" lang="it">Italiano</option>', $actual );132 }133 134 /**135 * We don't want to call the API when testing.136 *137 * @return array138 */139 function wp_dropdown_languages_filter() {140 return array(141 'de_DE' => array(142 'language' => 'de_DE',143 'native_name' => 'Deutsch',144 'iso' => array( 'de' ),145 ),146 'it_IT' => array(147 'language' => 'it_IT',148 'native_name' => 'Italiano',149 'iso' => array( 'it', 'ita' ),150 ),151 );152 }153 154 /**155 * @ticket 35284156 */157 function test_wp_get_pomo_file_data() {158 $file = DIR_TESTDATA . '/pomo/empty.po';159 $array = wp_get_pomo_file_data( $file );160 $this->assertArrayHasKey( 'POT-Creation-Date', $array );161 $this->assertArrayHasKey( 'PO-Revision-Date', $array );162 $this->assertArrayHasKey( 'Project-Id-Version', $array );163 $this->assertArrayHasKey( 'X-Generator', $array );164 165 $file = DIR_TESTDATA . '/pomo/mo.pot';166 $array = wp_get_pomo_file_data( $file );167 $this->assertNotEmpty( $array['POT-Creation-Date'] );168 $this->assertNotEmpty( $array['PO-Revision-Date'] );169 $this->assertNotEmpty( $array['Project-Id-Version'] );170 $this->assertArrayHasKey( 'X-Generator', $array );171 172 $file = DIR_TESTDATA . '/languages/es_ES.po';173 $array = wp_get_pomo_file_data( $file );174 $this->assertArrayHasKey( 'POT-Creation-Date', $array );175 $this->assertNotEmpty( $array['PO-Revision-Date'] );176 $this->assertNotEmpty( $array['Project-Id-Version'] );177 $this->assertNotEmpty( $array['X-Generator'] );178 113 } 179 114 … … 218 153 * @param bool $override Whether to override the .mo file loading. Default false. 219 154 * @param string $domain Text domain. Unique identifier for retrieving translated strings. 220 * @param string $ mofilePath to the MO file.155 * @param string $file Path to the MO file. 221 156 * @return bool 222 157 */ … … 242 177 return true; 243 178 } 179 180 public function test_load_muplugin_textdomain_site_locale() { 181 load_muplugin_textdomain( 'wp-tests-domain' ); 182 183 $this->assertSame( get_locale(), $this->locale ); 184 } 185 186 public function test_load_plugin_textdomain_site_locale() { 187 load_plugin_textdomain( 'wp-tests-domain' ); 188 189 $this->assertSame( get_locale(), $this->locale ); 190 } 191 192 public function test_load_theme_textdomain_site_locale() { 193 load_theme_textdomain( 'wp-tests-domain' ); 194 195 $this->assertSame( get_locale(), $this->locale ); 196 } 244 197 }
Note: See TracChangeset
for help on using the changeset viewer.