From 69fc328a1e1aa841ecb43d60ce03d284f686ba97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B9=BF=E6=98=8E?= Date: Tue, 15 Mar 2022 15:41:39 +0800 Subject: [PATCH] * Code for auto test. --- test/class/user.class.php | 152 ++++++++++++++++++++++++++++- test/model/user/batchcreate.php | 17 ++-- test/model/user/batchedit.php | 36 +++++++ test/model/user/checkpassword.php | 44 +++++++++ test/model/user/create.php | 2 +- test/model/user/identify.php | 18 ++++ test/model/user/resetpassword.php | 45 +++++++++ test/model/user/update.php | 47 +++++++++ test/model/user/updatepassword.php | 41 ++++++++ 9 files changed, 390 insertions(+), 12 deletions(-) create mode 100644 test/model/user/batchedit.php create mode 100644 test/model/user/checkpassword.php create mode 100644 test/model/user/identify.php create mode 100644 test/model/user/resetpassword.php create mode 100644 test/model/user/update.php create mode 100644 test/model/user/updatepassword.php diff --git a/test/class/user.class.php b/test/class/user.class.php index 50156218ae..854110c622 100644 --- a/test/class/user.class.php +++ b/test/class/user.class.php @@ -271,12 +271,160 @@ class userTest else { $users = array(); - foreach($userIDList as $userID) + foreach($userIDList as $userID) $users[] = $this->objectModel->getByID($userID, 'id'); + + return $users; + } + } + + /** + * Test edit a user. + * + * @param int $userID + * @param array $params + * @access public + * @return void + */ + public function updateUserTest($userID, $params = array()) + { + $_POST = $params; + $_POST['verifyPassword'] = 'e79f8fb9726857b212401e42e5b7e18b'; + + $this->objectModel->update($userID); + unset($_POST); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $this->objectModel->getByID($userID, 'id'); + } + } + + /** + * Test batch edit users. + * + * @param array $params + * @access public + * @return void + */ + public function batchEditUserTest($params = array()) + { + $_POST = $params; + $_POST['verifyPassword'] = 'e79f8fb9726857b212401e42e5b7e18b'; + + $this->objectModel->batchEdit($params); + unset($_POST); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + $users = array(); + $userIDList = array_keys($params['account']); + foreach($userIDList as $userID) { - $users[] = $this->objectModel->getByID($userID, 'id'); + $user = $this->objectModel->getByID($userID, 'id'); + $users[$user->id] = $user; } return $users; } } + + /** + * Test edit a user password. + * + * @param int $userID + * @param array $params + * @access public + * @return void + */ + public function updatePasswordTest($userID, $params = array()) + { + $_POST = $params; + + $this->objectModel->updatePassword($userID); + unset($_POST); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return $this->objectModel->getByID($userID, 'id'); + } + } + + /** + * Reset user password. + * + * @param array $params + * @access public + * @return void + */ + public function resetPasswordTest($params = array()) + { + $_POST = $params; + + $this->objectModel->resetPassword(); + unset($_POST); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + $account = $params['account']; + return $this->objectModel->getByID($account, 'account'); + } + } + + /** + * Check user password. + * + * @param array $params + * @access public + * @return void + */ + public function checkPasswordTest($params = array()) + { + $_POST = $params; + + $this->objectModel->checkPassword(); + unset($_POST); + + if(dao::isError()) + { + return dao::getError(); + } + else + { + return '无报错'; + } + } + + /** + * Identify user. + * + * @param string $account + * @param string $password + * @access public + * @return void + */ + public function identifyTest($account, $password) + { + $_POST = $params; + + $user = $this->objectModel->identify($account, $password); + unset($_POST); + + return $user; + } } diff --git a/test/model/user/batchcreate.php b/test/model/user/batchcreate.php index c9e471140c..6a11f8e31d 100644 --- a/test/model/user/batchcreate.php +++ b/test/model/user/batchcreate.php @@ -23,15 +23,14 @@ Visions为空的情况 >> 『版本类型』不能为空。 $user = new userTest(); $normalUser = array(); -$normalUser['account'] = array('newtestuser1', 'newtestuser2', 'newtestuser3'); -$normalUser['realname'] = array('新测试用户1', '新测试用户2', '新测试用户3'); -$normalUser['visions'] = array('rnd', 'rnd,lite', 'lite'); -$normalUser['role'] = array('qa', 'dev', 'pm'); -$normalUser['email'] = array('testasd@163.com', '', '11773@qq.com'); -$normalUser['password'] = array('e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e', 'e10adc3949ba59abbe56e057f20f883e'); +$normalUser['account'] = array(1 => 'newtestuser1', 2 => 'newtestuser2', 3 => 'newtestuser3'); +$normalUser['realname'] = array(1 => '新测试用户1', 2 => '新测试用户2', 3 => '新测试用户3'); +$normalUser['visions'] = array(1 => 'rnd', 2 => 'rnd,lite', 3 => 'lite'); +$normalUser['role'] = array(1 => 'qa', 2 => 'dev', 3 => 'pm'); +$normalUser['email'] = array(1 => 'testasd@163.com', 2 => '', 3 => '11773@qq.com'); +$normalUser['password'] = array(1 => 'e10adc3949ba59abbe56e057f20f883e', 2 => 'e10adc3949ba59abbe56e057f20f883e', 3 => 'e10adc3949ba59abbe56e057f20f883e'); -a($user->batchCreateUserTest($normalUser));die; - -r($user->batchCreateUserTest($normalUser)) && p('password1:0') && e('您的密码强度小于系统设定。'); //密码较弱的情况 +r($user->batchCreateUserTest($normalUser)) && p('0:account') && e('newtestuser1'); //获取插入的第一个用户的account +r($user->batchCreateUserTest($normalUser)) && p('2:realname') && e('新测试用户3'); //获取插入的最后一个用户的realname system("./ztest init"); diff --git a/test/model/user/batchedit.php b/test/model/user/batchedit.php new file mode 100644 index 0000000000..dc509eaf48 --- /dev/null +++ b/test/model/user/batchedit.php @@ -0,0 +1,36 @@ +#!/usr/bin/env php +batchEditTest(); +cid=1 +pid=1 + +密码较弱的情况 >> 您的密码强度小于系统设定。 +Visions为空的情况 >> 『版本类型』不能为空。 +用户名为空的情况 >> 『用户名』不能为空。 +用户名特殊的情况 >> 『用户名』只能是字母、数字或下划线的组合三位以上。 +两次密码不相同的情况 >> 两次密码应该相同。 +插入重复的用户名,返回报错信息 >> 『用户名』已经有『admin』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 +正常插入用户,返回新插入的ID、真实姓名 >> 1001,新的测试用户 +正常插入用户,返回新插入的真实姓名 >> 新的测试用户 + +*/ + +$user = new userTest(); +$normalUser = array(); +$normalUser['account'] = array(998 => 'newtestuser1', 999 => 'newtestuser2', 1000 => 'newtestuser3'); +$normalUser['realname'] = array(998 => '新测试用户1', 999 => '新测试用户2', 1000 => '新测试用户3'); +$normalUser['visions'] = array(998 => 'rnd', 999 => 'rnd,lite', 1000 => 'lite'); +$normalUser['role'] = array(998 => 'qa', 999 => 'dev', 1000 => 'pm'); +$normalUser['email'] = array(998 => 'testasd@163.com', 999 => '', 1000 => '11773@qq.com'); +$normalUser['password'] = array(998 => 'e10adc3949ba59abbe56e057f20f883e', 999 => 'e10adc3949ba59abbe56e057f20f883e', 1000 => 'e10adc3949ba59abbe56e057f20f883e'); + +r($user->batchEditUserTest($normalUser)) && p('998:account') && e('newtestuser1'); //获取编辑后的第一个用户的account +r($user->batchEditUserTest($normalUser)) && p('1000:realname') && e('新测试用户3'); //获取编辑的最后一个用户的真实姓名 + +system("./ztest init"); diff --git a/test/model/user/checkpassword.php b/test/model/user/checkpassword.php new file mode 100644 index 0000000000..63ae484b00 --- /dev/null +++ b/test/model/user/checkpassword.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +checkPasswordTest(); +cid=1 +pid=1 + +密码较弱的情况 >> 您的密码强度小于系统设定。 +Visions为空的情况 >> 『版本类型』不能为空。 +用户名为空的情况 >> 『用户名』不能为空。 +用户名特殊的情况 >> 『用户名』只能是字母、数字或下划线的组合三位以上。 +两次密码不相同的情况 >> 两次密码应该相同。 +插入重复的用户名,返回报错信息 >> 『用户名』已经有『admin』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 +正常插入用户,返回新插入的ID、真实姓名 >> 1001,新的测试用户 +正常插入用户,返回新插入的真实姓名 >> 新的测试用户 + +*/ + +$user = new userTest(); +$normalUser = array(); +$normalUser['password1'] = 'Adsd@#!%qaz'; +$normalUser['password2'] = 'Adsd@#!%qaz'; +$normalUser['passwordStrength'] = 1; + +$weakPassword = $normalUser; +$weakPassword['passwordStrength'] = '0'; + +$differentPassword = $normalUser; +$differentPassword['password2'] = '!@#!@#asfasf'; + +$simplePassword = $normalUser; +$simplePassword['password1'] = '123456'; +$simplePassword['password2'] = '123456'; + +r($user->checkPasswordTest($normalUser)) && p('password') && e('无报错'); //正常的用户密码 +r($user->checkPasswordTest($differentPassword)) && p('password:0') && e('两次密码应该相同。'); //两次密码不相同的情况 +r($user->checkPasswordTest($weakPassword)) && p('password1:0') && e('您的密码强度小于系统设定。'); //密码强度小于系统设定 +r($user->checkPasswordTest($simplePassword)) && p('password1:0') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); //使用常见简单密码,给出错误提示 +system("./ztest init"); diff --git a/test/model/user/create.php b/test/model/user/create.php index 6457995041..1a8c0d5779 100644 --- a/test/model/user/create.php +++ b/test/model/user/create.php @@ -6,7 +6,7 @@ su('admin'); /** -title=userModel->createTest(); +title=userModel->createUserTest(); cid=1 pid=1 diff --git a/test/model/user/identify.php b/test/model/user/identify.php new file mode 100644 index 0000000000..22a47519e2 --- /dev/null +++ b/test/model/user/identify.php @@ -0,0 +1,18 @@ +#!/usr/bin/env php +identifyTest(); +cid=1 +pid=1 + +*/ + +$user = new userTest(); +$user->identifyTest('admin', '78302615c8b79cac8df6d2607f8a83ee'); + +system("./ztest init"); diff --git a/test/model/user/resetpassword.php b/test/model/user/resetpassword.php new file mode 100644 index 0000000000..ab0ec41dd5 --- /dev/null +++ b/test/model/user/resetpassword.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +resetPasswordTest(); +cid=1 +pid=1 + +密码较弱的情况 >> 您的密码强度小于系统设定。 +Visions为空的情况 >> 『版本类型』不能为空。 +用户名为空的情况 >> 『用户名』不能为空。 +用户名特殊的情况 >> 『用户名』只能是字母、数字或下划线的组合三位以上。 +两次密码不相同的情况 >> 两次密码应该相同。 +插入重复的用户名,返回报错信息 >> 『用户名』已经有『admin』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 +正常插入用户,返回新插入的ID、真实姓名 >> 1001,新的测试用户 +正常插入用户,返回新插入的真实姓名 >> 新的测试用户 + +*/ + +$user = new userTest(); +$normalUser = array(); +$normalUser['account'] = 'admin'; +$normalUser['password1'] = 'Adsd@#!%qaz'; +$normalUser['password2'] = 'Adsd@#!%qaz'; +$normalUser['passwordStrength'] = 1; + +$weakPassword = $normalUser; +$weakPassword['passwordStrength'] = 0; + +$differentPassword = $normalUser; +$differentPassword['password2'] = '!@#!@#asfasf'; + +$simplePassword = $normalUser; +$simplePassword['password1'] = '123456'; +$simplePassword['password2'] = '123456'; + +r($user->resetPasswordTest($normalUser)) && p('password') && e('367ef140036b0feb2f90d70d33255eea'); //重设用户密码,返回重设后的加密后的密码 +r($user->resetPasswordTest($differentPassword)) && p('password:0') && e('两次密码应该相同。'); //两次密码不相同的情况 +r($user->resetPasswordTest($weakPassword)) && p('password1:0') && e('您的密码强度小于系统设定。'); //密码强度小于系统设定 +r($user->resetPasswordTest($simplePassword)) && p('password1:0') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); //使用常见简单密码,给出错误提示 +system("./ztest init"); diff --git a/test/model/user/update.php b/test/model/user/update.php new file mode 100644 index 0000000000..204a6d2718 --- /dev/null +++ b/test/model/user/update.php @@ -0,0 +1,47 @@ +#!/usr/bin/env php +updateUserTest(); +cid=1 +pid=1 + +密码较弱的情况 >> 您的密码强度小于系统设定。 +Visions为空的情况 >> 『版本类型』不能为空。 +用户名为空的情况 >> 『用户名』不能为空。 +用户名特殊的情况 >> 『用户名』只能是字母、数字或下划线的组合三位以上。 +两次密码不相同的情况 >> 两次密码应该相同。 +插入重复的用户名,返回报错信息 >> 『用户名』已经有『admin』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 +正常插入用户,返回新插入的ID、真实姓名 >> 1001,新的测试用户 +正常插入用户,返回新插入的真实姓名 >> 新的测试用户 + +*/ + +$user = new userTest(); +$normalUser = array(); +$normalUser['account'] = 'newtestuser4'; +$normalUser['realname'] = '新的测试用户'; +$normalUser['password1'] = 'e10adc3949ba59abbe56e057f20f883e'; +$normalUser['password2'] = 'e10adc3949ba59abbe56e057f20f883e'; +$normalUser['type'] = 'inside'; +$normalUser['passwordStrength'] = 1; +$normalUser['visions'] = 'rnd'; + +$existUser = $normalUser; +$existUser['account'] = 'adminasdasd'; + +$differentPassword = $normalUser; +$differentPassword['password2'] = 'asfjsdklj1234jkljsdklfj19'; + +$specialUser = $normalUser; +$specialUser['account'] = '!@#Asdsd中文'; + +r($user->updateUserTest(1000, $normalUser)) && p('account') && e('newtestuser4'); //编辑用户,返回新的用户名 +r($user->updateUserTest(1000, $existUser)) && p('account:0') && e('『用户名』已经有『newtestuser4』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。');//编辑用户,有重名用户的情况 +r($user->updateUserTest(1000, $differentPassword)) && p('password:0') && e('两次密码应该相同。'); //两次密码不相同的情况 +r($user->updateUserTest(1000, $specialUser)) && p('account:0') && e('『用户名』只能是字母、数字或下划线的组合三位以上。'); //用户名包含特殊字符的情况 +system("./ztest init"); diff --git a/test/model/user/updatepassword.php b/test/model/user/updatepassword.php new file mode 100644 index 0000000000..9e60a05a12 --- /dev/null +++ b/test/model/user/updatepassword.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +updatePasswordTest(); +cid=1 +pid=1 + +密码较弱的情况 >> 您的密码强度小于系统设定。 +Visions为空的情况 >> 『版本类型』不能为空。 +用户名为空的情况 >> 『用户名』不能为空。 +用户名特殊的情况 >> 『用户名』只能是字母、数字或下划线的组合三位以上。 +两次密码不相同的情况 >> 两次密码应该相同。 +插入重复的用户名,返回报错信息 >> 『用户名』已经有『admin』这条记录了。如果您确定该记录已删除,请到后台-系统-数据-回收站还原。 +正常插入用户,返回新插入的ID、真实姓名 >> 1001,新的测试用户 +正常插入用户,返回新插入的真实姓名 >> 新的测试用户 + +*/ + +$user = new userTest(); +$normalUser = array(); +$normalUser['originalPassword'] = 'e79f8fb9726857b212401e42e5b7e18b'; +$normalUser['password1'] = 'dcf859ce8dd8f998bdfe4ae6c22c329e'; +$normalUser['password2'] = 'dcf859ce8dd8f998bdfe4ae6c22c329e'; +$normalUser['passwordStrength'] = 1; + +$weakPassword = $normalUser; +$weakPassword['passwordStrength'] = 0; + +$differentPassword = $normalUser; +$differentPassword['password2'] = 'asdasfasf!@#!@#asfasf'; + +r($user->updatePasswordTest(1000, $normalUser)) && p('password') && e('dcf859ce8dd8f998bdfe4ae6c22c329e'); //编辑用户密码,返回编辑后的密码 +r($user->updatePasswordTest(1000, $differentPassword)) && p('password:0') && e('两次密码应该相同。'); //两次密码不相同的情况 +r($user->updatePasswordTest(1000, $weakPassword)) && p('password1:0') && e('您的密码强度小于系统设定。'); //密码小于设定强度的情况 + +system("./ztest init");