znt/module/user/test/model/checkbeforecreateoredit.php

62 lines
2.3 KiB
PHP
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 userModel::checkBeforeCreateOrEdit();
timeout=0
cid=19584
- 执行$guestUser属性result @0
- 执行$guestUser属性error @用户名已被系统预留
- 执行$noPassUser, true属性result @1
- 执行$normalUser属性result @1
- 执行$noPassUser2属性result @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
// 准备基本数据 - 最小化设置避免复杂权限查询
zenData('user')->gen(1);
zenData('config')->gen(0);
// 直接使用userModel避免复杂的userTest类初始化
$userModel = new userModel();
// 创建简化的测试函数
function testCheckBeforeCreateOrEdit($user, $canNoPassword = false) {
global $userModel;
$result = $userModel->checkBeforeCreateOrEdit($user, $canNoPassword);
$errors = dao::getError();
// 简化错误信息处理
$errorMsg = '';
if(!empty($errors['account'])) {
$errorMsg = is_array($errors['account']) ? implode('', $errors['account']) : $errors['account'];
}
dao::$errors = array(); // 清理错误状态
return array('result' => (int)$result, 'error' => $errorMsg);
}
// 测试1预留用户名guest
$guestUser = (object)array('account' => 'guest', 'password1' => '123456', 'passwordLength' => 6, 'passwordStrength' => 1, 'verifyPassword' => md5($app->user->password . $app->session->rand));
r(testCheckBeforeCreateOrEdit($guestUser)) && p('result') && e(0);
// 测试2检查预留用户名错误信息
r(testCheckBeforeCreateOrEdit($guestUser)) && p('error') && e('用户名已被系统预留');
// 测试3正常用户名无密码且允许模式
$noPassUser = (object)array('account' => 'normaluser', 'password1' => '', 'verifyPassword' => '');
r(testCheckBeforeCreateOrEdit($noPassUser, true)) && p('result') && e(1);
// 测试4正常用户名有密码
$normalUser = (object)array('account' => 'testuser', 'password1' => '123456', 'passwordLength' => 6, 'passwordStrength' => 1, 'verifyPassword' => md5($app->user->password . $app->session->rand));
r(testCheckBeforeCreateOrEdit($normalUser)) && p('result') && e(1);
// 测试5正常用户名无密码且不允许模式
$noPassUser2 = (object)array('account' => 'nopassuser', 'password1' => '', 'verifyPassword' => '');
r(testCheckBeforeCreateOrEdit($noPassUser2)) && p('result') && e(0);