_loaded using something else
*/
class HTMLPurifier_LanguageTest extends HTMLPurifier_Harness {
protected $lang;
protected function generateEnLanguage() {
$factory = HTMLPurifier_LanguageFactory::instance ();
$config = HTMLPurifier_Config::create ( array (
'Core.Language' => 'en'
) );
$context = new HTMLPurifier_Context ();
return $factory->create ( $config, $context );
}
public function test_getMessage() {
$config = HTMLPurifier_Config::createDefault ();
$context = new HTMLPurifier_Context ();
$lang = new HTMLPurifier_Language ( $config, $context );
$lang->_loaded = true;
$lang->messages ['HTMLPurifier'] = 'HTML Purifier';
$this->assertIdentical ( $lang->getMessage ( 'HTMLPurifier' ), 'HTML Purifier' );
$this->assertIdentical ( $lang->getMessage ( 'LanguageTest: Totally non-existent key' ), '[LanguageTest: Totally non-existent key]' );
}
public function test_formatMessage() {
$config = HTMLPurifier_Config::createDefault ();
$context = new HTMLPurifier_Context ();
$lang = new HTMLPurifier_Language ( $config, $context );
$lang->_loaded = true;
$lang->messages ['LanguageTest: Error'] = 'Error is $1 on line $2';
$this->assertIdentical ( $lang->formatMessage ( 'LanguageTest: Error', array (
1 => 'fatal',
32
) ), 'Error is fatal on line 32' );
}
public function test_formatMessage_tokenParameter() {
$config = HTMLPurifier_Config::createDefault ();
$context = new HTMLPurifier_Context ();
$generator = new HTMLPurifier_Generator ( $config, $context ); // replace with mock if this gets icky
$context->register ( 'Generator', $generator );
$lang = new HTMLPurifier_Language ( $config, $context );
$lang->_loaded = true;
$lang->messages ['LanguageTest: Element info'] = 'Element Token: $1.Name, $1.Serialized, $1.Compact, $1.Line';
$lang->messages ['LanguageTest: Data info'] = 'Data Token: $1.Data, $1.Serialized, $1.Compact, $1.Line';
$this->assertIdentical ( $lang->formatMessage ( 'LanguageTest: Element info', array (
1 => new HTMLPurifier_Token_Start ( 'a', array (
'href' => 'http://example.com'
), 18 )
) ), 'Element Token: a, , , 18' );
$this->assertIdentical ( $lang->formatMessage ( 'LanguageTest: Data info', array (
1 => new HTMLPurifier_Token_Text ( 'data>', 23 )
) ), 'Data Token: data>, data>, data>, 23' );
}
public function test_listify() {
$lang = $this->generateEnLanguage ();
$this->assertEqual ( $lang->listify ( array (
'Item'
) ), 'Item' );
$this->assertEqual ( $lang->listify ( array (
'Item',
'Item2'
) ), 'Item and Item2' );
$this->assertEqual ( $lang->listify ( array (
'Item',
'Item2',
'Item3'
) ), 'Item, Item2 and Item3' );
}
public function test_formatMessage_arrayParameter() {
$lang = $this->generateEnLanguage ();
$array = array (
'Item1',
'Item2',
'Item3'
);
$this->assertIdentical ( $lang->formatMessage ( 'LanguageTest: List', array (
1 => $array
) ), 'Item1, Item2 and Item3' );
$array = array (
'Key1' => 'Value1',
'Key2' => 'Value2'
);
$this->assertIdentical ( $lang->formatMessage ( 'LanguageTest: Hash', array (
1 => $array
) ), 'Key1 and Key2; Value1 and Value2' );
}
}
// vim: et sw=4 sts=4