]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/UpgradeWizard/Bug46027Test.php
Release 6.2.2
[Github/sugarcrm.git] / tests / modules / UpgradeWizard / Bug46027Test.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
38 require_once('include/dir_inc.php');
39 require_once('modules/UpgradeWizard/UpgradeRemoval.php');
40
41 class Bug46027Test extends Sugar_PHPUnit_Framework_TestCase 
42 {
43
44         public function setUp()
45         {               
46                 if(file_exists('custom/backup/include/utils/external_cache'))
47                 {
48                         rmdir_recursive('custom/backup/include/utils/external_cache');
49                         rmdir_recursive('custom/backup/include/utils');
50                         rmdir_recursive('custom/backup/include');       
51                 }
52                 
53                 if(file_exists('include/JSON.js'))
54                 {
55                         unlink('include/JSON.js');
56                 }               
57                 
58                 //Simulate file and directory that should be removed by UpgradeRemove62x.php
59                 copy('include/JSON.php', 'include/JSON.js');
60                 mkdir_recursive('include/utils/external_cache');                
61         }
62         
63         /**
64          * ensure that the test directory and file are removed at the end of the test
65          */
66         public function tearDown()
67         {
68                 if(file_exists('include/utils/external_cache'))
69                 {
70                    rmdir_recursive('include/utils/external_cache');
71                 }
72                 
73                 if(file_exists('include/JSON.js'))
74                 {
75                    unlink('include/JSON.js');   
76                 }
77                 
78                 if(file_exists('custom/backup/include/utils/external_cache'))
79                 {
80                         rmdir_recursive('custom/backup/include/utils/external_cache');
81                         rmdir_recursive('custom/backup/include/utils');
82                         rmdir_recursive('custom/backup/include');
83                 }               
84         }
85         
86         public function testUpgradeRemoval()
87         {
88                 $instance = new UpgradeRemoval62xMock();
89                 $instance->processFilesToRemove($instance->getFilesToRemove(622));
90                 $this->assertTrue(!file_exists('include/utils/external_cache'), 'Assert that include/utils/external_cache was removed');
91                 $this->assertTrue(file_exists('custom/backup/include/utils/external_cache'), 'Assert that the custom/backup/include/utils/external_cache directory was created');               
92                 $this->assertTrue(!file_exists('include/JSON.js'), 'Assert that include/JSON.js file is removed');
93                 $this->assertTrue(file_exists('custom/backup/include/JSON.js'), 'Assert that include/JSON.js was moved to custom/backup/include/JSON.js');
94         }
95         
96 }
97
98 class UpgradeRemoval62xMock extends UpgradeRemoval
99 {
100         
101 public function getFilesToRemove($version)
102 {
103         $files = array();
104         $files[] = 'include/utils/external_cache';
105         $files[] = 'include/JSON.js';
106         return $files;
107 }
108
109 }
110 ?>