diff options
author | Christian Weiske <cweiske@cweiske.de> | 2010-09-28 08:53:03 +0200 |
---|---|---|
committer | Christian Weiske <cweiske@cweiske.de> | 2010-09-28 08:53:03 +0200 |
commit | 8da16ca4a6faae17c896919c31d0011e719fb28f (patch) | |
tree | 6201de5504e86616fa69e58a5674a55b46060a16 /src/php-gettext/tests/LocalesTest.php | |
parent | 15b8b6ab23abb44b4d6cdff7aec50fcfe82b73d9 (diff) | |
download | semanticscuttle-8da16ca4a6faae17c896919c31d0011e719fb28f.tar.gz semanticscuttle-8da16ca4a6faae17c896919c31d0011e719fb28f.tar.bz2 |
update php-gettext to 1.0.10
Diffstat (limited to 'src/php-gettext/tests/LocalesTest.php')
-rw-r--r-- | src/php-gettext/tests/LocalesTest.php | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/php-gettext/tests/LocalesTest.php b/src/php-gettext/tests/LocalesTest.php new file mode 100644 index 0000000..3000286 --- /dev/null +++ b/src/php-gettext/tests/LocalesTest.php @@ -0,0 +1,66 @@ +<?php +require_once('PHPUnit/Framework.php'); +require_once('gettext.inc'); + +class LocaleTest extends PHPUnit_Framework_TestCase +{ + public function test_setlocale() + { + // _setlocale defaults to a locale name from environment variable LANG. + putenv("LANG=sr_RS"); + $this->assertEquals('sr_RS', _setlocale(LC_MESSAGES, 0)); + + // For an existing locale, it never needs emulation. + putenv("LANG=C"); + _setlocale(LC_MESSAGES, ""); + $this->assertEquals(0, locale_emulation()); + + // If we set it to a non-existent locale, it still works, but uses + // emulation. + _setlocale(LC_MESSAGES, "xxx_XXX"); + $this->assertEquals('xxx_XXX', _setlocale(LC_MESSAGES, 0)); + $this->assertEquals(1, locale_emulation()); + } + + public function test_get_list_of_locales() + { + // For a locale containing country code, we prefer + // full locale name, but if that's not found, fall back + // to the language only locale name. + $this->assertEquals(array("sr_RS", "sr"), + get_list_of_locales("sr_RS")); + + // If language code is used, it's the only thing returned. + $this->assertEquals(array("sr"), + get_list_of_locales("sr")); + + // There is support for language and charset only. + $this->assertEquals(array("sr.UTF-8", "sr"), + get_list_of_locales("sr.UTF-8")); + + // It can also split out character set from the full locale name. + $this->assertEquals(array("sr_RS.UTF-8", "sr_RS", "sr"), + get_list_of_locales("sr_RS.UTF-8")); + + // There is support for @modifier in locale names as well. + $this->assertEquals(array("sr_RS.UTF-8@latin", "sr_RS@latin", "sr@latin", + "sr_RS.UTF-8", "sr_RS", "sr"), + get_list_of_locales("sr_RS.UTF-8@latin")); + + // We can pass in only language and modifier. + $this->assertEquals(array("sr@latin", "sr"), + get_list_of_locales("sr@latin")); + + + // If locale name is not following the regular POSIX pattern, + // it's used verbatim. + $this->assertEquals(array("something"), + get_list_of_locales("something")); + + // Passing in an empty string returns an empty array. + $this->assertEquals(array(), + get_list_of_locales("")); + } +} + +?> |