⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.74
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-pear
/
pear
/
tests
/
turba
/
Turba
/
ToDo
/
Edit File: TestBase.php
<?php /** * Base class for Turba test cases * * @author Jason M. Felice <jason.m.felice@gmail.com> * @package Turba * @subpackage UnitTests */ class Turba_TestBase extends PHPUnit_Framework_TestCase { var $_driver; var $_driverConfig = array( 'title' => "My Address Book", 'type' => 'sql', 'params' => null, 'map' => array( '__key' => 'object_id', '__owner' => 'owner_id', '__type' => 'object_type', '__members' => 'object_members', '__uid' => 'object_uid', 'name' => 'object_name', 'email' => 'object_email', 'alias' => 'object_alias', 'homeAddress' => 'object_homeaddress', 'workAddress' => 'object_workaddress', 'homePhone' => 'object_homephone', 'workPhone' => 'object_workphone', 'cellPhone' => 'object_cellphone', 'fax' => 'object_fax', 'title' => 'object_title', 'company' => 'object_company', 'notes' => 'object_notes', 'pgpPublicKey' => 'object_pgppublickey', 'smimePublicKey' => 'object_smimepublickey', 'freebusyUrl' => 'object_freebusyurl' ), 'search' => array( 'name', 'email' ), 'strict' => array( 'object_id', 'owner_id', 'object_type', ), 'export' => true, 'browse' => true, 'use_shares' => false, ); var $_fixtures = array(array('object_id' => 'aaa', 'object_type' => 'Object', 'owner_id' => '1', 'object_name' => 'Jason Felice', 'object_company' => 'Cronosys, LLC'), array('object_id' => 'bbb', 'object_type' => 'Object', 'owner_id' => '1', 'object_name' => 'Joe Fabetes', 'object_company' => 'Example, Inc.'), array('object_id' => 'ccc', 'object_type' => 'Object', 'owner_id' => '1', 'object_name' => 'Alice Z', 'object_company' => 'Example, Inc.'), array('object_id' => 'ddd', 'object_type' => 'Object', 'owner_id' => '1', 'object_name' => 'Zoe A', 'object_company' => 'Example, Inc.'), array('object_id' => 'eee', 'object_type' => 'Object', 'owner_id' => '1', 'object_name' => 'Alan Garrison', 'object_company' => 'Cronosys, LLC'), array('object_id' => 'fff', 'owner_id' => '1', 'object_type' => 'Group', 'object_name' => 'Test Group', 'object_members' => 'a:5:{i:0;s:3:"aaa";i:1;s:3:"bbb";i:2;s:3:"ccc";i:3;s:3:"ddd";i:4;s:3:"eee";}'), array('object_id' => 'ggg', 'owner_id' => '1', 'object_type' => 'Group', 'object_name' => 'Alpha First Group', 'object_members' => 'a:4:{i:0;s:3:"aaa";i:1;s:3:"bbb";i:2;s:3:"ccc";i:3;s:3:"ddd";}')); var $_sortedByLastname = array('Zoe A', 'Joe Fabetes', 'Jason Felice', 'Alan Garrison', 'Alice Z'); var $_groups = array("Test Group", "Alpha First Group"); var $_sortedByCompanyThenLastname = array('Jason Felice', 'Alan Garrison', 'Zoe A', 'Joe Fabetes', 'Alice Z'); var $_sortedByCompanyThenLastnameDesc = array('Alan Garrison', 'Jason Felice', 'Alice Z', 'Joe Fabetes', 'Zoe A'); /** * Retrieves an SQL driver instance. * * @return object Initialized Turba_Driver_sql:: instance connected to the * test database. */ function getDriver() { if (is_null($this->_driver)) { $this->_driver = Turba_Driver::factory('_test_sql', $this->getDriverConfig()); $this->assertOk($this->_driver); $this->assertOk($this->_driver->_init()); } return $this->_driver; } function getDriverConfig() { if (is_null($this->_driverConfig['params'])) { $this->_driverConfig['params'] = array_merge( $this->getTestDatabaseSQLDriverConfig(), array('table' => 'hordetest_turba_objects')); } return $this->_driverConfig; } /** * Gets the driver's database connection * * FIXME: Should use acceptance environment's method of connecting, and * treat the driver more opaquely. * * @return object PEAR DB reference */ function getDb() { $driver = $this->getDriver(); return $driver->_db; } /** * Asserts that the supplied result is not a PEAR_Error * * Fails with a descriptive message if so * @param mixed $result The value to check * @return boolean Whether the assertion was successful */ function assertOk($result) { if (is_a($result, 'DB_Error')) { $this->fail($result->getDebugInfo()); return false; } elseif (is_a($result, 'PEAR_Error')) { $this->fail($result->getMessage()); return false; } return true; } function setUp() { @define('TURBA_BASE', __DIR__ . '/../..'); @define('TURBA_TEMPLATES', $GLOBALS['registry']->get('templates', 'turba')); require_once TURBA_BASE . '/lib/Driver.php'; require_once TURBA_BASE . '/lib/Object.php'; require_once TURBA_BASE . '/lib/List.php'; require_once TURBA_BASE . '/lib/Turba.php'; } function setUpDatabase() { // Create a new test table, overwriting old ones. require_once 'MDB2/Schema.php'; $config = $this->getDriverConfig(); $manager = MDB2_Schema::factory($config['params']); $defs = $manager->parseDatabaseDefinition(dirname(dirname(__DIR__)) . '/scripts/sql/test.xml', false, array('name' => $config['params']['database']), false); $result = $manager->createTable('hordetest_turba_objects', $defs['tables']['hordetest_turba_objects'], true); $this->assertOk($result); foreach ($this->_fixtures as $fixture) { $this->assertOk($this->_insert($fixture)); } } function _insert($object) { $db = $this->getDb(); $sql = "INSERT INTO hordetest_turba_objects " . Horde_Sql::insertValues($db, $object) . ";"; $result = $db->query($sql); $this->assertOk($result); return $result; } function assertSortsList($callback) { $names = $this->_sortedByLastname; sort($names); $tests = array(array('order' => array(array('field' => 'lastname', 'ascending' => true)), 'results' => $this->_sortedByLastname), array('order' => array(array('field' => 'lastname', 'ascending' => false)), 'results' => array_reverse($this->_sortedByLastname)), array('order' => array(array('field' => 'company', 'ascending' => true), array('field' => 'lastname', 'ascending' => true)), 'results' => $this->_sortedByCompanyThenLastname), array('order' => array(array('field' => 'company', 'ascending' => true), array('field' => 'lastname', 'ascending' => false)), 'results' => $this->_sortedByCompanyThenLastnameDesc), array('order' => array(array('field' => 'name', 'ascending' => true)), 'results' => $names), array('order' => array(array('field' => 'name', 'ascending' => false)), 'results' => array_reverse($names))); foreach ($tests as $test) { $list = call_user_func($callback, $test['order']); $this->assertOk($list); if (!$this->assertTrue(is_a($list, 'Turba_List'))) { return; } $this->assertOk($list->reset()); foreach ($test['results'] as $name) { $this->assertTrue($ob = $list->next()); if (!$this->assertTrue(is_a($ob, 'Turba_Object'))) { continue; } $this->assertEqual($name, $ob->getValue('name')); } } } function fakeAuth() { /* Turba_Driver::search() is coupled with authentication global * state. */ //$_SESSION['__auth'] = array('authenticated' => true, // 'userId' => '1'); $this->assertEqual('1', $GLOBALS['registry']->getAuth()); } /** * Constructs and returns a Turba_List:: object populated with items * * @return Turba_List */ function getList() { $list = new Turba_List(); $driver = $this->getDriver(); foreach (array('eee', 'ccc', 'ddd', 'bbb', 'aaa') as $id) { $result = $list->insert($driver->getObject($id)); $this->assertOk($result); } return $list; } }
Simpan