znt/module/sso/test/model/bind.php

135 lines
4.3 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=测试 ssoModel::bind();
timeout=0
cid=18401
- 执行ssoTest模块的bindTest方法
- 属性account @admin
- 属性ranzhi @ranzhi1
- 执行ssoTest模块的bindTest方法 @该用户的登录密码错误,或该用户不存在!
- 执行ssoTest模块的bindTest方法 @该用户的登录密码错误,或该用户不存在!
- 执行ssoTest模块的bindTest方法 @密码不能为空
- 执行ssoTest模块的bindTest方法 @该用户名已经存在,请更换用户名,或直接绑定到该用户。
- 执行ssoTest模块的bindTest方法第account条的0属性 @『用户名』只能是字母、数字或下划线的组合三位以上。
- 执行ssoTest模块的bindTest方法 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
$user = zenData('user');
$user->account->range('admin,user1,user2,test1,test2');
$user->password->range('e10adc3949ba59abbe56e057f20f883e{5}');
$user->realname->range('管理员,用户1,用户2,测试1,测试2');
$user->email->range('admin@test.com,user1@test.com,user2@test.com,test1@test.com,test2@test.com');
$user->deleted->range('0{5}');
$user->gen(5);
su('admin');
$ssoTest = new ssoModelTest();
// 测试步骤1正常绑定已存在用户到ranzhi账号
$_POST = array();
$_POST['bindUser'] = 'admin';
$_POST['bindPassword'] = '123456';
$_POST['bindType'] = 'bind';
$ssoData = new stdclass();
$ssoData->account = 'ranzhi1';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p('account,ranzhi') && e('admin,ranzhi1');
// 测试步骤2绑定时输入错误密码
$_POST = array();
$_POST['bindUser'] = 'admin';
$_POST['bindPassword'] = 'wrongpassword';
$_POST['bindType'] = 'bind';
$ssoData = new stdclass();
$ssoData->account = 'ranzhi2';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p('0') && e('该用户的登录密码错误,或该用户不存在!');
// 测试步骤3绑定时用户名不存在
$_POST = array();
$_POST['bindUser'] = 'nonexistent';
$_POST['bindPassword'] = '123456';
$_POST['bindType'] = 'bind';
$ssoData = new stdclass();
$ssoData->account = 'ranzhi3';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p('0') && e('该用户的登录密码错误,或该用户不存在!');
// 测试步骤4绑定缺少密码字段
$_POST = array();
$_POST['bindUser'] = 'admin';
$_POST['bindPassword'] = '';
$_POST['bindType'] = 'bind';
$ssoData = new stdclass();
$ssoData->account = 'ranzhi4';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p('0') && e('密码不能为空');
// 测试步骤5添加用户时账号已存在
$_POST = array();
$_POST['account'] = 'admin';
$_POST['password1'] = '123456';
$_POST['password2'] = '123456';
$_POST['realname'] = '管理员2';
$_POST['gender'] = 'm';
$_POST['email'] = 'admin2@test.com';
$_POST['role'] = 'dev';
$_POST['bindType'] = 'add';
$_POST['passwordStrength'] = '2';
$_POST['passwordLength'] = strlen($_POST['password1']);
$ssoData = new stdclass();
$ssoData->account = 'ranzhi5';
$_SESSION['ssoData'] = $ssoData;
global $tester;
$ssoTest->objectModel->config->safe = new stdclass();
$ssoTest->objectModel->config->safe->mode = 2;
r($ssoTest->bindTest()) && p('0') && e('该用户名已经存在,请更换用户名,或直接绑定到该用户。');
// 测试步骤6添加用户时账号格式无效
$_POST = array();
$_POST['account'] = 'invalid@account';
$_POST['password1'] = '123456';
$_POST['password2'] = '123456';
$_POST['realname'] = '测试用户';
$_POST['gender'] = 'm';
$_POST['email'] = 'test@test.com';
$_POST['role'] = 'dev';
$_POST['bindType'] = 'add';
$_POST['passwordStrength'] = '2';
$_POST['passwordLength'] = strlen($_POST['password1']);
$ssoData = new stdclass();
$ssoData->account = 'ranzhi6';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p('account:0') && e('『用户名』只能是字母、数字或下划线的组合三位以上。');
// 测试步骤7绑定类型为无效值
$_POST = array();
$_POST['bindType'] = 'invalid';
$ssoData = new stdclass();
$ssoData->account = 'ranzhi7';
$_SESSION['ssoData'] = $ssoData;
r($ssoTest->bindTest()) && p() && e('0');