170 lines
4.1 KiB
PHP
170 lines
4.1 KiB
PHP
<?php
|
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
|
/**
|
|
* Tests for Kanji Encoding Library
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
|
|
/*
|
|
* Include to test.
|
|
*/
|
|
require_once 'libraries/kanji-encoding.lib.php';
|
|
|
|
/**
|
|
* Tests for Kanji Encoding Library
|
|
*
|
|
* @package PhpMyAdmin-test
|
|
*/
|
|
class PMA_Kanji_Encoding_Test extends PHPUnit_Framework_TestCase
|
|
{
|
|
/**
|
|
* Test for PMA_Kanji_checkEncoding
|
|
*
|
|
* @param string $encoding Encoding to set
|
|
* @param string $expected Expected encoding list
|
|
*
|
|
* @return void
|
|
* @test
|
|
* @dataProvider checkEncodingData
|
|
*/
|
|
public function testCheckEncoding($encoding, $expected)
|
|
{
|
|
mb_internal_encoding($encoding);
|
|
$this->assertTrue(PMA_Kanji_checkEncoding());
|
|
$this->assertEquals($expected, $GLOBALS['kanji_encoding_list']);
|
|
}
|
|
|
|
/**
|
|
* Data provider for testPMA_Kanji_checkEncoding
|
|
*
|
|
* @return array Test data
|
|
*/
|
|
public function checkEncodingData()
|
|
{
|
|
return array(
|
|
array('UTF-8', 'ASCII,SJIS,EUC-JP,JIS'),
|
|
array('EUC-JP', 'ASCII,EUC-JP,SJIS,JIS')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA_Kanji_changeOrder
|
|
*
|
|
* @param string $kanji_test_list current list
|
|
* @param string $expected expected list
|
|
*
|
|
* @return void
|
|
* @test
|
|
* @dataProvider changeOrderData
|
|
*/
|
|
public function testChangeOrder($kanji_test_list, $expected)
|
|
{
|
|
$GLOBALS['kanji_encoding_list'] = $kanji_test_list;
|
|
$this->assertTrue(PMA_Kanji_changeOrder());
|
|
$this->assertEquals($expected, $GLOBALS['kanji_encoding_list']);
|
|
}
|
|
|
|
/**
|
|
* Data Provider for testPMA_Kanji_changeOrder
|
|
*
|
|
* @return array Test data
|
|
*/
|
|
public function changeOrderData()
|
|
{
|
|
return array(
|
|
array('ASCII,SJIS,EUC-JP,JIS', 'ASCII,EUC-JP,SJIS,JIS'),
|
|
array('ASCII,EUC-JP,SJIS,JIS', 'ASCII,SJIS,EUC-JP,JIS')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Test for PMA_Kanji_strConv
|
|
*
|
|
* @return void
|
|
* @test
|
|
*/
|
|
public function testStrConv()
|
|
{
|
|
$this->assertEquals(
|
|
'test',
|
|
PMA_Kanji_strConv('test', '', '')
|
|
);
|
|
|
|
$GLOBALS['kanji_encoding_list'] = 'ASCII,SJIS,EUC-JP,JIS';
|
|
|
|
$this->assertEquals(
|
|
'test è',
|
|
PMA_Kanji_strConv('test è', '', '')
|
|
);
|
|
|
|
$this->assertEquals(
|
|
mb_convert_encoding('test è', 'ASCII', 'SJIS'),
|
|
PMA_Kanji_strConv('test è', 'ASCII', '')
|
|
);
|
|
|
|
$this->assertEquals(
|
|
mb_convert_kana('全角', 'KV', 'SJIS'),
|
|
PMA_Kanji_strConv('全角', '', 'kana')
|
|
);
|
|
}
|
|
|
|
|
|
/**
|
|
* Test for PMA_Kanji_fileConv
|
|
*
|
|
* @return void
|
|
* @test
|
|
*/
|
|
public function testFileConv()
|
|
{
|
|
$file_str = "教育漢字常用漢字";
|
|
$filename = 'test.kanji';
|
|
$file = fopen($filename, 'w');
|
|
fputs($file, $file_str);
|
|
fclose($file);
|
|
$GLOBALS['kanji_encoding_list'] = 'ASCII,EUC-JP,SJIS,JIS';
|
|
|
|
$result = PMA_Kanji_fileConv($filename, 'JIS', 'kana');
|
|
|
|
$string = file_get_contents($result);
|
|
PMA_Kanji_changeOrder();
|
|
$expected = PMA_Kanji_strConv($file_str, 'JIS', 'kana');
|
|
PMA_Kanji_changeOrder();
|
|
$this->assertEquals($string, $expected);
|
|
unlink($result);
|
|
}
|
|
|
|
|
|
/**
|
|
* Test for PMA_Kanji_encodingForm
|
|
*
|
|
* @return void
|
|
* @test
|
|
*/
|
|
public function testEncodingForm()
|
|
{
|
|
$actual = PMA_Kanji_encodingForm();
|
|
$this->assertContains(
|
|
'<input type="radio" name="knjenc"',
|
|
$actual
|
|
);
|
|
$this->assertContains(
|
|
'type="radio" name="knjenc"',
|
|
$actual
|
|
);
|
|
$this->assertContains(
|
|
'<input type="radio" name="knjenc" value="EUC-JP" id="kj-euc" />',
|
|
$actual
|
|
);
|
|
$this->assertContains(
|
|
'<input type="radio" name="knjenc" value="SJIS" id="kj-sjis" />',
|
|
$actual
|
|
);
|
|
$this->assertContains(
|
|
'<input type="checkbox" name="xkana" value="kana" id="kj-kana" />',
|
|
$actual
|
|
);
|
|
}
|
|
}
|