2 // vim: foldmethod=marker
4 * Ethna_Plugin_Smarty_modifier_wordwrap_i18n_Test.php
6 * @author Yoshinari Takaoka <takaoka@beatcraft.com>
10 require_once ETHNA_BASE . '/class/Plugin/Smarty/modifier.wordwrap_i18n.php';
12 //{{{ Ethna_Plugin_Smarty_modifier_wordwrap_i18n_Test
14 * Test Case For modifier.wordwrap_i18n.php
18 class Ethna_Plugin_Smarty_modifier_wordwrap_i18n_Test extends Ethna_UnitTestBase
22 $ctl =& new Ethna_Controller();
23 $ctl->setClientEncoding('UTF-8');
26 // {{{ test_smarty_modifier_wordwrap_i18n
27 function test_smarty_modifier_wordwrap_i18n()
29 unset($GLOBALS['_Ethna_controller']);
32 $input_str = 'あいうaえaおaかきaaaくけこ';
37 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8);
40 $input_str = 'あいうaえaおaかきaaaく';
44 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8);
47 $input_str = 'あいうaえaaaaaaaaaaaaaaaaaaaおかahaかきaaaく';
54 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8);
57 function test_smarty_modifier_wordwrap_i18n_indent()
60 // indent を指定した場合、はじめの行は
65 $input_str = 'あいうaえaおaかきaaaくけこ';
70 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, "\n", 4);
73 function test_smarty_modifier_wordwrap_i18n_break()
76 $input_str = 'あいうaえaおaかきaaaくけこ';
77 $expected = "あいうa\r\n"
81 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, "\r\n", 4);
84 function test_smarty_modifier_wordwrap_i18n_space()
87 $input_str = 'あいうaえaおaかきaaaくけこ ';
88 $expected = "あいうa\r\n"
93 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, "\r\n", 4);
96 function test_smarty_modifier_wordwrap_i18n_kana()
99 $input_str = 'あいうイエオaえaおaかきaaaくけこ';
100 $expected = "あいうイエ\r\n"
104 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, "\r\n", 4);
107 function test_smarty_modifier_wordwrap_i18n_alphabet()
109 $input_str = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz';
110 $expected = 'abcdefgh<br />'
117 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, '<br />');
119 $input_str = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv';
120 $expected = 'abcdefgh<br />'
126 $this->_test_smarty_modifier_wordwrap_i18n($expected, $input_str, 8, '<br />');
129 function _test_smarty_modifier_wordwrap_i18n($expected, $input_str, $width, $break = "\n", $indent = 0)
131 unset($GLOBALS['_Ethna_controller']);
133 $ctl =& new Ethna_Controller();
134 $actual = smarty_modifier_wordwrap_i18n($input_str, $width, $break, $indent);
135 $this->assertEqual($expected, $actual);
136 unset($GLOBALS['_Ethna_controller']);
139 $ctl =& new Ethna_Controller();
140 $ctl->setClientEncoding('SJIS');
142 $sjis_input = mb_convert_encoding($input_str, 'SJIS', 'UTF-8');
143 $sjis_expected = mb_convert_encoding($expected, 'SJIS', 'UTF-8');
144 $sjis_actual = smarty_modifier_wordwrap_i18n($sjis_input, $width, $break, $indent);
145 $this->assertEqual($sjis_expected, $sjis_actual);
146 unset($GLOBALS['_Ethna_controller']);
149 $ctl =& new Ethna_Controller();
150 $ctl->setClientEncoding('EUC-JP');
152 $eucjp_input = mb_convert_encoding($input_str, 'EUC-JP', 'UTF-8');
153 $eucjp_expected = mb_convert_encoding($expected, 'EUC-JP', 'UTF-8');
154 $eucjp_actual = smarty_modifier_wordwrap_i18n($eucjp_input, $width, $break, $indent);
155 $this->assertEqual($eucjp_expected, $eucjp_actual);