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

111 lines
6.9 KiB
PHP
Executable file
Raw Permalink 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->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。