2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
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.
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
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
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.
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.
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 ********************************************************************************/
37 require_once('include/SugarFields/Fields/File/SugarFieldFile.php');
42 * Original Bug: Sugar should indicate to customer the max file size that can be uploaded
45 class Bug22505Test extends Sugar_PHPUnit_Framework_TestCase
47 private $_post_max_size;
48 private $_upload_max_filesize;
49 private $_upload_maxsize;
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'];
58 $this->_file_field = new Bug22505TestMock('file');
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;
66 unset($this->_post_max_size);
67 unset($this->_upload_max_filesize);
68 unset($this->_upload_maxsize);
69 unset($this->_file_field);
72 function testMaxFileUploadSize() {
73 $small = '9999'; //9.76 kb
74 $large = '99999999999999';
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();
82 $this->assertEquals($max_size, '9.76 kb','Max file upload size is not 9.76 kb as expected');
84 //Test 2: upload_maxsize is greatest
85 $GLOBALS['sugar_config']['upload_maxsize'] = $large;
86 $max_size = $this->_file_field->getMaxFileUploadSize();
88 $this->assertNotEquals($max_size, '9.76 kb','Max file upload size is 9.76 kb which is not expected');
92 class Bug22505TestMock extends SugarFieldFile
94 public function getMaxFileUploadSize()
96 return parent::getMaxFileUploadSize();