]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/include/SugarFields/Fields/File/Bug22505Test.php
Release 6.2.3
[Github/sugarcrm.git] / tests / include / SugarFields / Fields / File / Bug22505Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2011 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('include/SugarFields/Fields/File/SugarFieldFile.php');
38                 
39 /**
40  * @ticket 22505
41  *
42  *              Original Bug: Sugar should indicate to customer the max file size that can be uploaded 
43  *
44  */
45 class Bug22505Test extends Sugar_PHPUnit_Framework_TestCase 
46 {
47         private $_post_max_size;
48         private $_upload_max_filesize;
49         private $_upload_maxsize;
50         private $_file_field;
51         
52         function setUp() 
53         {
54                 $this->_post_max_size = ini_get('post_max_size');
55                 $this->_upload_max_filesize = ini_get('upload_max_filesize');
56                 $this->_upload_maxsize = $GLOBALS['sugar_config']['upload_maxsize'];
57                 
58                 $this->_file_field = new Bug22505TestMock('file');
59         }
60
61         function tearDown() {
62                 //ini_set('post_max_size',$this->_post_max_size);
63                 //ini_set('upload_max_filesize',$this->_upload_max_filesize);
64                 $GLOBALS['sugar_config']['upload_maxsize'] = $this->_upload_maxsize;
65                 
66                 unset($this->_post_max_size);
67                 unset($this->_upload_max_filesize);
68                 unset($this->_upload_maxsize);
69                 unset($this->_file_field);
70         }
71
72         function testMaxFileUploadSize() {      
73                 $small = '9999'; //9.76 kb
74                 $large = '99999999999999';
75                 
76                 //Test 1: upload_maxsize is smallest
77                 //ini_set('post_max_size',$small);
78                 //ini_set('upload_max_filesize',$large);
79                 $GLOBALS['sugar_config']['upload_maxsize'] = $small;
80                 $max_size = $this->_file_field->getMaxFileUploadSize();
81
82                 $this->assertEquals($max_size, '9.76 kb','Max file upload size is not 9.76 kb as expected');
83                 
84                 //Test 2: upload_maxsize is greatest
85                 $GLOBALS['sugar_config']['upload_maxsize'] = $large;
86                 $max_size = $this->_file_field->getMaxFileUploadSize();
87
88                 $this->assertNotEquals($max_size, '9.76 kb','Max file upload size is 9.76 kb which is not expected');
89         }
90 }
91
92 class Bug22505TestMock extends SugarFieldFile
93 {
94     public function getMaxFileUploadSize()
95     {
96         return parent::getMaxFileUploadSize();
97     }
98 }