diff --git a/module/productplan/test/lib/zen.class.php b/module/productplan/test/lib/zen.class.php index 2e89f78684..1465f96f0f 100644 --- a/module/productplan/test/lib/zen.class.php +++ b/module/productplan/test/lib/zen.class.php @@ -216,4 +216,38 @@ class productplanZenTest extends baseTest return $result; } + + /** + * Test setSessionForViewPage method. + * + * @param int $planID + * @param string $type + * @param string $orderBy + * @param int $pageID + * @param int $recPerPage + * @access public + * @return object + */ + public function setSessionForViewPageTest(int $planID, string $type, string $orderBy, int $pageID, int $recPerPage) + { + global $tester, $config; + + // 清除之前的 session 设置,确保每次测试从干净状态开始 + $_SESSION = array(); + + // 调用被测方法 + $this->invokeArgs('setSessionForViewPage', [$planID, $type, $orderBy, $pageID, $recPerPage]); + if(dao::isError()) return dao::getError(); + + // 获取调用后的 session 值 + $afterStoryList = $tester->session->storyList; + $afterBugList = $tester->session->bugList; + + // 判断 session 是否被设置 (不是 false 表示已设置) + $result = new stdClass(); + $result->storyList = $afterStoryList !== false ? 1 : 0; + $result->bugList = $afterBugList !== false ? 1 : 0; + + return $result; + } } diff --git a/module/productplan/test/zen/setsessionforviewpage.php b/module/productplan/test/zen/setsessionforviewpage.php new file mode 100755 index 0000000000..81a016ae41 --- /dev/null +++ b/module/productplan/test/zen/setsessionforviewpage.php @@ -0,0 +1,39 @@ +#!/usr/bin/env php +setSessionForViewPageTest(1, 'story', 'order_desc', 1, 100); +r($result1) && p('storyList') && e('0'); // 步骤1: 所有参数都符合不设置 session 的条件,storyList 应该不被设置 +r($result1) && p('bugList') && e('0'); // 步骤2: 所有参数都符合不设置 session 的条件,bugList 应该不被设置 +r($productplanTest->setSessionForViewPageTest(1, 'story', 'id_desc', 1, 100)) && p('storyList') && e('1'); // 步骤3: orderBy 不为 order_desc,应该设置 storyList +r($productplanTest->setSessionForViewPageTest(2, 'bug', 'id_desc', 1, 100)) && p('bugList') && e('1'); // 步骤4: type 为 bug 且 orderBy 不为 order_desc,应该设置 bugList +r($productplanTest->setSessionForViewPageTest(3, 'story', 'order_desc', 2, 100)) && p('storyList') && e('1'); // 步骤5: pageID 不为 1,应该设置 storyList +r($productplanTest->setSessionForViewPageTest(4, 'bug', 'order_desc', 1, 50)) && p('bugList') && e('1'); // 步骤6: recPerPage 不为 100,应该设置 bugList +$result6 = $productplanTest->setSessionForViewPageTest(5, 'task', 'order_desc', 1, 100); +r($result6) && p('storyList') && e('0'); // 步骤7: type 不为 story 或 bug,不应该设置 storyList +r($result6) && p('bugList') && e('0'); // 步骤8: type 不为 story 或 bug,不应该设置 bugList +r($productplanTest->setSessionForViewPageTest(6, 'story', 'status_asc', 5, 20)) && p('storyList') && e('1'); // 步骤9: 多个参数均非默认值,应该设置 storyList \ No newline at end of file