Changeset 3874:ab8368569446 for tests
- Timestamp:
- 09/14/18 12:16:17 (7 years ago)
- Branch:
- default
- Location:
- tests/unit
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/unit/bootstrap.php
r3064 r3874 11 11 # -- END LICENSE BLOCK ----------------------------------------- 12 12 13 require_once __DIR__ .'/../../vendor/autoload.php';13 require_once __DIR__ . '/../../vendor/autoload.php'; 14 14 15 define('CLEARBRICKS_PATH', __DIR__.'/../../inc/libs/clearbricks');15 define('CLEARBRICKS_PATH', __DIR__ . '/../../inc/libs/clearbricks'); 16 16 17 $__autoload = array();18 $__autoload['dbLayer'] = CLEARBRICKS_PATH.'/dblayer/dblayer.php';19 $__autoload['staticRecord'] = CLEARBRICKS_PATH.'/dblayer/dblayer.php';20 $__autoload['sqliteConnection'] = CLEARBRICKS_PATH .'/dblayer/class.sqlite.php';21 $__autoload['mysqlConnection'] = CLEARBRICKS_PATH.'/dblayer/class.mysql.php';22 $__autoload['mysqliConnection'] = CLEARBRICKS_PATH .'/dblayer/class.mysqli.php';23 $__autoload['pgsqlConnection'] = CLEARBRICKS_PATH.'/dblayer/class.pgsql.php';24 $__autoload['record'] = CLEARBRICKS_PATH.'/dblayer/dblayer.php';25 $__autoload['template'] = CLEARBRICKS_PATH.'/template/class.template.php';26 $__autoload['path'] = CLEARBRICKS_PATH.'/common/lib.files.php';17 $__autoload = []; 18 $__autoload['dbLayer'] = CLEARBRICKS_PATH . '/dblayer/dblayer.php'; 19 $__autoload['staticRecord'] = CLEARBRICKS_PATH . '/dblayer/dblayer.php'; 20 $__autoload['sqliteConnection'] = CLEARBRICKS_PATH . '/dblayer/class.sqlite.php'; 21 $__autoload['mysqlConnection'] = CLEARBRICKS_PATH . '/dblayer/class.mysql.php'; 22 $__autoload['mysqliConnection'] = CLEARBRICKS_PATH . '/dblayer/class.mysqli.php'; 23 $__autoload['pgsqlConnection'] = CLEARBRICKS_PATH . '/dblayer/class.pgsql.php'; 24 $__autoload['record'] = CLEARBRICKS_PATH . '/dblayer/dblayer.php'; 25 $__autoload['template'] = CLEARBRICKS_PATH . '/template/class.template.php'; 26 $__autoload['path'] = CLEARBRICKS_PATH . '/common/lib.files.php'; 27 27 28 $__autoload['dcCore'] = __DIR__.'/../../inc/core/class.dc.core.php';29 $__autoload['dcNamespace'] = __DIR__ .'/../../inc/core/class.dc.namespace.php';28 $__autoload['dcCore'] = __DIR__ . '/../../inc/core/class.dc.core.php'; 29 $__autoload['dcNamespace'] = __DIR__ . '/../../inc/core/class.dc.namespace.php'; 30 30 31 31 $loader = new \Composer\Autoload\ClassLoader(); … … 33 33 $loader->register(); 34 34 35 function __($s) { 35 function __($s) 36 { 36 37 return $s; 37 38 } -
tests/unit/inc/core/class.dc.core.php
r2999 r3874 15 15 use atoum; 16 16 17 require_once __DIR__ .'/../../bootstrap.php';18 $f = str_replace('\\', '/',__FILE__);19 require_once (str_replace('tests/unit/','',$f));17 require_once __DIR__ . '/../../bootstrap.php'; 18 $f = str_replace('\\', '/', __FILE__); 19 require_once str_replace('tests/unit/', '', $f); 20 20 21 21 class dcCore extends atoum … … 23 23 private $prefix = 'dc_'; 24 24 25 private function getConnection($driver) { 26 $controller = new \atoum\mock\controller(); 27 $controller->__construct = function() {}; 25 private function getConnection($driver) 26 { 27 $controller = new \atoum\mock\controller(); 28 $controller->__construct = function () {}; 28 29 29 $class_name = sprintf('\mock\%sConnection',$driver); 30 $con = new $class_name($driver,$controller); 31 $this->calling($con)->driver = $driver; 32 $this->calling($con)->escape = function($s) { // just for order, so don't care 30 $class_name = sprintf('\mock\%sConnection', $driver); 31 $con = new $class_name($driver, $controller); 32 $this->calling($con)->driver = $driver; 33 $this->calling($con)->escape = function ($s) { 34 // just for order, so don't care 33 35 return $s; 34 36 }; 35 $this->calling($con)->select = function($sql) {36 return new \staticRecord( array(),array());37 $this->calling($con)->select = function ($sql) { 38 return new \staticRecord([], []); 37 39 }; 38 40 39 40 41 return $con; 42 } 41 43 42 public function testGetUsers($driver) { 44 public function testGetUsers($driver) 45 { 43 46 $con = $this->getConnection($driver); 44 47 45 $controller = new \atoum\mock\controller();46 $controller->__construct = function () {};48 $controller = new \atoum\mock\controller(); 49 $controller->__construct = function () {}; 47 50 48 51 $query = 'SELECT U.user_id,user_super,user_status,user_pwd,user_change_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz, user_post_status,user_options, count(P.post_id) AS nb_post FROM user U LEFT JOIN post P ON U.user_id = P.user_id WHERE NULL IS NULL GROUP BY U.user_id,user_super,user_status,user_pwd,user_change_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz,user_post_status,user_options ORDER BY U.user_id ASC '; 49 52 50 $core = new \mock\dcCore(null,null,null,null,null,null,null,$controller);53 $core = new \mock\dcCore(null, null, null, null, null, null, null, $controller); 51 54 $core->con = $con; 52 55 $this 53 56 ->if($core->getUsers()) 54 57 ->then() 55 56 57 58 ->mock($con)->call('select') 59 ->withIdenticalArguments($query) 60 ->once(); 58 61 } 59 62 60 public function testGetUsersWithParams($driver,$params,$query) { 63 public function testGetUsersWithParams($driver, $params, $query) 64 { 61 65 $con = $this->getConnection($driver); 62 66 63 $controller = new \atoum\mock\controller();64 $controller->__construct = function () {};67 $controller = new \atoum\mock\controller(); 68 $controller->__construct = function () {}; 65 69 66 $core = new \mock\dcCore(null,null,null,null,null,null,null,$controller);70 $core = new \mock\dcCore(null, null, null, null, null, null, null, $controller); 67 71 $core->con = $con; 68 72 69 73 $this 70 74 ->if($core->getUsers($params)) 71 75 ->then() 72 73 74 76 ->mock($con)->call('select') 77 ->withIdenticalArguments($query) 78 ->once(); 75 79 } 76 80 77 81 /* 78 82 * DataProviders 79 **/ 80 protected function testGetUsersDataProvider() { 81 $query = array(); 83 **/ 84 protected function testGetUsersDataProvider() 85 { 86 $query = []; 82 87 83 return array(84 array('pgsql'),85 array('sqlite'),86 array('mysql'),87 array('mysqli'), 88 );88 return [ 89 ['pgsql'], 90 ['sqlite'], 91 ['mysql'], 92 ['mysqli'] 93 ]; 89 94 } 90 95 91 protected function testGetUsersWithParamsDataProvider() { 96 protected function testGetUsersWithParamsDataProvider() 97 { 92 98 $base_query = 'SELECT U.user_id,user_super,user_status,user_pwd,user_change_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz, user_post_status,user_options, count(P.post_id) AS nb_post FROM user U LEFT JOIN post P ON U.user_id = P.user_id WHERE NULL IS NULL GROUP BY U.user_id,user_super,user_status,user_pwd,user_change_pwd,user_name,user_firstname,user_displayname,user_email,user_url,user_desc, user_lang,user_tz,user_post_status,user_options ORDER BY '; 93 99 94 return array(95 array('pgsql',array('order' => 'user_id asc'),$base_query.'U.user_id asc '),96 array('pgsql',array('order' => 'U.user_id asc'),$base_query.'U.user_id asc '),97 array('mysql',array('order' => 'user_id asc'),$base_query.'U.user_id asc '),98 array('mysql',array('order' => 'U.user_id asc'),$base_query.'U.user_id asc '),99 array('mysqli',array('order' => 'user_id asc'),$base_query.'U.user_id asc '),100 array('mysqli',array('order' => 'U.user_id asc'),$base_query.'U.user_id asc '),101 array('sqlite',array('order' => 'user_id asc'),$base_query.'U.user_id asc '),102 array('sqlite',array('order' => 'U.user_id asc'),$base_query.'U.user_id asc '),100 return [ 101 ['pgsql', ['order' => 'user_id asc'], $base_query . 'U.user_id asc '], 102 ['pgsql', ['order' => 'U.user_id asc'], $base_query . 'U.user_id asc '], 103 ['mysql', ['order' => 'user_id asc'], $base_query . 'U.user_id asc '], 104 ['mysql', ['order' => 'U.user_id asc'], $base_query . 'U.user_id asc '], 105 ['mysqli', ['order' => 'user_id asc'], $base_query . 'U.user_id asc '], 106 ['mysqli', ['order' => 'U.user_id asc'], $base_query . 'U.user_id asc '], 107 ['sqlite', ['order' => 'user_id asc'], $base_query . 'U.user_id asc '], 108 ['sqlite', ['order' => 'U.user_id asc'], $base_query . 'U.user_id asc '], 103 109 104 array('pgsql',array('order' => 'nb_post desc'),$base_query.'P.nb_post desc '),105 array('pgsql',array('order' => 'P.nb_post desc'),$base_query.'P.nb_post desc '),106 array('mysql',array('order' => 'nb_post desc'),$base_query.'P.nb_post desc '),107 array('mysql',array('order' => 'P.nb_post desc'),$base_query.'P.nb_post desc '),108 array('mysqli',array('order' => 'nb_post desc'),$base_query.'P.nb_post desc '),109 array('mysqli',array('order' => 'P.nb_post desc'),$base_query.'P.nb_post desc '),110 array('sqlite',array('order' => 'nb_post desc'),$base_query.'P.nb_post desc '),111 array('sqlite',array('order' => 'P.nb_post desc'),$base_query.'P.nb_post desc '), 112 );110 ['pgsql', ['order' => 'nb_post desc'], $base_query . 'P.nb_post desc '], 111 ['pgsql', ['order' => 'P.nb_post desc'], $base_query . 'P.nb_post desc '], 112 ['mysql', ['order' => 'nb_post desc'], $base_query . 'P.nb_post desc '], 113 ['mysql', ['order' => 'P.nb_post desc'], $base_query . 'P.nb_post desc '], 114 ['mysqli', ['order' => 'nb_post desc'], $base_query . 'P.nb_post desc '], 115 ['mysqli', ['order' => 'P.nb_post desc'], $base_query . 'P.nb_post desc '], 116 ['sqlite', ['order' => 'nb_post desc'], $base_query . 'P.nb_post desc '], 117 ['sqlite', ['order' => 'P.nb_post desc'], $base_query . 'P.nb_post desc '] 118 ]; 113 119 } 114 120 } -
tests/unit/inc/public/class.dc.template.php
r3064 r3874 15 15 use atoum; 16 16 17 require_once __DIR__ .'/../../bootstrap.php';18 $f = str_replace('\\', '/',__FILE__);19 require_once (str_replace('tests/unit/','',$f));17 require_once __DIR__ . '/../../bootstrap.php'; 18 $f = str_replace('\\', '/', __FILE__); 19 require_once str_replace('tests/unit/', '', $f); 20 20 21 21 class dcTemplate extends atoum 22 22 { 23 private function getCore() { 24 $controller = new \atoum\mock\controller(); 25 $controller->__construct = function() {}; 23 private function getCore() 24 { 25 $controller = new \atoum\mock\controller(); 26 $controller->__construct = function () {}; 26 27 27 $core = new \mock\dcCore(null,null,null,null,null,null,$controller);28 $core->blog = json_decode('{"settings": {"system": {"tpl_allow_php":false,"tpl_use_cache":true}}}',false);29 30 28 $core = new \mock\dcCore(null, null, null, null, null, null, $controller); 29 $core->blog = json_decode('{"settings": {"system": {"tpl_allow_php":false,"tpl_use_cache":true}}}', false); 30 return $core; 31 } 31 32 32 public function testGetSortByStrWithDefaultValues() { 33 // copy from ../../../../inc/public/class.dc.template.php:getSortByStr() 34 $default_alias = array( 35 'post' => array( 36 'title' => 'post_title', 37 'selected' => 'post_selected', 38 'author' => 'user_id', 39 'date' => 'post_dt', 40 'id' => 'post_id', 41 'comment' => 'nb_comment', 42 'trackback' => 'nb_trackback' 43 ), 44 'comment' => array( 45 'author' => 'comment_author', 46 'date' => 'comment_dt', 47 'id' => 'comment_id' 48 ) 49 ); 33 public function testGetSortByStrWithDefaultValues() 34 { 35 // copy from ../../../../inc/public/class.dc.template.php:getSortByStr() 36 $default_alias = [ 37 'post' => [ 38 'title' => 'post_title', 39 'selected' => 'post_selected', 40 'author' => 'user_id', 41 'date' => 'post_dt', 42 'id' => 'post_id', 43 'comment' => 'nb_comment', 44 'trackback' => 'nb_trackback' 45 ], 46 'comment' => [ 47 'author' => 'comment_author', 48 'date' => 'comment_dt', 49 'id' => 'comment_id' 50 ] 51 ]; 50 52 51 $tpl = new \dcTemplate(sys_get_temp_dir(),'$tpl',$this->getCore());53 $tpl = new \dcTemplate(sys_get_temp_dir(), '$tpl', $this->getCore()); 52 54 53 54 55 ->string($tpl->getSortByStr(array(),$table))56 ->isEqualTo($default_alias[$table]['date'].' desc');57 58 59 ->string($tpl->getSortByStr(array('sortby' => $field),$table))60 ->isEqualTo($value.' desc');61 62 ->string($tpl->getSortByStr(array('sortby' => $field,'order' => 'asc'),$table))63 ->isEqualTo($value.' asc');64 65 66 55 foreach ($default_alias as $table => $fields) { 56 $this 57 ->string($tpl->getSortByStr([], $table)) 58 ->isEqualTo($default_alias[$table]['date'] . ' desc'); 59 foreach ($fields as $field => $value) { 60 $this 61 ->string($tpl->getSortByStr(['sortby' => $field], $table)) 62 ->isEqualTo($value . ' desc'); 63 $this 64 ->string($tpl->getSortByStr(['sortby' => $field, 'order' => 'asc'], $table)) 65 ->isEqualTo($value . ' asc'); 66 } 67 } 68 } 67 69 68 public function testGetSortByStrWithNonExistingKeyAndExistingTable() { 69 $tpl = new \dcTemplate(sys_get_temp_dir(),'$tpl',$this->getCore()); 70 $this 71 ->string($tpl->getSortByStr(array('sortby' => 'dummy_field'),'post')) 72 ->isEqualTo('post_dt desc') 73 ->string($tpl->getSortByStr(array('sortby' => 'dummy_field'),'comment')) 74 ->isEqualTo('comment_dt desc'); 75 } 70 public function testGetSortByStrWithNonExistingKeyAndExistingTable() 71 { 72 $tpl = new \dcTemplate(sys_get_temp_dir(), '$tpl', $this->getCore()); 73 $this 74 ->string($tpl->getSortByStr(['sortby' => 'dummy_field'], 'post')) 75 ->isEqualTo('post_dt desc') 76 ->string($tpl->getSortByStr(['sortby' => 'dummy_field'], 'comment')) 77 ->isEqualTo('comment_dt desc'); 78 } 76 79 77 public function testGetSortByStrWithNewKeyAndExistingTable() { 78 $new_alias = array(); 79 $new_alias['post']['category'] = 'cat_id'; 80 $new_alias['post']['format'] = 'post_format'; 81 $new_alias['comment']['filter'] = 'spam_filter'; 80 public function testGetSortByStrWithNewKeyAndExistingTable() 81 { 82 $new_alias = []; 83 $new_alias['post']['category'] = 'cat_id'; 84 $new_alias['post']['format'] = 'post_format'; 85 $new_alias['comment']['filter'] = 'spam_filter'; 82 86 83 84 85 function($alias) use ($new_alias) {86 87 88 89 90 91 92 87 $core = $this->getCore(); 88 $core->addBehavior('templateCustomSortByAlias', 89 function ($alias) use ($new_alias) { 90 foreach ($new_alias as $table => $fields) { 91 foreach ($fields as $field => $value) { 92 $alias[$table][$field] = $value; 93 } 94 } 95 } 96 ); 93 97 94 $tpl = new \dcTemplate(sys_get_temp_dir(),'$tpl',$core);95 96 97 98 ->string($tpl->getSortByStr(array('sortby' => $field),$table))99 ->isEqualTo($value.' desc');100 101 102 98 $tpl = new \dcTemplate(sys_get_temp_dir(), '$tpl', $core); 99 foreach ($new_alias as $table => $fields) { 100 foreach ($fields as $field => $value) { 101 $this 102 ->string($tpl->getSortByStr(['sortby' => $field], $table)) 103 ->isEqualTo($value . ' desc'); 104 } 105 } 106 } 103 107 104 public function testGetSortByStrWithNewTable() { 105 $new_alias = array(); 106 $new_alias['dummy_table']['field1'] = 'field1_id'; 107 $new_alias['dummy_table']['field2'] = 'field2_format'; 108 public function testGetSortByStrWithNewTable() 109 { 110 $new_alias = []; 111 $new_alias['dummy_table']['field1'] = 'field1_id'; 112 $new_alias['dummy_table']['field2'] = 'field2_format'; 108 113 109 110 111 function($alias) use ($new_alias) {112 113 114 115 116 117 118 114 $core = $this->getCore(); 115 $core->addBehavior('templateCustomSortByAlias', 116 function ($alias) use ($new_alias) { 117 foreach ($new_alias as $table => $fields) { 118 foreach ($fields as $field => $value) { 119 $alias[$table][$field] = $value; 120 } 121 } 122 } 123 ); 119 124 120 $tpl = new \dcTemplate(sys_get_temp_dir(),'$tpl',$core);121 122 123 124 ->string($tpl->getSortByStr(array('sortby' => $field),$table))125 ->isEqualTo($value.' desc');126 127 128 125 $tpl = new \dcTemplate(sys_get_temp_dir(), '$tpl', $core); 126 foreach ($new_alias as $table => $fields) { 127 foreach ($fields as $field => $value) { 128 $this 129 ->string($tpl->getSortByStr(['sortby' => $field], $table)) 130 ->isEqualTo($value . ' desc'); 131 } 132 } 133 } 129 134 }
Note: See TracChangeset
for help on using the changeset viewer.