111 lines
6.9 KiB
PHP
111 lines
6.9 KiB
PHP
|
|
#!/usr/bin/env php
|
|||
|
|
<?php
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
|
|||
|
|
title=测试 userModel->identify();
|
|||
|
|
timeout=0
|
|||
|
|
cid=19640
|
|||
|
|
|
|||
|
|
- 用户名不为空,密码为空,返回 false。 @0
|
|||
|
|
- 用户名为空,密码不为空,返回 false。 @0
|
|||
|
|
- 用户名不合法,密码不为空,返回 false。 @0
|
|||
|
|
- 用户名不存在,密码不为空,返回 false。 @0
|
|||
|
|
- 用户名存在,密码使用 md5 加密,密码不正确,返回 false。 @0
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码不正确,返回 false。 @0
|
|||
|
|
- 用户名存在,密码使用明文,密码不正确,返回 false。 @0
|
|||
|
|
- 用户名存在,密码使用明文,密码正确,返回用户。属性account @admin
|
|||
|
|
- 用户名存在,密码使用 md5 加密,密码正确,返回用户。属性account @admin
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户。属性account @admin
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户是超级管理员。属性admin @1
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户头像是相对路径。属性avatar @/data/upload/1/202311/29144321062056c4
|
|||
|
|
- admin 用户的 IP 是服务器的远程地址。 @1
|
|||
|
|
- admin 用户的访问次数是原来的访问次数加 1。 @1
|
|||
|
|
- admin 用户的访问次数不变。 @1
|
|||
|
|
- admin 用户的访问次数不变。 @1
|
|||
|
|
- 用户名存在,密码使用明文,密码正确,返回用户。属性account @user1
|
|||
|
|
- 用户名存在,密码使用 md5 加密,密码正确,返回用户。属性account @user1
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户。属性account @user1
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户不是超级管理员。属性admin @~~
|
|||
|
|
- 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户头像是相对路径。属性avatar @/data/upload/1/202311/29144321062056c4
|
|||
|
|
- user1 用户的 IP 是服务器的远程地址。 @1
|
|||
|
|
- user1 用户的访问次数是原来的访问次数加 1。 @1
|
|||
|
|
|
|||
|
|
*/
|
|||
|
|
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
|||
|
|
include dirname(__FILE__, 2) . '/lib/model.class.php';
|
|||
|
|
|
|||
|
|
$table = zenData('user');
|
|||
|
|
$table->password->range(md5(123456));
|
|||
|
|
$table->avatar->range('/www/data/upload/1/202311/29144321062056c4');
|
|||
|
|
$table->last->prefix('2025-01-01 10:00:00');
|
|||
|
|
$table->gen(2);
|
|||
|
|
|
|||
|
|
su('admin');
|
|||
|
|
|
|||
|
|
global $app, $config;
|
|||
|
|
$config->webRoot = '/';
|
|||
|
|
|
|||
|
|
$userTest = new userModelTest();
|
|||
|
|
|
|||
|
|
$random = updateSessionRandom();
|
|||
|
|
$admin = $userTest->getByIdTest('admin');
|
|||
|
|
$user1 = $userTest->getByIdTest('user1');
|
|||
|
|
|
|||
|
|
r($userTest->identifyTest('admin', '')) && p() && e(0); // 用户名不为空,密码为空,返回 false。
|
|||
|
|
r($userTest->identifyTest('', '123456')) && p() && e(0); // 用户名为空,密码不为空,返回 false。
|
|||
|
|
r($userTest->identifyTest('a1_~!', '123456')) && p() && e(0); // 用户名不合法,密码不为空,返回 false。
|
|||
|
|
r($userTest->identifyTest('user2', '123456')) && p() && e(0); // 用户名不存在,密码不为空,返回 false。
|
|||
|
|
r($userTest->identifyTest('admin', md5(123456))) && p() && e(0); // 用户名存在,密码使用 md5 加密,密码不正确,返回 false。
|
|||
|
|
r($userTest->identifyTest('admin', sha1(123456))) && p() && e(0); // 用户名存在,密码使用 sha1 加密,密码不正确,返回 false。
|
|||
|
|
r($userTest->identifyTest('admin', '654321')) && p() && e(0); // 用户名存在,密码使用明文,密码不正确,返回 false。
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 检测验证超级管理员用户身份。
|
|||
|
|
*/
|
|||
|
|
r($userTest->identifyTest($admin->account, '123456')) && p('account') && e('admin'); // 用户名存在,密码使用明文,密码正确,返回用户。
|
|||
|
|
r($userTest->identifyTest($admin->account, md5($admin->password . $random))) && p('account') && e('admin'); // 用户名存在,密码使用 md5 加密,密码正确,返回用户。
|
|||
|
|
|
|||
|
|
$admin = $userTest->getByIdTest($admin->account); // 重新获取用户信息,因为上面的操作会修改用户信息。
|
|||
|
|
$user = $userTest->identifyTest($admin->account, sha1($admin->account . $admin->password . strtotime($admin->last)));
|
|||
|
|
r($user) && p('account') && e('admin'); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户。
|
|||
|
|
r($user) && p('admin') && e(1); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户是超级管理员。
|
|||
|
|
r($user) && p('avatar') && e('/data/upload/1/202311/29144321062056c4'); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户头像是相对路径。
|
|||
|
|
|
|||
|
|
$oldAdmin = $admin;
|
|||
|
|
$admin = $userTest->getByIdTest($admin->account);
|
|||
|
|
r($admin->ip == $tester->server->remote_addr) && p() && e(1); // admin 用户的 IP 是服务器的远程地址。
|
|||
|
|
r($admin->visits == $oldAdmin->visits + 1) && p() && e(1); // admin 用户的访问次数是原来的访问次数加 1。
|
|||
|
|
|
|||
|
|
/* 检测安装过程中验证用户身份。*/
|
|||
|
|
$app->installing = true;
|
|||
|
|
|
|||
|
|
$oldAdmin = $admin;
|
|||
|
|
$admin = $userTest->getByIdTest($admin->account);
|
|||
|
|
r($admin->visits == $oldAdmin->visits) && p() && e(1); // admin 用户的访问次数不变。
|
|||
|
|
|
|||
|
|
/* 检测升级过程中验证用户身份。*/
|
|||
|
|
$app->upgrading = true;
|
|||
|
|
|
|||
|
|
$oldAdmin = $admin;
|
|||
|
|
$admin = $userTest->getByIdTest($admin->account);
|
|||
|
|
r($admin->visits == $oldAdmin->visits) && p() && e(1); // admin 用户的访问次数不变。
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 检测验证普通用户身份。
|
|||
|
|
*/
|
|||
|
|
$app->installing = false;
|
|||
|
|
$app->upgrading = false;
|
|||
|
|
r($userTest->identifyTest($user1->account, '123456')) && p('account') && e('user1'); // 用户名存在,密码使用明文,密码正确,返回用户。
|
|||
|
|
r($userTest->identifyTest($user1->account, md5($user1->password . $random))) && p('account') && e('user1'); // 用户名存在,密码使用 md5 加密,密码正确,返回用户。
|
|||
|
|
|
|||
|
|
$user1 = $userTest->getByIdTest($user1->account); // 重新获取用户信息,因为上面的操作会修改用户信息。
|
|||
|
|
$user = $userTest->identifyTest($user1->account, sha1($user1->account . $user1->password . strtotime($user1->last)));
|
|||
|
|
r($user) && p('account') && e('user1'); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户。
|
|||
|
|
r($user) && p('admin') && e('~~'); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户不是超级管理员。
|
|||
|
|
r($user) && p('avatar') && e('/data/upload/1/202311/29144321062056c4'); // 用户名存在,密码使用 sha1 加密,密码正确,返回用户,用户头像是相对路径。
|
|||
|
|
|
|||
|
|
$oldUser = $user1;
|
|||
|
|
$user1 = $userTest->getByIdTest($user1->account);
|
|||
|
|
r($user1->ip == $tester->server->remote_addr) && p() && e(1); // user1 用户的 IP 是服务器的远程地址。
|
|||
|
|
r($user1->visits == $oldUser->visits + 1) && p() && e(1); // user1 用户的访问次数是原来的访问次数加 1。
|