mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
WordPress' code just... wasn't. This is now dealt with. Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS. Fixes #41057. git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
101 lines
2.0 KiB
PHP
101 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group l10n
|
|
* @group i18n
|
|
*/
|
|
class Tests_L10n_GetLocale extends WP_UnitTestCase {
|
|
public function test_should_respect_locale_global() {
|
|
global $locale;
|
|
$old_locale = $locale;
|
|
|
|
$locale = 'foo';
|
|
|
|
$found = get_locale();
|
|
$locale = $old_locale;
|
|
|
|
$this->assertSame( 'foo', $found );
|
|
}
|
|
|
|
/**
|
|
* @group ms-required
|
|
*/
|
|
public function test_local_option_should_take_precedence_on_multisite() {
|
|
global $locale;
|
|
$old_locale = $locale;
|
|
$locale = null;
|
|
|
|
update_option( 'WPLANG', 'en_GB' );
|
|
update_site_option( 'WPLANG', 'es_ES' );
|
|
|
|
$found = get_locale();
|
|
$locale = $old_locale;
|
|
|
|
$this->assertSame( 'en_GB', $found );
|
|
}
|
|
|
|
/**
|
|
* @group ms-required
|
|
*/
|
|
public function test_network_option_should_be_fallback_on_multisite() {
|
|
if ( ! is_multisite() ) {
|
|
$this->markTestSkipped( __METHOD__ . ' requires Multisite' );
|
|
}
|
|
|
|
global $locale;
|
|
$old_locale = $locale;
|
|
$locale = null;
|
|
|
|
update_site_option( 'WPLANG', 'es_ES' );
|
|
|
|
$found = get_locale();
|
|
$locale = $old_locale;
|
|
|
|
$this->assertSame( 'es_ES', $found );
|
|
}
|
|
|
|
/**
|
|
* @group ms-excluded
|
|
*/
|
|
public function test_option_should_be_respected_on_nonmultisite() {
|
|
if ( is_multisite() ) {
|
|
$this->markTestSkipped( __METHOD__ . ' does not apply to Multisite' );
|
|
}
|
|
|
|
global $locale;
|
|
$old_locale = $locale;
|
|
$locale = null;
|
|
|
|
update_option( 'WPLANG', 'es_ES' );
|
|
|
|
$found = get_locale();
|
|
$locale = $old_locale;
|
|
|
|
$this->assertSame( 'es_ES', $found );
|
|
|
|
}
|
|
|
|
public function test_should_fall_back_on_en_US() {
|
|
global $locale;
|
|
$old_locale = $locale;
|
|
$locale = null;
|
|
|
|
$found = get_locale();
|
|
$locale = $old_locale;
|
|
|
|
$this->assertSame( 'en_US', $found );
|
|
}
|
|
|
|
public function test_should_respect_get_locale_filter() {
|
|
add_filter( 'locale', array( $this, 'filter_get_locale' ) );
|
|
$found = get_locale();
|
|
remove_filter( 'locale', array( $this, 'filter_get_locale' ) );
|
|
|
|
$this->assertSame( 'foo', $found );
|
|
}
|
|
|
|
public function filter_get_locale() {
|
|
return 'foo';
|
|
}
|
|
}
|