diff --git a/module/search/test/lib/search.unittest.class.php b/module/search/test/lib/search.unittest.class.php index 8265abce73..d211bc0dd0 100755 --- a/module/search/test/lib/search.unittest.class.php +++ b/module/search/test/lib/search.unittest.class.php @@ -825,4 +825,30 @@ class searchTest return $result; } + + /** + * Test initOldSession method. + * + * @param string $module + * @param array $fields + * @param array $fieldParams + * @param bool $clearSession + * @access public + * @return array + */ + public function initOldSessionTest(string $module, array $fields, array $fieldParams, bool $clearSession = true): array + { + $formSessionName = $module . 'Form'; + + // 根据参数决定是否清理session数据 + if($clearSession) { + unset($_SESSION[$formSessionName]); + } + + $this->objectTao->initOldSession($module, $fields, $fieldParams); + + if(dao::isError()) return dao::getError(); + + return $_SESSION[$formSessionName] ?? array(); + } } diff --git a/module/search/test/tao/initoldsession.php b/module/search/test/tao/initoldsession.php new file mode 100755 index 0000000000..c896b7b0e4 --- /dev/null +++ b/module/search/test/tao/initoldsession.php @@ -0,0 +1,57 @@ +#!/usr/bin/env php + 'include', 'control' => 'input'); +$fieldParams['keywords'] = array('operator' => 'include', 'control' => 'input'); +$fieldParams['assignedTo'] = array('operator' => '=', 'control' => 'select'); +$fieldParams['status'] = array('operator' => '=', 'control' => 'select'); + +// 5. 测试步骤 +r($searchTest->initOldSessionTest($module, $fields, $fieldParams, true)) && p('field1,operator1') && e('title,include'); // 步骤1:测试正常情况,验证session初始化 +r($searchTest->initOldSessionTest($module, $fields, $fieldParams, false)) && p('field3,operator3') && e('assignedTo,='); // 步骤2:测试已存在session情况,验证不重复初始化 +r($searchTest->initOldSessionTest('task', array('name' => '任务名称'), array('name' => array('operator' => 'include')), true)) && p('field1,operator1') && e('name,include'); // 步骤3:测试空字段数组情况 +r($searchTest->initOldSessionTest('story', array('title' => '需求标题'), array('title' => array('operator' => 'include')), true)) && p('field1,operator1') && e('title,include'); // 步骤4:测试不同模块名称的session +r($searchTest->initOldSessionTest('user', array('account' => '用户名'), array('account' => array('operator' => '!=')), true)) && p('field1,operator1') && e('account,!='); // 步骤5:测试字段参数中的操作符设置 \ No newline at end of file