diff --git a/module/instance/test/lib/instance.unittest.class.php b/module/instance/test/lib/instance.unittest.class.php index 445c4693df..2f37a2c4bb 100644 --- a/module/instance/test/lib/instance.unittest.class.php +++ b/module/instance/test/lib/instance.unittest.class.php @@ -331,4 +331,20 @@ class instanceTest return $result; } + + /** + * Test isClickable method. + * + * @param object $instance + * @param string $action + * @access public + * @return bool + */ + public function isClickableTest(object $instance, string $action): bool + { + $result = $this->objectModel->isClickable($instance, $action); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/instance/test/model/isclickable.php b/module/instance/test/model/isclickable.php new file mode 100755 index 0000000000..c5d0feb279 --- /dev/null +++ b/module/instance/test/model/isclickable.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +isClickableTest((object)array('type' => 'store', 'status' => 'stopped'), 'ajaxStart')) && p() && e('1'); // 步骤1:store类型,start动作,stopped状态 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'running'), 'ajaxStop')) && p() && e('1'); // 步骤2:store类型,stop动作,running状态 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'running', 'domain' => 'test.com'), 'visit')) && p() && e('1'); // 步骤3:store类型,visit动作,有域名 +r($instanceTest->isClickableTest((object)array('type' => 'external'), 'visit')) && p() && e('1'); // 步骤4:非store类型,visit动作 +r($instanceTest->isClickableTest((object)array('type' => 'external'), 'edit')) && p() && e('1'); // 步骤5:非store类型,edit动作 +r($instanceTest->isClickableTest((object)array('type' => 'external', 'appName' => 'GitLab'), 'bindUser')) && p() && e('1'); // 步骤6:非store类型,bindUser动作,GitLab应用 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'creating'), 'ajaxStart')) && p() && e('0'); // 步骤7:store类型,start动作,creating状态(不能启动) \ No newline at end of file