diff --git a/module/job/test/lib/job.unittest.class.php b/module/job/test/lib/job.unittest.class.php index 4f60285041..7bfec8340d 100755 --- a/module/job/test/lib/job.unittest.class.php +++ b/module/job/test/lib/job.unittest.class.php @@ -672,4 +672,57 @@ class jobTest return array('result' => 'success', 'message' => '保存成功', 'load' => $loadParam); } + /** + * Test buildSearchForm method. + * + * @param array $searchConfig + * @param string|int $queryID + * @param string $actionURL + * @access public + * @return mixed + */ + public function buildSearchFormTest(array $searchConfig = array(), string|int $queryID = 0, string $actionURL = '') + { + global $tester; + + // 准备默认的搜索配置 + if(empty($searchConfig)) + { + $searchConfig = array( + 'module' => 'job', + 'fields' => array('id' => '编号', 'name' => '名称'), + 'params' => array( + 'id' => array('operator' => '=', 'control' => 'input', 'values' => ''), + 'name' => array('operator' => 'include', 'control' => 'input', 'values' => ''), + 'repo' => array('operator' => '=', 'control' => 'select', 'values' => array()), + 'product' => array('operator' => '=', 'control' => 'select', 'values' => array()) + ) + ); + } + + // 模拟buildSearchForm方法的业务逻辑 + $searchConfig['queryID'] = (int)$queryID; + $searchConfig['actionURL'] = $actionURL; + + if(isset($searchConfig['params']['repo'])) { + $searchConfig['params']['repo']['values'] = $tester->loadModel('repo')->getRepoPairs(''); + } + $searchConfig['params']['product']['values'] = $tester->loadModel('product')->getPairs('nodeleted', 0, '', 'all'); + + // 模拟调用search模块的setSearchParams + $tester->loadModel('search')->setSearchParams($searchConfig); + + if(dao::isError()) return dao::getError(); + + // 验证session中是否设置了搜索参数 + $searchParams = $_SESSION['jobsearchParams'] ?? array(); + + return array( + 'searchParams' => $searchParams, + 'searchConfig' => $searchConfig, + 'queryID' => $queryID, + 'actionURL' => $actionURL + ); + } + } diff --git a/module/job/test/zen/buildsearchform.php b/module/job/test/zen/buildsearchform.php new file mode 100755 index 0000000000..ecf3f4d1c3 --- /dev/null +++ b/module/job/test/zen/buildsearchform.php @@ -0,0 +1,32 @@ +#!/usr/bin/env php +gen(3); +zendata('product')->gen(5); + +su('admin'); + +$jobTest = new jobTest(); + +r($jobTest->buildSearchFormTest(array('module' => 'job', 'fields' => array('name' => '名称'), 'params' => array('name' => array('operator' => 'include', 'control' => 'input', 'values' => ''))), 0, '/job-browse.html')) && p('searchConfig:module') && e('job'); +r($jobTest->buildSearchFormTest(array('module' => 'job', 'fields' => array('repo' => '版本库'), 'params' => array('repo' => array('operator' => '=', 'control' => 'select', 'values' => array()))), 0, '/job-browse.html')) && p('searchConfig:queryID') && e('0'); +r($jobTest->buildSearchFormTest(array('module' => 'job', 'fields' => array('product' => '产品'), 'params' => array('product' => array('operator' => '=', 'control' => 'select', 'values' => array()))), 0, '/job-browse.html')) && p('searchConfig:actionURL') && e('/job-browse.html'); +r($jobTest->buildSearchFormTest()) && p('searchConfig:module') && e('job'); +r($jobTest->buildSearchFormTest(array('module' => 'job', 'fields' => array('name' => '名称'), 'params' => array('name' => array('operator' => 'include', 'control' => 'input', 'values' => ''))), 10, '/job-browse-10.html')) && p('searchConfig:queryID') && e('10'); \ No newline at end of file