Files
EasySoft-ZenTaoPMS/module/user/test/model/identifybycookie.php
2025-11-14 13:05:25 +08:00

171 lines
9.2 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->identifyByCookie();
cid=19641
- 空用户验证失败,返回 false。 @0
- guest 用户验证失败,返回 false。 @0
- user2 用户验证失败,返回 false。 @0
- admin 用户验证成功,返回 true。 @1
- admin 用户验证成功,$app 对象的中的用户是 admin。属性account @admin
- admin 用户验证成功session 中的用户是 admin。属性account @admin
- admin 用户具有 6 个模块的权限。 @8
- admin 用户具有 index 模块的 index 动作的权限。 @1
- admin 用户具有 my 模块的 index 动作的权限。 @1
- admin 用户具有 company 模块的 all 动作的权限。 @1
- admin 用户具有 dept 模块的 browse 动作的权限。 @1
- admin 用户具有 group 模块的 browse 动作的权限。 @1
- admin 用户具有 program 模块的 browse 动作的权限。 @1
- admin 用户具有 product 模块的 browse 动作的权限。 @1
- admin 用户具有 execution 模块的 browse 动作的权限。 @1
- admin 用户具有 2 个权限组。 @2
- admin 用户具有的权限组 id 分别是 1 和 2。
- 属性1 @1
- 属性2 @2
- 记录日志,最后一条日志对象类型是 user对象 ID 是 1动作是 login。
- 属性objectType @user
- 属性objectID @1
- 属性action @login
- user1 用户验证成功,返回 true。 @1
- user1 用户验证成功,$app 对象的中的用户是 user1。属性account @user1
- user1 用户验证成功session 中的用户是 user1。属性account @user1
- user1 用户具有 2 个模块的权限。 @8
- user1 用户具有 index 模块的 index 动作的权限。 @1
- user1 用户具有 my 模块的 index 动作的权限。 @1
- user1 用户具有 program 模块的 browse 动作的权限。 @1
- user1 用户具有 product 模块的 browse 动作的权限。 @1
- user1 用户具有 execution 模块的 all 动作的权限。 @1
- user1 用户具有 qa 模块的 index 动作的权限。 @1
- user1 用户具有 bug 模块的 browse 动作的权限。 @1
- user1 用户具有 testcase 模块的 browse 动作的权限。 @1
- user1 用户具有 2 个权限组。 @2
- user1 用户具有的权限组 id 分别是 2 和 3。
- 属性2 @2
- 属性3 @3
- 记录日志,最后一条日志对象类型是 user对象 ID 是 2动作是 login。
- 属性objectType @user
- 属性objectID @2
- 属性action @login
- user1 用户使用错误密码验证失败,返回 false。 @0
- user1 用户使用空密码验证失败,返回 false。 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/user.unittest.class.php';
zenData('user')->gen(2);
zenData('company')->gen(1);
zenData('group')->gen(3);
$userGroupTable = zenData('usergroup');
$userGroupTable->account->range('admin{2},user1{2}');
$userGroupTable->group->range('1,2{2},3');
$userGroupTable->gen(4);
$groupPrivTable = zenData('grouppriv');
$groupPrivTable->group->range('1-3{3}');
$groupPrivTable->module->range('company,dept,group,program,product,execution,qa,bug,testcase');
$groupPrivTable->method->range('browse{5},all,index,browse{2}');
$groupPrivTable->gen(9);
global $app;
$userTest = new userTest();
$password = sha1(123456);
$admin = $userTest->getByIdTest('admin');
$user1 = $userTest->getByIdTest('user1');
/**
* 检测验证空用户。
*/
$tester->cookie->set('za', '');
$tester->cookie->set('zp', $password);
r($userTest->identifyByCookieTest()) && p() && e(0); // 空用户验证失败,返回 false。
/**
* 检测验证 guest 用户。
*/
$tester->cookie->set('za', 'guest');
$tester->cookie->set('zp', $password);
r($userTest->identifyByCookieTest()) && p() && e(0); // guest 用户验证失败,返回 false。
/**
* 检测验证不存在的用户。
*/
$tester->cookie->set('za', 'user2');
$tester->cookie->set('zp', $password);
r($userTest->identifyByCookieTest()) && p() && e(0); // user2 用户验证失败,返回 false。
/**
* 检测验证 admin 用户。
*/
$tester->cookie->set('za', $admin->account);
$tester->cookie->set('zp', sha1($admin->account . $admin->password . strtotime($admin->last)));
r($userTest->identifyByCookieTest()) && p() && e(1); // admin 用户验证成功,返回 true。
r($app->user) && p('account') && e('admin'); // admin 用户验证成功,$app 对象的中的用户是 admin。
r($tester->session->user) && p('account') && e('admin'); // admin 用户验证成功session 中的用户是 admin。
/* 检测 admin 用户权限。*/
r(count($app->user->rights['rights'])) && p() && e(8); // admin 用户具有 6 个模块的权限。
r(isset($app->user->rights['rights']['index']['index'])) && p() && e(1); // admin 用户具有 index 模块的 index 动作的权限。
r(isset($app->user->rights['rights']['my']['index'])) && p() && e(1); // admin 用户具有 my 模块的 index 动作的权限。
r(isset($app->user->rights['rights']['company']['browse'])) && p() && e(1); // admin 用户具有 company 模块的 all 动作的权限。
r(isset($app->user->rights['rights']['dept']['browse'])) && p() && e(1); // admin 用户具有 dept 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['group']['browse'])) && p() && e(1); // admin 用户具有 group 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['program']['browse'])) && p() && e(1); // admin 用户具有 program 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['product']['browse'])) && p() && e(1); // admin 用户具有 product 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['execution']['all'])) && p() && e(1); // admin 用户具有 execution 模块的 browse 动作的权限。
/* 检测 admin 用户权限组。*/
r(count($app->user->groups)) && p() && e(2); // admin 用户具有 2 个权限组。
r($app->user->groups) && p('1,2') && e('1,2'); // admin 用户具有的权限组 id 分别是 1 和 2。
/* 检测 admin 用户视图功能在 computeUserView 和 grantUserView 方法的单元测试中实现。*/
/* 检测是否记录 admin 登录日志。*/
$action = $tester->dao->select('*')->from(TABLE_ACTION)->orderBy('id_desc')->limit(1)->fetch();
r($action) && p('objectType,objectID,action') && e('user,1,login'); // 记录日志,最后一条日志对象类型是 user对象 ID 是 1动作是 login。
/**
* 检测验证 user1 用户。
*/
$tester->cookie->set('za', $user1->account);
$tester->cookie->set('zp', sha1($user1->account . $user1->password . strtotime($user1->last)));
r($userTest->identifyByCookieTest()) && p() && e(1); // user1 用户验证成功,返回 true。
r($app->user) && p('account') && e('user1'); // user1 用户验证成功,$app 对象的中的用户是 user1。
r($tester->session->user) && p('account') && e('user1'); // user1 用户验证成功session 中的用户是 user1。
/* 检测 user1 用户权限。*/
r(count($app->user->rights['rights'])) && p() && e(8); // user1 用户具有 2 个模块的权限。
r(isset($app->user->rights['rights']['index']['index'])) && p() && e(1); // user1 用户具有 index 模块的 index 动作的权限。
r(isset($app->user->rights['rights']['my']['index'])) && p() && e(1); // user1 用户具有 my 模块的 index 动作的权限。
r(isset($app->user->rights['rights']['program']['browse'])) && p() && e(1); // user1 用户具有 program 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['product']['browse'])) && p() && e(1); // user1 用户具有 product 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['execution']['all'])) && p() && e(1); // user1 用户具有 execution 模块的 all 动作的权限。
r(isset($app->user->rights['rights']['qa']['index'])) && p() && e(1); // user1 用户具有 qa 模块的 index 动作的权限。
r(isset($app->user->rights['rights']['bug']['browse'])) && p() && e(1); // user1 用户具有 bug 模块的 browse 动作的权限。
r(isset($app->user->rights['rights']['testcase']['browse'])) && p() && e(1); // user1 用户具有 testcase 模块的 browse 动作的权限。
/* 检测 user1 用户权限组。*/
r(count($app->user->groups)) && p() && e(2); // user1 用户具有 2 个权限组。
r($app->user->groups) && p('2,3') && e('2,3'); // user1 用户具有的权限组 id 分别是 2 和 3。
/* 检测 user1 用户视图功能在 computeUserView 和 grantUserView 方法的单元测试中实现。*/
/* 检测是否记录 user1 登录日志。*/
$action = $tester->dao->select('*')->from(TABLE_ACTION)->orderBy('id_desc')->limit(1)->fetch();
r($action) && p('objectType,objectID,action') && e('user,2,login'); // 记录日志,最后一条日志对象类型是 user对象 ID 是 2动作是 login。
/* 检测 user1 用户使用错误密码验证。*/
$tester->cookie->set('za', $user1->account);
$tester->cookie->set('zp', sha1($user1->password));
r($userTest->identifyByCookieTest()) && p() && e(0); // user1 用户使用错误密码验证失败,返回 false。
/* 检测 user1 用户使用空密码验证。*/
$tester->cookie->set('za', $user1->account);
$tester->cookie->set('zp', '');
r($userTest->identifyByCookieTest()) && p() && e(0); // user1 用户使用空密码验证失败,返回 false。