phpmyadmin/test/classes/CharsetsTest.php
Maurício Meneghini Fauth 2005cca77f Fix methods and properties visibility issues
Signed-off-by: Maurício Meneghini Fauth <mauriciofauth@gmail.com>
2018-05-30 21:02:26 -03:00

198 lines
7.2 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Tests for MySQL Charsets
*
* @package PhpMyAdmin-test
*/
declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\Charsets;
use PHPUnit\Framework\TestCase;
/**
* Tests for MySQL Charsets
*
* @package PhpMyAdmin-test
*/
class CharsetsTest extends TestCase
{
/**
* @return void
*/
protected function setUp()
{
$GLOBALS['cfg']['DBG']['sql'] = false;
$GLOBALS['cfg']['Server']['DisableIS'] = false;
}
/**
* Test case for getCollationDescr()
*
* @param string $collation Collation for which description is reqd
* @param string $desc Expected Description
*
* @return void
* @test
* @dataProvider collationDescr
*/
public function testGetCollationDescr($collation, $desc)
{
$this->assertEquals(
$desc,
Charsets::getCollationDescr($collation)
);
}
/**
* Data Provider for testGetCollationDescr()
*
* @return array Test data for testGetCollationDescr()
*/
public function collationDescr()
{
return [
['binary', 'Binary'],
['foo_bulgarian_bar', 'Bulgarian'],
['gb2312_chinese', 'Simplified Chinese'],
['gbk_chinese', 'Simplified Chinese'],
['big5_chinese_ci', 'Traditional Chinese, case-insensitive'],
['big5_chinese', 'Traditional Chinese'],
['foo_ci_bar', 'Unknown, case-insensitive'],
['foo_croatian_bar', 'Croatian'],
['foo_czech_bar', 'Czech'],
['foo_danish_bar', 'Danish'],
['foo_english_bar', 'English'],
['foo_esperanto_bar', 'Esperanto'],
['foo_estonian_bar', 'Estonian'],
['foo_german1_bar', 'German (dictionary order)'],
['foo_german2_bar', 'German (phone book order)'],
['foo_hungarian_bar', 'Hungarian'],
['foo_icelandic_bar', 'Icelandic'],
['foo_japanese_bar', 'Japanese'],
['foo_latvian_bar', 'Latvian'],
['foo_lithuanian_bar', 'Lithuanian'],
['foo_korean_bar', 'Korean'],
['foo_persian_bar', 'Persian'],
['foo_polish_bar', 'Polish'],
['foo_roman_bar', 'West European'],
['foo_romanian_bar', 'Romanian'],
['foo_slovak_bar', 'Slovak'],
['foo_slovenian_bar', 'Slovenian'],
['foo_spanish_bar', 'Spanish (modern)'],
['foo_spanish2_bar', 'Spanish (traditional)'],
['foo_swedish_bar', 'Swedish'],
['foo_thai_bar', 'Thai'],
['foo_turkish_bar', 'Turkish'],
['foo_ukrainian_bar', 'Ukrainian'],
['foo_unicode_bar', 'Unicode'],
['ucs2', 'Unicode'],
['utf8', 'Unicode'],
['ascii', 'West European'],
['cp850', 'West European'],
['dec8', 'West European'],
['hp8', 'West European'],
['latin1', 'West European'],
['cp1250', 'Central European'],
['cp852', 'Central European'],
['latin2', 'Central European'],
['macce', 'Central European'],
['cp866', 'Russian'],
['koi8r', 'Russian'],
['gb2312', 'Simplified Chinese'],
['gbk', 'Simplified Chinese'],
['sjis', 'Japanese'],
['ujis', 'Japanese'],
['cp932', 'Japanese'],
['eucjpms', 'Japanese'],
['cp1257', 'Baltic'],
['latin7', 'Baltic'],
['armscii8', 'Armenian'],
['armscii', 'Armenian'],
['big5', 'Traditional Chinese'],
['cp1251', 'Cyrillic'],
['cp1256', 'Arabic'],
['euckr', 'Korean'],
['hebrew', 'Hebrew'],
['geostd8', 'Georgian'],
['greek', 'Greek'],
['keybcs2', 'Czech-Slovak'],
['koi8u', 'Ukrainian'],
['latin5', 'Turkish'],
['swe7', 'Swedish'],
['tis620', 'Thai'],
['foobar', 'Unknown'],
['foo_test_bar', 'Unknown'],
['foo_bin_bar', 'Unknown, binary'],
['utf8mb4_0900_ai_ci', 'Unicode (UCA 9.0.0), accent-insensitive, case-insensitive'],
['utf8mb4_unicode_520_ci', 'Unicode (UCA 5.2.0), case-insensitive'],
['utf8mb4_unicode_ci', 'Unicode (UCA 4.0.0), case-insensitive'],
['utf8mb4_tr_0900_ai_ci', 'Turkish (UCA 9.0.0), accent-insensitive, case-insensitive'],
['utf8mb4_turkish_ci', 'Turkish (UCA 4.0.0), case-insensitive'],
['utf32_thai_520_w2', 'Thai (UCA 5.2.0), multi-level'],
['utf8mb4_czech_ci', 'Czech (UCA 4.0.0), case-insensitive'],
['cp1250_czech_cs', 'Czech, case-sensitive'],
['latin1_general_ci', 'West European, case-insensitive'],
['utf8mb4_bin', 'Unicode (UCA 4.0.0), binary'],
['utf8mb4_croatian_mysql561_ci', 'Croatian (MySQL 5.6.1), case-insensitive'],
['ucs2_general_mysql500_ci', 'Unicode (MySQL 5.0.0), case-insensitive'],
['utf32_general_ci', 'Unicode, case-insensitive'],
['utf8mb4_es_trad_0900_ai_ci', 'Spanish (traditional) (UCA 9.0.0), accent-insensitive, case-insensitive'],
['utf8mb4_es_0900_ai_ci', 'Spanish (modern) (UCA 9.0.0), accent-insensitive, case-insensitive'],
['utf8mb4_de_pb_0900_ai_ci', 'German (phone book order) (UCA 9.0.0), accent-insensitive, case-insensitive'],
['utf8mb4_de_0900_ai_ci', 'German (dictionary order) (UCA 9.0.0), accent-insensitive, case-insensitive'],
];
}
/**
* Test for getCollationDropdownBox
*
* @return void
* @test
*/
public function testGetCollationDropdownBox()
{
$result = Charsets::getCollationDropdownBox(
$GLOBALS['dbi'],
$GLOBALS['cfg']['Server']['DisableIS']
);
$this->assertContains('name="collation"', $result);
$this->assertNotContains('id="', $result);
$this->assertNotContains('class="autosubmit"', $result);
$this->assertContains('<option value="">Collation', $result);
$this->assertContains('<option value=""></option>', $result);
$this->assertContains('<optgroup label="latin1', $result);
$this->assertNotContains('<optgroup label="latin2', $result);
$this->assertContains('title="cp1252', $result);
$this->assertNotContains('value="latin2_general1_ci"', $result);
$this->assertContains('title="Swedish', $result);
}
/**
* Test for getCharsetDropdownBox
*
* @return void
* @test
*/
public function testGetCharsetDropdownBox()
{
$result = Charsets::getCharsetDropdownBox(
$GLOBALS['dbi'],
$GLOBALS['cfg']['Server']['DisableIS'],
null,
"test_id",
"latin1",
false,
true
);
$this->assertContains('name="character_set"', $result);
$this->assertNotContains('Charset</option>', $result);
$this->assertContains('class="autosubmit"', $result);
$this->assertContains('id="test_id"', $result);
$this->assertContains('selected="selected">latin1', $result);
}
}