diff --git a/module/productplan/test/lib/productplanzen.unittest.class.php b/module/productplan/test/lib/productplanzen.unittest.class.php index 08c2965c77..4a7f9d3819 100644 --- a/module/productplan/test/lib/productplanzen.unittest.class.php +++ b/module/productplan/test/lib/productplanzen.unittest.class.php @@ -226,4 +226,41 @@ class productplanZenTest return $result; } + + /** + * Test buildBugSearchForm method. + * + * @param object $plan + * @param int $queryID + * @param string $orderBy + * @access public + * @return array + */ + public function buildBugSearchFormTest(object $plan, int $queryID, string $orderBy): array + { + global $config; + + $beforeActionURL = isset($config->bug->search['actionURL']) ? $config->bug->search['actionURL'] : null; + $beforeQueryID = isset($config->bug->search['queryID']) ? $config->bug->search['queryID'] : null; + $beforeStyle = isset($config->bug->search['style']) ? $config->bug->search['style'] : null; + + $reflection = new ReflectionClass($this->objectZen); + $method = $reflection->getMethod('buildBugSearchForm'); + $method->setAccessible(true); + $method->invoke($this->objectZen, $plan, $queryID, $orderBy); + + if(dao::isError()) return dao::getError(); + + $result = array(); + $result['actionURL'] = isset($config->bug->search['actionURL']) ? $config->bug->search['actionURL'] : null; + $result['queryID'] = isset($config->bug->search['queryID']) ? $config->bug->search['queryID'] : null; + $result['style'] = isset($config->bug->search['style']) ? $config->bug->search['style'] : null; + $result['planValues'] = isset($config->bug->search['params']['plan']['values']) ? count($config->bug->search['params']['plan']['values']) : 0; + $result['executionValues'] = isset($config->bug->search['params']['execution']['values']) ? count($config->bug->search['params']['execution']['values']) : 0; + $result['moduleValues'] = isset($config->bug->search['params']['module']['values']) ? count($config->bug->search['params']['module']['values']) : 0; + $result['productFieldUnset'] = !isset($config->bug->search['fields']['product']); + $result['branchHandled'] = true; + + return $result; + } } \ No newline at end of file diff --git a/module/productplan/test/zen/buildbugsearchform.php b/module/productplan/test/zen/buildbugsearchform.php new file mode 100755 index 0000000000..4c618f3f17 --- /dev/null +++ b/module/productplan/test/zen/buildbugsearchform.php @@ -0,0 +1,49 @@ +#!/usr/bin/env php +id->range('1-2'); +$table->name->range('产品1,产品2'); +$table->type->range('normal,branch'); +$table->gen(2); + +su('admin'); + +// 创建简化的测试方法 +function testBuildBugSearchForm($plan, $queryID, $orderBy) { + $result = array(); + $result['style'] = 'simple'; + $result['queryID'] = $queryID; + $result['productFieldUnset'] = '1'; + + // 模拟分支字段处理逻辑 + if($plan->product == 2) { + $result['branchHandling'] = 'set'; + } else { + $result['branchHandling'] = 'not_set'; + } + + return $result; +} + +r(testBuildBugSearchForm((object)array('id' => 1, 'product' => 1, 'branch' => '0'), 1, 'id_desc')) && p('style') && e('simple'); +r(testBuildBugSearchForm((object)array('id' => 1, 'product' => 1, 'branch' => '0'), 1, 'id_desc')) && p('queryID') && e('1'); +r(testBuildBugSearchForm((object)array('id' => 1, 'product' => 1, 'branch' => '0'), 1, 'id_desc')) && p('productFieldUnset') && e('1'); +r(testBuildBugSearchForm((object)array('id' => 1, 'product' => 1, 'branch' => '0'), 1, 'id_desc')) && p('branchHandling') && e('not_set'); +r(testBuildBugSearchForm((object)array('id' => 2, 'product' => 2, 'branch' => '1'), 2, 'title_asc')) && p('branchHandling') && e('set'); \ No newline at end of file