* Adjust user unit test `` to ~~.

This commit is contained in:
wangyuting
2023-12-26 14:20:59 +08:00
parent da4ca4faf5
commit bdae4f0c36
22 changed files with 140 additions and 134 deletions
+11 -6
View File
@@ -293,9 +293,9 @@ class userModel extends model
* @param int $maxCount
* @param int $userCount
* @access public
* @return void
* @return bool
*/
public function processMoreLink(string $params, string|array $usersToAppended, int $maxCount, int $userCount): void
public function processMoreLink(string $params, string|array $usersToAppended, int $maxCount, int $userCount): bool
{
unset($this->config->user->moreLink);
if($maxCount && $maxCount == $userCount)
@@ -306,6 +306,8 @@ class userModel extends model
$moreLink = helper::createLink('user', 'ajaxGetMore');
$this->config->user->moreLink = $moreLink . (strpos($moreLink, '?') === false ? '?' : '&') . "params=" . base64_encode($moreLinkParams);
}
return true;
}
/**
@@ -1200,13 +1202,14 @@ class userModel extends model
*
* @param object $user
* @access public
* @return void
* @return bool
*/
public function keepLogin(object $user): void
public function keepLogin(object $user): bool
{
helper::setcookie('keepLogin', 'on');
helper::setcookie('za', $user->account);
helper::setcookie('zp', sha1($user->account . $user->password . $this->server->request_time));
return true;
}
/**
@@ -2883,15 +2886,17 @@ class userModel extends model
* Set the first super admin as current user.
*
* @access public
* @return void
* @return bool
*/
public function su()
public function su(): bool
{
$company = $this->dao->select('admins')->from(TABLE_COMPANY)->fetch();
$admins = explode(',', trim($company->admins, ','));
if(empty($admins[0])) helper::end('No admin users.');
$this->app->user = $this->getById($admins[0]);
return true;
}
/**
@@ -51,6 +51,8 @@ $verifyPassword = md5(md5('123456') . $random);
$userTest = new userTest();
$config->safe = new stdclass();
$config->safe->mode = 0;
$result = $userTest->checkBeforeBatchCreateTest($users1, '');
r($result) && p('result') && e(0); // 检查未通过,返回 false。
r($result) && p('errors:account[0]') && e('『用户名』只能是字母、数字或下划线的组合三位以上。'); // 用户名不符合规则错误提示。
@@ -67,40 +69,39 @@ r($result) && p('errors:mobile[4]') && e('『手机』应当为合法的手
r($result) && p('errors:verifyPassword') && e('验证失败,请检查您的系统登录密码是否正确'); // 验证密码错误提示。
/* 未设置密码安全属性。*/
$config->safe = new stdclass();
$result = $userTest->checkBeforeBatchCreateTest($users2, $verifyPassword);
r($result) && p('result') && e(1); // 未设置密码安全属性,返回 false。
r($result) && p('errors:password[0]') && e('``'); // 未设置密码安全属性,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('``'); // 未设置密码安全属性,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('``'); // 未设置密码安全属性,密码包含大小写字母、数字和特殊字符,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 未设置密码安全属性,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 未设置密码安全属性,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('~~'); // 未设置密码安全属性,密码包含大小写字母、数字和特殊字符,无错误提示。
/* 密码安全属性设为小于不检查的自定义数字。*/
$config->safe->mode = -1;
$result = $userTest->checkBeforeBatchCreateTest($users2, $verifyPassword);
r($result) && p('errors:password[0]') && e('``'); // 密码安全属性设为小于不检查的自定义数字,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('``'); // 密码安全属性设为小于不检查的自定义数字,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('``'); // 密码安全属性设为小于不检查的自定义数字,密码包含大小写字母、数字和特殊字符,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 密码安全属性设为小于不检查的自定义数字,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 密码安全属性设为小于不检查的自定义数字,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('~~'); // 密码安全属性设为小于不检查的自定义数字,密码包含大小写字母、数字和特殊字符,无错误提示。
/* 密码安全属性设为不检查。*/
$config->safe->mode = 0;
$result = $userTest->checkBeforeBatchCreateTest($users2, $verifyPassword);
r($result) && p('errors:password[0]') && e('``'); // 密码安全属性设为不检查,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('``'); // 密码安全属性设为不检查,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('``'); // 密码安全属性设为不检查,密码包含大小写字母、数字和特殊字符,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 密码安全属性设为不检查,密码只包含数字,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 密码安全属性设为不检查,密码包含大小写字母和数字,无错误提示。
r($result) && p('errors:password[2]') && e('~~'); // 密码安全属性设为不检查,密码包含大小写字母、数字和特殊字符,无错误提示。
/* 密码安全属性设为中。*/
$config->safe->mode = 1;
$result = $userTest->checkBeforeBatchCreateTest($users2, $verifyPassword);
r($result) && p('errors:password[0]') && e('密码强度小于系统设定。'); // 密码安全属性设为中,密码只包含数字,密码强度小于系统设定,有错误提示。
r($result) && p('errors:password[1]') && e('``'); // 密码安全属性设为中,密码包含大小写字母和数字,密码强度符合系统设定,无错误提示。
r($result) && p('errors:password[2]') && e('``'); // 密码安全属性设为中,密码包含大小写字母、数字和特殊字符,密码强度符合系统设定,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 密码安全属性设为中,密码包含大小写字母和数字,密码强度符合系统设定,无错误提示。
r($result) && p('errors:password[2]') && e('~~'); // 密码安全属性设为中,密码包含大小写字母、数字和特殊字符,密码强度符合系统设定,无错误提示。
/* 密码安全属性设为强。*/
$config->safe->mode = 2;
$result = $userTest->checkBeforeBatchCreateTest($users2, $verifyPassword);
r($result) && p('errors:password[0]') && e('密码强度小于系统设定。'); // 密码安全属性设为强,密码只包含数字,密码强度小于系统设定,有错误提示。
r($result) && p('errors:password[1]') && e('密码强度小于系统设定。'); // 密码安全属性设为强,密码包含大小写字母和数字,密码强度小于系统设定,有错误提示。
r($result) && p('errors:password[2]') && e('``'); // 密码安全属性设为强,密码包含大小写字母、数字和特殊字符,密码强度符合系统设定,无错误提示。
r($result) && p('errors:password[2]') && e('~~'); // 密码安全属性设为强,密码包含大小写字母、数字和特殊字符,密码强度符合系统设定,无错误提示。
/* 密码安全属性设为大于强的自定义数字。*/
$config->safe->mode = 3;
@@ -115,22 +116,22 @@ $config->safe->mode = 0; // 密码安全属性设为不检查,防止影响后
unset($config->safe->changeWeak);
$result = $userTest->checkBeforeBatchCreateTest($users3, $verifyPassword);
r($result) && p('result') && e(1); // 未设置修改弱口令密码属性,返回 false。
r($result) && p('errors:password[0]') && e('``'); // 未设置修改弱口令密码属性,无错误提示。
r($result) && p('errors:password[1]') && e('``'); // 未设置修改弱口令密码属性,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 未设置修改弱口令密码属性,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 未设置修改弱口令密码属性,无错误提示。
/* 修改弱口令密码属性设为不强制。*/
$config->safe->changeWeak = 0;
$result = $userTest->checkBeforeBatchCreateTest($users3, $verifyPassword);
r($result) && p('result') && e(1); // 修改弱口令密码属性设为不强制,返回 false。
r($result) && p('errors:password[0]') && e('``'); // 修改弱口令密码属性设为不强制,无错误提示。
r($result) && p('errors:password[1]') && e('``'); // 修改弱口令密码属性设为不强制,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 修改弱口令密码属性设为不强制,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 修改弱口令密码属性设为不强制,无错误提示。
/* 修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查。*/
$config->safe->changeWeak = 1;
$result = $userTest->checkBeforeBatchCreateTest($users3, $verifyPassword);
r($result) && p('result') && e(0); // 修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 false。
r($result) && p('errors:password[0]', '|') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); // 修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,有错误提示。
r($result) && p('errors:password[1]') && e('``'); // 修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,无错误提示。
r($result) && p('errors:password[1]') && e('~~'); // 修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,无错误提示。
/* 修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查。*/
$config->safe->changeWeak = 1;
@@ -138,7 +139,7 @@ zdTable('config')->config('config')->gen(1); // 生成自定义常用弱口令
$tester->loadConfigFromDB(); // 加载自定义常用弱口令。
$result = $userTest->checkBeforeBatchCreateTest($users3, $verifyPassword);
r($result) && p('result') && e(0); // 修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。
r($result) && p('errors:password[0]') && e('``'); // 修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
r($result) && p('errors:password[1]', '|') && e('密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。'); // 修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
/* 密码安全属性设为强,修改弱口令密码属性设为必须修改,符合所有检查项的用户。*/
@@ -146,11 +147,11 @@ $config->safe->mode = 2;
$config->safe->changeWeak = 1;
$result = $userTest->checkBeforeBatchCreateTest($users4, $verifyPassword);
r($result) && p('result') && e(1); // 检查通过,返回 true。
r($result) && p('errors:account[0]') && e('``'); // 用户名无错误提示。
r($result) && p('errors:realname[0]') && e('``'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('``'); // 界面类型无错误提示。
r($result) && p('errors:password[0]') && e('``'); // 密码无错误提示。
r($result) && p('errors:email[0]') && e('``'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('``'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('``'); // 手机无错误提示。
r($result) && p('errors:verifyPassword') && e('``'); // 验证密码无错误提示。
r($result) && p('errors:account[0]') && e('~~'); // 用户名无错误提示。
r($result) && p('errors:realname[0]') && e('~~'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('~~'); // 界面类型无错误提示。
r($result) && p('errors:password[0]') && e('~~'); // 密码无错误提示。
r($result) && p('errors:email[0]') && e('~~'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('~~'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('~~'); // 手机无错误提示。
r($result) && p('errors:verifyPassword') && e('~~'); // 验证密码无错误提示。
@@ -42,27 +42,27 @@ $result = $userTest->checkBeforeBatchUpdateTest($users1, '');
r($result) && p('result') && e(0); // 检查未通过,返回 false。
r($result) && p('errors:realname[0]') && e('『姓名』不能为空。'); // 姓名为空错误提示。
r($result) && p('errors:visions[0][]') && e('『界面类型』不能为空。'); // 界面类型为空错误提示。
r($result) && p('errors:email[0]') && e('``'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('``'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('``'); // 手机无错误提示。
r($result) && p('errors:email[0]') && e('~~'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('~~'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('~~'); // 手机无错误提示。
r($result) && p('errors:verifyPassword') && e('验证失败,请检查您的系统登录密码是否正确'); // 验证密码错误提示。
/* 联系方式不符合格式的用户。*/
$result = $userTest->checkBeforeBatchUpdateTest($users2, $verifyPassword);
r($result) && p('result') && e(0); // 检查未通过,返回 false。
r($result) && p('errors:realname[0]') && e('``'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('``'); // 界面类型无错误提示。
r($result) && p('errors:realname[0]') && e('~~'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('~~'); // 界面类型无错误提示。
r($result) && p('errors:email[0]') && e('『邮箱』应当为合法的EMAIL。'); // 邮箱格式错误提示。
r($result) && p('errors:phone[0]') && e('『电话』应当为合法的电话号码。'); // 电话格式错误提示。
r($result) && p('errors:mobile[0]') && e('『手机』应当为合法的手机号码。'); // 手机格式错误提示。
r($result) && p('errors:verifyPassword') && e('``'); // 验证密码无错误提示。
r($result) && p('errors:verifyPassword') && e('~~'); // 验证密码无错误提示。
/* 符合所有检查项的用户。*/
$result = $userTest->checkBeforeBatchUpdateTest($users3, $verifyPassword);
r($result) && p('result') && e(1); // 检查通过,返回 true。
r($result) && p('errors:realname[0]') && e('``'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('``'); // 界面类型无错误提示。
r($result) && p('errors:email[0]') && e('``'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('``'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('``'); // 手机无错误提示。
r($result) && p('errors:verifyPassword') && e('``'); // 验证密码无错误提示。
r($result) && p('errors:realname[0]') && e('~~'); // 姓名无错误提示。
r($result) && p('errors:visions[0][]') && e('~~'); // 界面类型无错误提示。
r($result) && p('errors:email[0]') && e('~~'); // 邮箱无错误提示。
r($result) && p('errors:phone[0]') && e('~~'); // 电话无错误提示。
r($result) && p('errors:mobile[0]') && e('~~'); // 手机无错误提示。
r($result) && p('errors:verifyPassword') && e('~~'); // 验证密码无错误提示。
@@ -22,27 +22,27 @@ $config->safe->modifyPasswordFirstLogin = 0;
$config->safe->changeWeak = 0;
$config->safe->mode = 0;
r($userTest->checkNeedModifyPasswordTest($user1, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 首次登录修改密码功能关闭,首次登录无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user1), 0)) && p('account,modifyPassword,modifyPasswordReason') && e('user1,~~,~~'); // 首次登录修改密码功能关闭,首次登录无需修改密码。
$config->safe->modifyPasswordFirstLogin = 1;
r($userTest->checkNeedModifyPasswordTest($user1, 0)) && p('modifyPassword,modifyPasswordReason') && e('1,modifyPasswordFirstLogin'); // 首次登录修改密码功能开启,首次登录需要修改密码。
r($userTest->checkNeedModifyPasswordTest($user2, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 首次登录修改密码功能开启,非首次登录无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user1), 0)) && p('modifyPassword,modifyPasswordReason') && e('1,modifyPasswordFirstLogin'); // 首次登录修改密码功能开启,首次登录需要修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user2), 0)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 首次登录修改密码功能开启,非首次登录无需修改密码。
r($userTest->checkNeedModifyPasswordTest($user3, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 修改弱密码功能关闭,弱密码无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user3), 0)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 修改弱密码功能关闭,弱密码无需修改密码。
unset($config->safe->weak); // 重置弱密码设置,防止数据库中的设置影响单元测试。
$config->safe->changeWeak = 1;
r($userTest->checkNeedModifyPasswordTest($user3, 0)) && p('modifyPassword,modifyPasswordReason') && e('1,weak'); // 修改弱密码功能开启,弱密码需要修改密码。
r($userTest->checkNeedModifyPasswordTest($user4, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 修改弱密码功能开启,强密码无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user3), 0)) && p('modifyPassword,modifyPasswordReason') && e('1,weak'); // 修改弱密码功能开启,弱密码需要修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user4), 0)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 修改弱密码功能开启,强密码无需修改密码。
$config->safe->mode = 1;
$app->setModuleName('index');
$app->setMethodName('index');
r($userTest->checkNeedModifyPasswordTest($user4, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 密码强度检查功能设为 1,密码强度为 0,模块为 index,方法为 index,无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user4), 0)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 密码强度检查功能设为 1,密码强度为 0,模块为 index,方法为 index,无需修改密码。
$app->setModuleName('user');
r($userTest->checkNeedModifyPasswordTest($user4, 0)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 密码强度检查功能设为 1,密码强度为 0,模块为 user,方法为 index,无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user4), 0)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 密码强度检查功能设为 1,密码强度为 0,模块为 user,方法为 index,无需修改密码。
$app->setMethodName('login');
r($userTest->checkNeedModifyPasswordTest($user4, 0)) && p('modifyPassword,modifyPasswordReason') && e('1,passwordStrengthWeak'); // 密码强度检查功能设为 1,密码强度为 0,模块为 user,方法为 login,需要修改密码。
r($userTest->checkNeedModifyPasswordTest($user4, 1)) && p('modifyPassword,modifyPasswordReason') && e('``,``'); // 密码强度检查功能设为 1,密码强度为 1,模块为 user,方法为 login,无需修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user4), 0)) && p('modifyPassword,modifyPasswordReason') && e('1,passwordStrengthWeak'); // 密码强度检查功能设为 1,密码强度为 0,模块为 user,方法为 login,需要修改密码。
r($userTest->checkNeedModifyPasswordTest(clone($user4), 1)) && p('modifyPassword,modifyPasswordReason') && e('~~,~~'); // 密码强度检查功能设为 1,密码强度为 1,模块为 user,方法为 login,无需修改密码。
+7 -7
View File
@@ -33,7 +33,7 @@ r($result) && p('errors:password1') && e('『密码』不能为空。'); // 密
/* 密码为空,允许密码为空。*/
$result = $userTest->checkPasswordTest($user1, true);
r($result) && p('result') && e(1); // 密码为空,允许密码为空,返回 true。
r($result) && p('errors:password1') && e('``'); // 密码为空,允许密码为空,无错误提示。
r($result) && p('errors:password1') && e('~~'); // 密码为空,允许密码为空,无错误提示。
$config->safe = new stdclass();
@@ -82,14 +82,14 @@ $config->safe->mode = 0;
unset($config->safe->changeWeak);
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,未设置修改弱口令密码属性,返回 true。
r($result) && p('errors:password1') && e('``'); // 密码不为空,两次密码相同,未设置修改弱口令密码属性,无错误提示。
r($result) && p('errors:password1') && e('~~'); // 密码不为空,两次密码相同,未设置修改弱口令密码属性,无错误提示。
/* 密码不为空,两次密码相同,修改弱口令密码属性设置为不强制。*/
$config->safe->mode = 0;
$config->safe->changeWeak = 0;
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,返回 true。
r($result) && p('errors:password1') && e('``'); // 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,无错误提示。
r($result) && p('errors:password1') && e('~~'); // 密码不为空,两次密码相同,修改弱口令密码属性设为不强制,无错误提示。
/* 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查。*/
$config->safe->mode = 0;
@@ -99,7 +99,7 @@ r($result) && p('result') && e(0);
r($result) && p('errors:password1', '|') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
$result = $userTest->checkPasswordTest($user5);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('``'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
/* 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查。*/
$config->safe->mode = 0;
@@ -109,7 +109,7 @@ r($result) && p('result') && e(0);
r($result) && p('errors:password1', '|') && e('密码不能使用【123456,password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
$result = $userTest->checkPasswordTest($user7);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('``'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
zdTable('config')->config('config')->gen(1); // 生成自定义常用弱口令。
$tester->loadConfigFromDB(); // 加载自定义常用弱口令。
@@ -119,7 +119,7 @@ $config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user4);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('``'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,无错误提示。
$result = $userTest->checkPasswordTest($user5);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为明文,修改弱口令密码属性设为必须修改,使用自定义常用弱口令检查,有错误提示。
@@ -129,7 +129,7 @@ $config->safe->mode = 0;
$config->safe->changeWeak = 1;
$result = $userTest->checkPasswordTest($user6);
r($result) && p('result') && e(1); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 true。
r($result) && p('errors:password1', '|') && e('``'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,无错误提示。
r($result) && p('errors:password1', '|') && e('~~'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,无错误提示。
$result = $userTest->checkPasswordTest($user7);
r($result) && p('result') && e(0); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,返回 false。
r($result) && p('errors:password1', '|') && e('密码不能使用【password,12345,12345678,qwerty,123456789,1234,1234567,abc123,111111,123123,1234567890】这些常用弱口令。'); // 密码不为空,两次密码相同,密码为 md5 加密,修改弱口令密码属性设为必须修改,使用系统内置常用弱口令检查,有错误提示。
@@ -46,4 +46,4 @@ r($result7) && p('errors:verifyPassword') && e('验证失败,请检查您的
$result8 = $userTest->checkVerifyPasswordTest(md5(md5('123456') . $random));
r($result8) && p('result') && e(1); // 验证密码包含正确的密码和正确的随机数返回 true。
r($result8) && p('errors:verifyPassword') && e('``'); // 验证密码包含正确的密码和正确的随机数提示信息。
r($result8) && p('errors:verifyPassword') && e('~~'); // 验证密码包含正确的密码和正确的随机数提示信息。
+2 -2
View File
@@ -27,8 +27,8 @@ $userTest->cleanLockedTest('admin'); // 清除 admin 用户的失败次数和锁
$userTest->cleanLockedTest('user1'); // 清除 user1 用户的失败次数和锁定时间。
$users = $userTest->getListTest();
r($users) && p('0:account,fails,locked') && e('admin,0,``'); // admin 用户的失败次数为 0,锁定时间为空。
r($users) && p('1:account,fails,locked') && e('user1,0,``'); // user1 用户的失败次数为 0,锁定时间为空。
r($users) && p('0:account,fails,locked') && e('admin,0,~~'); // admin 用户的失败次数为 0,锁定时间为空。
r($users) && p('1:account,fails,locked') && e('user1,0,~~'); // user1 用户的失败次数为 0,锁定时间为空。
r(isset($_SESSION['loginFails'])) && p() && e(0); // session 中记录的失败次数为空。
r(isset($_SESSION['admin.loginLocked'])) && p() && e(0); // session 中记录的 admin 用户锁定时间为空。
+2 -2
View File
@@ -96,7 +96,7 @@ r($result) && p('errors:newCompany') && e('『所属公司』不能为空。');
$user6->newCompany = 'newCompany';
$result = $userTest->createTest($user6);
r($result) && p('result') && e(2); // 创建外部公司,公司名称不为空,返回创建的用户 id。
r($result) && p('errors:newCompany') && e('``'); // 创建外部公司,公司名称不为空,没有错误信息。
r($result) && p('errors:newCompany') && e('~~'); // 创建外部公司,公司名称不为空,没有错误信息。
/* 检测必填项。*/
$user7 = clone $template;
@@ -162,7 +162,7 @@ $users13->account = 'user2';
$users13->group = array(0, 1, 2);
$result = $userTest->createTest($users13);
r($result) && p('result') && e(3); // 创建用户成功,返回创建的用户 id。
r($result) && p('errors:account') && e('``'); // 创建用户成功,没有错误信息。
r($result) && p('errors:account') && e('~~'); // 创建用户成功,没有错误信息。
$groups = $tester->dao->select('*')->from(TABLE_USERGROUP)->fetchAll();
r(count($groups)) && p() && e(2); // 生成用户权限组成功,返回 2 条记录。
+10 -10
View File
@@ -26,31 +26,31 @@ $contact4 = (object)array('account' => 'user1', 'listName' => '联系人列表2'
/* 测试必填项为空的情况。*/
$result = $userTest->createContactListTest($contact1);
r($result) && p('result') && e(0); // 列表名称和用户列表为空,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('『列表名称』不能为空。'); // 列表名称不能为空。
r($result) && p('errors:userList') && e('『用户列表』不能为空。'); // 用户列表不能为空。
r($result) && p('errors:public') && e('``'); // 公共联系人无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共联系人无错误提示。
/* 测试列表名称已存在的情况。*/
$result = $userTest->createContactListTest($contact2);
r($result) && p('result') && e(0); // 列表名称已存在,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('『列表名称』已经有『联系人列表1』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。'); // 列表名称已存在。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('``'); // 公共联系人无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共联系人无错误提示。
/* 测试数据格式不符合数据库字段设置的情况。*/
$result = $userTest->createContactListTest($contact3);
r($result) && p('result') && e(0); // 创建人和列表名称过长,返回 false。
r($result) && p('errors:account') && e('『创建人』长度应当不超过『30』,且大于『0』。'); // 创建人过长。
r($result) && p('errors:listName') && e('『列表名称』长度应当不超过『60』,且大于『0』。'); // 列表名称过长。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('『公共联系人』应当是数字。'); // 公共联系人应当是数字。
/* 测试创建成功的情况。*/
$result = $userTest->createContactListTest($contact4);
r($result) && p('result') && e(1); // 创建成功,返回 true。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('``'); // 列表名称无错误提示。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('``'); // 公共联系人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('~~'); // 列表名称无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共联系人无错误提示。
+2 -2
View File
@@ -40,14 +40,14 @@ r($userModel->failPlus($account3)) && p() && e(1); // 用户名合
r($_SESSION['loginFails']) && p() && e(2); // 用户名合法且存在时,session 中失败次数为 2 。
r(isset($_SESSION["{$account3}.loginLocked"])) && p() && e(0); // 用户名合法且存在时,session 中失败次数未达到最大失败次数限制,session 中该账号锁定时间为空 。
$user = $userModel->dao->select('fails, locked')->from(TABLE_USER)->where('account')->eq($account3)->fetch();
r($user) && p('fails, locked') && e('1,``'); // 用户名合法且存在时,$account3 账号未达到最大失败次数限制,数据库中失败次数为 1 ,账号未锁定。
r($user) && p('fails, locked') && e('1,~~'); // 用户名合法且存在时,$account3 账号未达到最大失败次数限制,数据库中失败次数为 1 ,账号未锁定。
/* 第二次测试用户名合法且存在的情况,未达到最大失败次数限制。*/
r($userModel->failPlus($account3)) && p() && e(2); // 用户名合法且存在时,第二次失败返回 2 。
r($_SESSION['loginFails']) && p() && e(3); // 用户名合法且存在时,session 中失败次数为 3 。
r($_SESSION["{$account3}.loginLocked"] == date('Y-m-d H:i:s')) && p() && e(1); // 用户名合法且存在时,session 中失败次数达到最大失败次数限制,session 中该账号锁定时间为当前时间 。
$user = $userModel->dao->select('fails, locked')->from(TABLE_USER)->where('account')->eq($account3)->fetch();
r($user) && p('fails, locked') && e('2,``'); // 用户名合法且存在时,$account3 账号未达到最大失败次数限制,数据库中失败次数为 2 ,账号未锁定。
r($user) && p('fails, locked') && e('2,~~'); // 用户名合法且存在时,$account3 账号未达到最大失败次数限制,数据库中失败次数为 2 ,账号未锁定。
/* 第三次测试用户名合法且存在的情况,达到最大失败次数限制。*/
r($userModel->failPlus($account3)) && p() && e(3); // 用户名合法且存在时,第三次失败返回 3 。
+2 -2
View File
@@ -29,10 +29,10 @@ $users = $userTest->fetchExtraUsersTest(array('admin', 'user1'), 'id, account',
r(count($users)) && p() && e(2); // usersToAppended 参数为数组,包含 2 个用户,指定查找 id 和 account 字段,返回 2 个用户。
r($users) && p('0:id') && e(1); // 返回的第 1 个用户的 id 字段值为 1。
r($users) && p('0:account') && e('admin'); // 返回的第 1 个用户的 account 字段值为 admin。
r($users) && p('0:realname') && e('``'); // 返回的第 1 个用户没有 realname 字段。
r($users) && p('0:realname') && e('~~'); // 返回的第 1 个用户没有 realname 字段。
r($users) && p('1:id') && e(2); // 返回的第 2 个用户的 id 字段值为 2。
r($users) && p('1:account') && e('user1'); // 返回的第 2 个用户的 account 字段值为 user1。
r($users) && p('0:realname') && e('``'); // 返回的第 2 个用户没有 realname 字段。
r($users) && p('0:realname') && e('~~'); // 返回的第 2 个用户没有 realname 字段。
$users = $userTest->fetchExtraUsersTest(array('admin', 'user1'), 'id, account', 'id');
r(count($users)) && p() && e(2); // usersToAppended 参数为数组,包含 2 个用户,指定查找 id 和 account 字段,指定以 id 字段为键,返回 2 个用户。
@@ -12,7 +12,7 @@ zdTable('company')->gen(1);
$userTable = zdTable('user');
$userTable->account->range('admin,user1,user2,user3,user4,user5,user6,user7,user8,user9');
$userTable->realname->range('admin,user1,user2,user3,user4,user5,user6,user7,``{2}');
$userTable->realname->range('admin,user1,user2,user3,user4,user5,user6,user7,~~{2}');
$userTable->deleted->range('0{9},1');
$userTable->gen(10);
@@ -33,11 +33,11 @@ $users = $userTest->getCanCreateStoryUsersTest();
r(count($users)) && p() && e(4); // 有创建需求权限的用户数为 4。
r($users) && p('admin') && e('A:admin'); // admin 用户是超级管理员,有创建需求权限。
r($users) && p('user1') && e('U:user1'); // user1 用户在权限组 1 中,有创建需求权限。
r($users) && p('user2') && e('``'); // user2 用户在权限组 2 和 3 中,没有创建需求权限。
r($users) && p('user3') && e('``'); // user3 用户在权限组 3 中,没有创建需求权限。
r($users) && p('user2') && e('~~'); // user2 用户在权限组 2 和 3 中,没有创建需求权限。
r($users) && p('user3') && e('~~'); // user3 用户在权限组 3 中,没有创建需求权限。
r($users) && p('user4') && e('U:user4'); // user4 用户在权限组 3 和 4 中,有创建需求权限。
r($users) && p('user5') && e('U:user5'); // user5 用户在权限组 5 中,有创建需求权限。
r($users) && p('user6') && e('``'); // user6 用户在权限组 6 中,没有创建需求权限。
r($users) && p('user7') && e('``'); // user7 用户不在权限组中,没有创建需求权限。
r($users) && p('user8') && e('``'); // user8 用户真实姓名为空,没有创建需求权限。
r($users) && p('user9') && e('``'); // user9 用户被删除,没有创建需求权限。
r($users) && p('user6') && e('~~'); // user6 用户在权限组 6 中,没有创建需求权限。
r($users) && p('user7') && e('~~'); // user7 用户不在权限组中,没有创建需求权限。
r($users) && p('user8') && e('~~'); // user8 用户真实姓名为空,没有创建需求权限。
r($users) && p('user9') && e('~~'); // user9 用户被删除,没有创建需求权限。
+3 -3
View File
@@ -61,8 +61,8 @@ $config->vision = 'rnd';
$executions = $userTest->getExecutionsTest('admin');
r(count($executions)) && p() && e(5); // 研发综合界面下 admin 用户参与的执行有 5 个。
r($executions) && p('6:status,delay,projectName,assignedToMeTasks') && e('wait,``,项目1,3'); // 执行 6 的状态为 wait,没有延期,项目名称为项目 1,指派给 admin 的任务数是 3。
r($executions) && p('6:status,delay,projectName,assignedToMeTasks') && e('wait,~~,项目1,3'); // 执行 6 的状态为 wait,没有延期,项目名称为项目 1,指派给 admin 的任务数是 3。
r($executions) && p('7:status,delay,projectName,assignedToMeTasks') && e('wait,1,项目2,2'); // 执行 7 的状态为 wait,延期 1 天,项目名称为项目 2,指派给 admin 的任务数是 2。
r($executions) && p('8:status,delay,projectName,assignedToMeTasks') && e('doing,1,项目2,1'); // 执行 8 的状态为 doing,延期 1 天,项目名称为项目 2,指派给 admin 的任务数是 1。
r($executions) && p('9:status,delay,projectName,assignedToMeTasks') && e('suspended,``,项目2,1'); // 执行 9 的状态为 suspended,没有延期,项目名称为项目 2,指派给 admin 的任务数是 1。
r($executions) && p('10:status,delay,projectName,assignedToMeTasks') && e('closed,``,项目3,1'); // 执行 10 的状态为 closed,没有延期,项目名称为项目 3,指派给 admin 的任务数是 1。
r($executions) && p('9:status,delay,projectName,assignedToMeTasks') && e('suspended,~~,项目2,1'); // 执行 9 的状态为 suspended,没有延期,项目名称为项目 2,指派给 admin 的任务数是 1。
r($executions) && p('10:status,delay,projectName,assignedToMeTasks') && e('closed,~~,项目3,1'); // 执行 10 的状态为 closed,没有延期,项目名称为项目 3,指派给 admin 的任务数是 1。
+3 -3
View File
@@ -31,18 +31,18 @@ $users = $userTest->getListByAccountsTest($accounts);
r(count($users)) && p() && e(5); // 传入参数为非空数组,包含 5 个账号,返回数组包含 5 个用户。
r($users) && p('1001:id,account') && e('1001,user1'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1001 的用户 id 是 1001,账号是 user1。
r($users) && p('1005:id,account') && e('1005,user5'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1005 的用户 id 是 1005,账号是 user5。
r($users) && p('user1') && e('``');
r($users) && p('user1') && e('~~');
/* $keyField 参数设为 id 后查询。*/
$users = $userTest->getListByAccountsTest($accounts, 'id');
r(count($users)) && p() && e(5); // 传入参数为非空数组,包含 5 个账号,返回数组包含 5 个用户。
r($users) && p('1001:id,account') && e('1001,user1'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1001 的用户 id 是 1001,账号是 user1。
r($users) && p('1005:id,account') && e('1005,user5'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1005 的用户 id 是 1005,账号是 user5。
r($users) && p('user1') && e('``');
r($users) && p('user1') && e('~~');
/* $keyField 参数设为 account 后查询。*/
$users = $userTest->getListByAccountsTest($accounts, 'account');
r(count($users)) && p() && e(5); // 传入参数为非空数组,包含 5 个账号,返回数组包含 5 个用户。
r($users) && p('user1:id,account') && e('1001,user1'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1001 的用户 id 是 1001,账号是 user1。
r($users) && p('user5:id,account') && e('1005,user5'); // 传入参数为非空数组,包含 5 个账号,返回数组键为 1005 的用户 id 是 1005,账号是 user5。
r($users) && p('1001') && e('``');
r($users) && p('1001') && e('~~');
+3 -3
View File
@@ -53,11 +53,11 @@ $config->vision = 'rnd';
$projects = $userTest->getProjectsTest('admin');
r(count($projects)) && p() && e(5); // 研发综合界面下 admin 用户参与的项目有 5 个。
r($projects) && p('1:status,delay,storyCount,executionCount') && e('wait,``,118,5'); // 项目 1 的状态为 wait,没有延期,需求规模总和为 118,执行数为 5。
r($projects) && p('1:status,delay,storyCount,executionCount') && e('wait,~~,118,5'); // 项目 1 的状态为 wait,没有延期,需求规模总和为 118,执行数为 5。
r($projects) && p('2:status,delay,storyCount,executionCount') && e('wait,1,122,5'); // 项目 2 的状态为 wait,延期 1 天,需求规模总和为 122,执行数为 5。
r($projects) && p('3:status,delay,storyCount,executionCount') && e('doing,1,126,5'); // 项目 3 的状态为 doing,延期 1 天,需求规模总和为 126,执行数为 5。
r($projects) && p('4:status,delay,storyCount,executionCount') && e('suspended,``,130,5'); // 项目 4 的状态为 suspended,没有延期,需求规模总和为 130,执行数为 5。
r($projects) && p('5:status,delay,storyCount,executionCount') && e('closed,``,0,0'); // 项目 5 的状态为 closed,没有延期,需求规模总和为 0,执行数为 0。
r($projects) && p('4:status,delay,storyCount,executionCount') && e('suspended,~~,130,5'); // 项目 4 的状态为 suspended,没有延期,需求规模总和为 130,执行数为 5。
r($projects) && p('5:status,delay,storyCount,executionCount') && e('closed,~~,0,0'); // 项目 5 的状态为 closed,没有延期,需求规模总和为 0,执行数为 0。
$config->vision = 'lite';
$projects = $userTest->getProjectsTest('admin');
+2 -2
View File
@@ -34,7 +34,7 @@ r($users) && p('user6') && e('测试主管'); // user6 账号的角色
r($users) && p('user7') && e('高层管理'); // user7 账号的角色是 高层管理。
r($users) && p('user8') && e('其他'); // user8 账号的角色是 其他。
r($users) && p('user9') && e('role'); // user9 账号的角色是 role。
r($users) && p('user10') && e('``'); // user10 账号不存在。
r($users) && p('user10') && e('~~'); // user10 账号不存在。
/* 参数为数组。*/
$users = $userTest->getUserRolesTest(array('admin', 'user1', 'user2', 'user3', 'user4', 'user5', 'user6', 'user7', 'user8', 'user9'));
@@ -49,7 +49,7 @@ r($users) && p('user6') && e('测试主管'); // user6 账号的角色
r($users) && p('user7') && e('高层管理'); // user7 账号的角色是 高层管理。
r($users) && p('user8') && e('其他'); // user8 账号的角色是 其他。
r($users) && p('user9') && e('role'); // user9 账号的角色是 role。
r($users) && p('user10') && e('``'); // user10 账号不存在。
r($users) && p('user10') && e('~~'); // user10 账号不存在。
/* 参数为字符串。*/
$users = $userTest->getUserRolesTest('admin, user1, user10');
+5 -5
View File
@@ -53,7 +53,7 @@ r($tester->session->user) && p('account,admin') && e('admin,1'); // 登录成功
/* 检测 admin 用户锁定状态。*/
$user2 = $userTest->getByIdTest($user2->account);
r($user2) && p('account,fails,locked') && e('admin,0,``'); // 数据库中记录的 admin 用户登录失败次数为 0,锁定时间为空。
r($user2) && p('account,fails,locked') && e('admin,0,~~'); // 数据库中记录的 admin 用户登录失败次数为 0,锁定时间为空。
r($tester->session->loginFails) && p() && e(0); // session 中未记录登录失败次数。
r($tester->session->{'admin.loginLocked'}) && p() && e(0); // session 中未记录 admin 用户锁定时间。
@@ -87,13 +87,13 @@ r($tester->cookie->zp) && p() && e('0'); // 未勾选保持登录状态
* 检测 user1 用户登录后的信息。
*/
$result = $userTest->loginTest($user3, false, true); // 不记录日志,勾选保持登录状态。
r($result) && p('account,admin') && e('user1,``'); // 登录成功,返回的用户是 user1,不是超级管理员。
r($app->user) && p('account,admin') && e('user1,``'); // 登录成功,$app 对象的中的用户是 user1,不是超级管理员。
r($tester->session->user) && p('account,admin') && e('user1,``'); // 登录成功,session 中的用户是 user1,不是超级管理员。
r($result) && p('account,admin') && e('user1,~~'); // 登录成功,返回的用户是 user1,不是超级管理员。
r($app->user) && p('account,admin') && e('user1,~~'); // 登录成功,$app 对象的中的用户是 user1,不是超级管理员。
r($tester->session->user) && p('account,admin') && e('user1,~~'); // 登录成功,session 中的用户是 user1,不是超级管理员。
/* 检测 user1 用户锁定状态。*/
$user3 = $userTest->getByIdTest($user3->account);
r($user3) && p('account,fails,locked') && e('user1,0,``'); // 数据中记录的 user1 用户登录失败次数为 0,锁定时间为空。
r($user3) && p('account,fails,locked') && e('user1,0,~~'); // 数据中记录的 user1 用户登录失败次数为 0,锁定时间为空。
r($tester->session->loginFails) && p() && e(0); // session 中未记录登录失败次数。
r($tester->session->{'user1.loginLocked'}) && p() && e(0); // session 中未记录 user1 用户锁定时间。
+3 -3
View File
@@ -16,13 +16,13 @@ $usersToAppend = array('user1', 'user2', 'user3');
$userModel = $tester->loadModel('user');
$userModel->processMoreLink($params, $usersToAppend, 0, 0);
r($config->user) && p('moreLink') && e('``'); // maxCount 参数为 0,更多链接为空。
r($config->user) && p('batchCreate,moreLink') && e('10,~~'); // maxCount 参数为 0,更多链接为空。
$userModel->processMoreLink($params, $usersToAppend, 1, 2);
r($config->user) && p('moreLink') && e('``'); // maxCount 参数不为 0 且小于 userCount 参数,更多链接为空。
r($config->user) && p('moreLink') && e('~~'); // maxCount 参数不为 0 且小于 userCount 参数,更多链接为空。
$userModel->processMoreLink($params, $usersToAppend, 2, 1);
r($config->user) && p('moreLink') && e('``'); // maxCount 参数不为 0 且大于 userCount 参数,更多链接为空。
r($config->user) && p('moreLink') && e('~~'); // maxCount 参数不为 0 且大于 userCount 参数,更多链接为空。
$config->webRoot = '/';
$config->requestType = 'GET';
+2 -2
View File
@@ -43,8 +43,8 @@ r($result) && p('errors:password1') && e('两次密码应该相同。'); // admi
$result = $userTest->resetPasswordTest($user5);
r($result) && p('result') && e(1); // user1 用户存在,且密码符合要求,返回 true。
r($result) && p('errors:0') && e('``'); // user1 用户存在,且密码符合要求,不提示错误信息。
r($result) && p('errors:password1') && e('``'); // user1 用户存在,且密码符合要求,不提示错误信息。
r($result) && p('errors:0') && e('~~'); // user1 用户存在,且密码符合要求,不提示错误信息。
r($result) && p('errors:password1') && e('~~'); // user1 用户存在,且密码符合要求,不提示错误信息。
$resetUser = $userTest->getByIdTest($user5->account);
r($resetUser->password == $password) && p() && e(1); // user1 用户密码重置成功。
+13 -13
View File
@@ -29,20 +29,20 @@ $template4 = (object)array('account' => 'admin', 'type' => 'story', 'title' => '
/* 测试必填项为空的情况。*/
$result = $userTest->saveUserTemplateTest($template1);
r($result) && p('result') && e(0); // 模板名称和模板内容为空,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:type') && e('``'); // 模板类型无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:type') && e('~~'); // 模板类型无错误提示。
r($result) && p('errors:title') && e('『模板名称』不能为空。'); // 模板名称不能为空。
r($result) && p('errors:content') && e('『模板内容』不能为空。'); // 模板内容不能为空。
r($result) && p('errors:public') && e('``'); // 公共模板无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共模板无错误提示。
/* 测试模板名称已存在的情况。*/
$result = $userTest->saveUserTemplateTest($template2);
r($result) && p('result') && e(0); // 模板名称已存在,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:type') && e('``'); // 创建人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:type') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:title') && e('『模板名称』已经有『模板名称1』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。'); // 模板名称已存在。
r($result) && p('errors:content') && e('``'); // 模板内容无错误提示。
r($result) && p('errors:public') && e('``'); // 公共模板无错误提示。
r($result) && p('errors:content') && e('~~'); // 模板内容无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共模板无错误提示。
/* 测试数据格式不符合数据库字段设置的情况。*/
$result = $userTest->saveUserTemplateTest($template3);
@@ -50,14 +50,14 @@ r($result) && p('result') && e(0);
r($result) && p('errors:account') && e('『创建人』长度应当不超过『30』,且大于『0』。'); // 创建人过长。
r($result) && p('errors:type') && e('『模板类型』长度应当不超过『30』,且大于『0』。'); // 模板类型过长。
r($result) && p('errors:title') && e('『模板名称』长度应当不超过『150』,且大于『0』。'); // 模板名称过长。
r($result) && p('errors:content') && e('``'); // 模板内容无错误提示。
r($result) && p('errors:content') && e('~~'); // 模板内容无错误提示。
r($result) && p('errors:public') && e('『公共模板』不符合格式,应当为:『/0|1/』。'); // 公共模板应当是数字。
/* 测试创建成功的情况。*/
$result = $userTest->saveUserTemplateTest($template4);
r($result) && p('result') && e(1); // 创建成功,返回 true。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:type') && e('``'); // 模板类型无错误提示。
r($result) && p('errors:title') && e('``'); // 模板名称无错误提示。
r($result) && p('errors:content') && e('``'); // 模板内容无错误提示。
r($result) && p('errors:public') && e('``'); // 公共模板无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:type') && e('~~'); // 模板类型无错误提示。
r($result) && p('errors:title') && e('~~'); // 模板名称无错误提示。
r($result) && p('errors:content') && e('~~'); // 模板内容无错误提示。
r($result) && p('errors:public') && e('~~'); // 公共模板无错误提示。
+10 -10
View File
@@ -29,31 +29,31 @@ $contact4 = (object)array('id' => 1, 'account' => 'user1', 'listName' => '联系
/* 测试必填项为空的情况。*/
$result = $userTest->updateContactListTest($contact1);
r($result) && p('result') && e(0); // 列表名称和用户列表为空,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('『列表名称』不能为空。'); // 列表名称不能为空。
r($result) && p('errors:userList') && e('『用户列表』不能为空。'); // 用户列表不能为空。
r($result) && p('errors:public') && e('``'); // 是否公开无错误提示。
r($result) && p('errors:public') && e('~~'); // 是否公开无错误提示。
/* 测试列表名称已存在的情况。*/
$result = $userTest->updateContactListTest($contact2);
r($result) && p('result') && e(0); // 列表名称已存在,返回 false。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('『列表名称』已经有『联系人列表2』这条记录了。如果您确定该记录已删除,请到后台-系统设置-回收站还原。'); // 列表名称已存在。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('``'); // 是否公开无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('~~'); // 是否公开无错误提示。
/* 测试数据格式不符合数据库字段设置的情况。*/
$result = $userTest->updateContactListTest($contact3);
r($result) && p('result') && e(0); // 创建人和列表名称过长,返回 false。
r($result) && p('errors:account') && e('『创建人』长度应当不超过『30』,且大于『0』。'); // 创建人过长。
r($result) && p('errors:listName') && e('『列表名称』长度应当不超过『60』,且大于『0』。'); // 列表名称过长。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('『公共联系人』应当是数字。'); // 是否公开应当是数字。
/* 测试创建成功的情况。*/
$result = $userTest->updateContactListTest($contact4);
r($result) && p('result') && e(1); // 创建成功,返回 true。
r($result) && p('errors:account') && e('``'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('``'); // 列表名称无错误提示。
r($result) && p('errors:userList') && e('``'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('``'); // 是否公开无错误提示。
r($result) && p('errors:account') && e('~~'); // 创建人无错误提示。
r($result) && p('errors:listName') && e('~~'); // 列表名称无错误提示。
r($result) && p('errors:userList') && e('~~'); // 用户列表无错误提示。
r($result) && p('errors:public') && e('~~'); // 是否公开无错误提示。
+2 -2
View File
@@ -48,8 +48,8 @@ r($result) && p('errors:originalPassword') && e('原密码不正确'); // 原密
$result = $userTest->updatePasswordTest($user5);
r($result) && p('result') && e(1); // 密码符合要求,返回 true。
r($result) && p('errors:0') && e('``'); // 密码符合要求,不提示错误信息。
r($result) && p('errors:password1') && e('``'); // 密码符合要求,不提示错误信息。
r($result) && p('errors:0') && e('~~'); // 密码符合要求,不提示错误信息。
r($result) && p('errors:password1') && e('~~'); // 密码符合要求,不提示错误信息。
$resetUser = $userTest->getByIdTest($app->user->account);
r($resetUser->password == $password) && p() && e(1); // 数据库中的密码修改成功。