Initial commit
This commit is contained in:
169
#pma/test/libraries/PMA_kanji-encoding_test.php
Normal file
169
#pma/test/libraries/PMA_kanji-encoding_test.php
Normal file
@ -0,0 +1,169 @@
|
||||
<?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
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user