summaryrefslogtreecommitdiff
path: root/tests/UnitTests/framework/I18N/testCultureInfo.php
blob: 7e204ededb5a1735cc2de275e8f3efbbd8933e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php

Prado::using('System.I18N.core.CultureInfo');

class testCultureInfo extends UnitTestCase
{
	protected $culture;

	function testCultureInfo()
	{
		$this->UnitTestCase();
	}

	function setUp()
	{
		$this->culture = CultureInfo::getInvariantCulture();
	}

	function testCultureName()
	{
		$name = 'en';

		$this->assertEqual($name, $this->culture->Name);

		//the default/invariant culture should be neutral
		$this->assertTrue($this->culture->IsNeutralCulture);
	}

	function testCultureList()
	{
		$allCultures = CultureInfo::getCultures();
		$neutralCultures = CultureInfo::getCultures(CultureInfo::NEUTRAL);
		$specificCultures = CultureInfo::getCultures(CultureInfo::SPECIFIC);

		//there should be 246 cultures all together.
		$this->assertEqual(count($allCultures),246);
		$this->assertEqual(count($neutralCultures),76);
		$this->assertEqual(count($specificCultures),170);

	}

	function testParentCultures()
	{
		$zh_CN = new CultureInfo('zh_CN');
		$parent = $zh_CN->Parent;
		$grandparent = $parent->Parent;

		$this->assertEqual($zh_CN->Name, 'zh_CN');
		$this->assertEqual($parent->Name, 'zh');
		$this->assertEqual($grandparent->Name, 'en');
		$this->assertEqual($grandparent->Parent->Name, 'en');
	}

	function testCountryNames()
	{
		$culture = new CultureInfo('fr_FR');
		$this->assertEqual($culture->Countries['AE'], 'Émirats arabes unis');
	}

	function testCurrencies()
	{
		$culture = new CultureInfo('en_AU');
		$au = array('$', 'Australian Dollar');
		$this->assertEqual($au, $culture->Currencies['AUD']);
	}

	function testLanguages()
	{
		$culture = new CultureInfo('fr_BE');
		$this->assertEqual($culture->Languages['fr'], 'français');
	}

	function testScripts()
	{
		$culture = new CultureInfo('fr');
		$this->assertEqual($culture->Scripts['Armn'], 'arménien');
	}

	function testTimeZones()
	{
		$culture = new CultureInfo('fi');
		$zone = array(
			"America/Los_Angeles",
            "Tyynenmeren normaaliaika",
            "PST",
            "Tyynenmeren kesäaika",
            "PDT",
            "Los Angeles");
        $this->assertEqual($culture->TimeZones[1],$zone);
	}

}

?>