]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/Users/Bug49896Test.php
Release 6.4.1
[Github/sugarcrm.git] / tests / modules / Users / Bug49896Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
5  * 
6  * This program is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  * 
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
16  * details.
17  * 
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  * 
23  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
25  * 
26  * The interactive user interfaces in modified source and object code versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  * 
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the "Powered by
32  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33  * technical reasons, the Appropriate Legal Notices must display the words
34  * "Powered by SugarCRM".
35  ********************************************************************************/
36
37 require_once 'modules/Users/User.php';
38
39 class Bug49896Test extends Sugar_PHPUnit_Framework_TestCase
40 {
41     var $_passwordSetting;
42     var $_currentUser;
43
44     public function setUp()
45     {
46         if(isset($GLOBALS['sugar_config']['passwordsetting']))
47         {
48             $this->_passwordSetting = $GLOBALS['sugar_config']['passwordsetting'];
49         }
50         $GLOBALS['sugar_config']['passwordsetting'] = array('onenumber'=>1,
51                 'onelower'=>1,
52                 'oneupper'=>1,
53                 'onespecial'=>1,
54                 'minpwdlength'=>6,
55                 'maxpwdlength'=>15);
56         $this->_currentUser = SugarTestUserUtilities::createAnonymousUser(false);        
57     }
58
59     public function tearDown()
60     {
61         if(!empty($this->_passwordSetting))
62         {
63             $GLOBALS['sugar_config']['passwordsetting'] = $this->_passwordSetting;
64         }
65         SugarTestUserUtilities::removeAllCreatedAnonymousUsers();
66     }
67
68     public function testMinLength()
69     {
70         $result = $this->_currentUser->check_password_rules('Tes1!');
71         $this->assertEquals(false, $result, 'Assert that min length rule is checked');
72     }
73
74     public function testMaxLength()
75     {
76         $result = $this->_currentUser->check_password_rules('Tester123456789!');
77         $this->assertEquals(false, $result, 'Assert that max length rule is checked');
78     }
79         
80     public function testOneNumber()
81     {
82         $result = $this->_currentUser->check_password_rules('Tester!');
83         $this->assertEquals(false, $result, 'Assert that one number rule is checked');
84     }
85
86     public function testOneLower()
87     {
88         $result = $this->_currentUser->check_password_rules('TESTER1!');
89         $this->assertEquals(false, $result, 'Assert that one lower rule is checked');
90     }
91     
92     public function testOneUpper()
93     {
94         $result = $this->_currentUser->check_password_rules('tester1!');
95         $this->assertEquals(false, $result, 'Assert that one upper rule is checked');
96     } 
97     
98     public function testOneSpecial()
99     {
100         $result = $this->_currentUser->check_password_rules('Tester1');
101         $this->assertEquals(false, $result, 'Assert that one special rule is checked');
102     }  
103     
104     public function testCustomRegex()
105     {
106         $GLOBALS['sugar_config']['passwordsetting']['customregex'] = '/^T/';
107         $result = $this->_currentUser->check_password_rules('tester1!');
108         $this->assertEquals(false, $result, 'Assert that custom regex is checked');
109     } 
110
111     public function testAllCombinations()
112     {
113         $result = $this->_currentUser->check_password_rules('Tester1!');
114         $this->assertEquals(true, $result, 'Assert that all rules are checked and passed');
115     }    
116 }
117 ?>