Current File : //opt/RZphp74/includes/test/Translation2/tests/admin_db_test_base.php |
<?php
// $Id: admin_db_test_base.php 245971 2007-11-10 00:02:50Z quipo $
require_once 'simple_include.php';
require_once 'translation2_admin_include.php';
require_once 'dbms.php';
class TestOfAdminContainerDB extends UnitTestCase {
var $tr;
function TestOfAdminContainerDB($name='Test of Admin Container DB') {
$this->UnitTestCase($name);
}
function setUp() {
$driver = 'DB';
$this->tr = Translation2_Admin::factory($driver, dbms::getDbInfo(), dbms::getParams());
}
function tearDown() {
unset($this->tr);
}
function testFactory() {
if (PEAR::isError($this->tr)) {
var_dump($this->tr->getUserInfo());
var_dump($this->tr->getMessage());
//var_dump(debug_backtrace());
exit;
}
$this->assertTrue(!PEAR::isError($this->tr));
}
function testAddLang() {
$langData = array(
'lang_id' => 'fr',
'table_name' => 'i18n',
'name' => 'fran�ais',
'meta' => '123 abc',
'error_text' => 'non disponible',
'encoding' => 'iso-8859-1',
);
$pre = $this->tr->getLangs('array');
// create a new language
$this->tr->addLang($langData);
$post = $this->tr->getLangs('array');
$expected = array(
'id' => 'fr',
'lang_id' => 'fr',
'name' => 'fran�ais',
'meta' => '123 abc',
'error_text' => 'non disponible',
'encoding' => 'iso-8859-1',
);
$this->assertEqual($expected, array_pop(array_diff_assoc($post, $pre)));
// remove the new language
$this->assertTrue($this->tr->removeLang('fr'));
$this->assertEqual($pre, $this->tr->getLangs('array'));
}
function testUpdateLang() {
$original = array(
'id' => 'en',
'lang_id' => 'en',
'name' => 'english',
'meta' => 'my meta info',
'error_text' => 'not available in English',
'encoding' => 'iso-8859-1',
);
$restore = array(
'lang_id' => 'en',
'name' => 'english',
'meta' => 'my meta info',
'error_text' => 'not available in English',
'encoding' => 'iso-8859-1',
);
$newLangData = array(
'lang_id' => 'en',
'name' => 'english2',
'meta' => 'my other meta info',
'error_text' => 'not available in English2',
'encoding' => 'iso-8859-15',
);
$expected = array(
'id' => 'en',
'lang_id' => 'en',
'name' => 'english2',
'meta' => 'my other meta info',
'error_text' => 'not available in English2',
'encoding' => 'iso-8859-15',
);
$this->assertTrue($this->tr->updateLang($newLangData));
$this->tr->setLang('en');
$this->assertEqual($expected, $this->tr->getLang('en', 'array'));
$this->assertTrue($this->tr->updateLang($restore));
$this->assertEqual($original, $this->tr->getLang('en', 'array'));
}
function testAddUpdateRemove() {
$stringID = 'sample';
$pageID = 'new page';
$stringArray = array(
'en' => 'sample',
'it' => 'esempio',
'de' => 'Beispiel',
);
//add
$this->assertTrue($this->tr->add($stringID, $pageID, $stringArray));
$this->assertEqual($stringArray['en'], $this->tr->get($stringID, $pageID, 'en'));
$this->assertEqual($stringArray['it'], $this->tr->get($stringID, $pageID, 'it'));
$this->assertEqual($stringArray['de'], $this->tr->get($stringID, $pageID, 'de'));
//update
$newStringArray = array('en' => 'example');
$this->assertTrue($this->tr->update($stringID, $pageID, $newStringArray));
$this->assertEqual($newStringArray['en'], $this->tr->get($stringID, $pageID, 'en'));
$this->assertEqual($stringArray['it'], $this->tr->get($stringID, $pageID, 'it'));
$this->assertEqual($stringArray['de'], $this->tr->get($stringID, $pageID, 'de'));
//remove
$this->assertTrue($this->tr->remove($stringID, $pageID));
$this->assertEqual('', $this->tr->get($stringID, $pageID, 'en'));
}
function testGetPageNames() {
$expected = array(
null,
'',
'alone',
'bbcode',
'calendar',
'de',
'in_page',
'samplePage',
'small page',
);
sort($expected);
$actual = $this->tr->getPageNames();
sort($actual);
$this->assertEqual($expected, $actual);
}
function testRemovePage() {
$stringID = 'sample';
$pageID = 'new page';
$this->assertFalse(in_array($pageID, $this->tr->getPageNames()));
$stringArray = array(
'en' => 'sample',
'it' => 'esempio',
'de' => 'Beispiel',
);
//add new page
$this->assertTrue($this->tr->add($stringID, $pageID, $stringArray));
$this->assertEqual($stringArray['en'], $this->tr->get($stringID, $pageID, 'en'));
$this->assertEqual($stringArray['it'], $this->tr->get($stringID, $pageID, 'it'));
$this->assertEqual($stringArray['de'], $this->tr->get($stringID, $pageID, 'de'));
$actual = $this->tr->getPageNames();
$this->assertTrue(in_array($pageID, $this->tr->getPageNames()));
//delete the page
$this->assertTrue($this->tr->removePage($pageID));
$this->assertEqual('', $this->tr->get($stringID, $pageID, 'en'));
$this->assertFalse(in_array($pageID, $this->tr->getPageNames()));
}
}
?>