/** * @ticket 34114 */ public function test_plugin_translation_should_be_translated_without_calling_load_plugin_textdomain() { add_filter('locale', array($this, 'filter_set_locale_to_german')); require_once DIR_TESTDATA . '/plugins/internationalized-plugin.php'; $is_textdomain_loaded_before = is_textdomain_loaded('internationalized-plugin'); $expected_output = i18n_plugin_test(); $is_textdomain_loaded_after = is_textdomain_loaded('internationalized-plugin'); unload_textdomain('internationalized-plugin'); remove_filter('locale', array($this, 'filter_set_locale_to_german')); $this->assertFalse($is_textdomain_loaded_before); $this->assertSame('Das ist ein Dummy Plugin', $expected_output); $this->assertTrue($is_textdomain_loaded_after); }
public function test_multiple_switches_to_site_locale_and_user_locale() { global $wp_locale_switcher; $site_locale = get_locale(); $user_id = $this->factory()->user->create(array('role' => 'administrator', 'locale' => 'en_GB')); wp_set_current_user($user_id); set_current_screen('dashboard'); $locale_switcher = clone $wp_locale_switcher; $wp_locale_switcher = new WP_Locale_Switcher(); $wp_locale_switcher->init(); $user_locale = get_user_locale(); load_default_textdomain($user_locale); require_once DIR_TESTDATA . '/plugins/internationalized-plugin.php'; switch_to_locale('de_DE'); switch_to_locale($site_locale); $expected = i18n_plugin_test(); restore_current_locale(); $wp_locale_switcher = $locale_switcher; set_current_screen('front'); $this->assertSame('en_US', get_locale()); $this->assertSame('This is a dummy plugin', $expected); }
/** * @ticket 38485 */ public function test_plugin_translation_with_user_locale() { require_once DIR_TESTDATA . '/plugins/internationalized-plugin.php'; set_current_screen('dashboard'); wp_set_current_user(self::$user_id); $expected = i18n_plugin_test(); set_current_screen('front'); $this->assertSame('Das ist ein Dummy Plugin', $expected); }
/** * @ticket 37113 */ public function test_should_allow_unloading_of_text_domain() { add_filter('locale', array($this, 'filter_set_locale_to_german')); require_once DIR_TESTDATA . '/plugins/internationalized-plugin.php'; $expected_output_before = i18n_plugin_test(); $is_textdomain_loaded_before = is_textdomain_loaded('internationalized-plugin'); unload_textdomain('internationalized-plugin'); remove_filter('locale', array($this, 'filter_set_locale_to_german')); $expected_output_after = i18n_plugin_test(); $is_textdomain_loaded_after = is_textdomain_loaded('internationalized-plugin'); add_filter('locale', array($this, 'filter_set_locale_to_german')); load_textdomain('internationalized-plugin', WP_LANG_DIR . '/plugins/internationalized-plugin-de_DE.mo'); $expected_output_final = i18n_plugin_test(); $is_textdomain_loaded_final = is_textdomain_loaded('internationalized-plugin'); unload_textdomain('internationalized-plugin'); remove_filter('locale', array($this, 'filter_set_locale_to_german')); // Text domain loaded just in time. $this->assertSame('Das ist ein Dummy Plugin', $expected_output_before); $this->assertTrue($is_textdomain_loaded_before); // Text domain unloaded. $this->assertSame('This is a dummy plugin', $expected_output_after); $this->assertFalse($is_textdomain_loaded_after); // Text domain loaded manually again. $this->assertSame('Das ist ein Dummy Plugin', $expected_output_final); $this->assertTrue($is_textdomain_loaded_final); }