diff --git a/module/program/test/lib/program.unittest.class.php b/module/program/test/lib/program.unittest.class.php index 0a831b6d3a..a9cb121d2f 100644 --- a/module/program/test/lib/program.unittest.class.php +++ b/module/program/test/lib/program.unittest.class.php @@ -890,4 +890,44 @@ class programTest return $result; } + + /** + * Test getLink method. + * + * @param string $moduleName + * @param string $methodName + * @param string $programID + * @param string $vars + * @param string $from + * @access public + * @return mixed + */ + public function getLinkTest(string $moduleName, string $methodName, string $programID, string $vars = '', string $from = 'program') + { + global $config; + + if($from != 'program') return helper::createLink('product', 'all', "programID={$programID}" . $vars); + + if($config->edition != 'open') + { + $flow = $this->program->loadModel('workflow')->getByModule($moduleName); + if($flow && in_array($flow->app, array('scrum', 'waterfall'))) $flow->app = 'project'; + if(!empty($flow) && $flow->buildin == '0') return helper::createLink('flow', 'ajaxSwitchBelong', "objectID=$programID&moduleName=$moduleName") . "#app=$flow->app"; + } + if($moduleName == 'project') + { + $moduleName = 'program'; + $methodName = 'project'; + } + if($moduleName == 'product') + { + $moduleName = 'program'; + $methodName = 'product'; + } + + $result = helper::createLink($moduleName, $methodName, "programID={$programID}" . $vars); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/program/test/zen/getlink.php b/module/program/test/zen/getlink.php new file mode 100755 index 0000000000..82e4ca6a70 --- /dev/null +++ b/module/program/test/zen/getlink.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +getLinkTest('program', 'browse', '1')) && p() && e('program-browse-1.html'); +r($programTest->getLinkTest('project', 'browse', '1')) && p() && e('program-project-1.html'); +r($programTest->getLinkTest('product', 'browse', '1')) && p() && e('program-product-1.html'); +r($programTest->getLinkTest('task', 'browse', '1', '', 'product')) && p() && e('product-all-1.html'); +r($programTest->getLinkTest('program', 'browse', '1', '&status=doing')) && p() && e('program-browse-1-doing.html'); \ No newline at end of file