]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/ModuleInstall/PackageManager/Bug44896Test.php
Release 6.5.10
[Github/sugarcrm.git] / tests / ModuleInstall / PackageManager / Bug44896Test.php
1 <?php
2 /*********************************************************************************
3  * SugarCRM Community Edition is a customer relationship management program developed by
4  * SugarCRM, Inc. Copyright (C) 2004-2013 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
39
40 require_once 'ModuleInstall/PackageManager/PackageManager.php';
41
42
43 class Bug44896Test extends Sugar_PHPUnit_Framework_TestCase
44 {
45
46     public function setUp()
47     {
48         if (!is_dir(dirname(Bug44896PackageManger::$location))) {
49             sugar_mkdir(dirname(Bug44896PackageManger::$location));
50         }
51         if (!is_dir(Bug44896PackageManger::$location))
52         {
53             sugar_mkdir(Bug44896PackageManger::$location);
54         }
55
56         $manage = new Bug44896PackageManger();
57         $manage->createTempModule();
58     }
59
60     public function tearDown()
61     {
62         if (is_dir(Bug44896PackageManger::$location)) {
63             rmdir_recursive(dirname(Bug44896PackageManger::$location));
64         }
65     }
66
67     public function testCheckedArrayKey()
68     {
69         $package = new PackageManager();
70         $returnJson = $package->getPackagesInStaging('module');
71         foreach ($returnJson as $module) {
72             $this->assertArrayHasKey('unFile', $module, 'Key "unFile" is missing in return array');
73         }
74     }
75
76 }
77
78 class Bug44896PackageManger
79 {
80         static $manifest_location = "upload/upgrades/module/Bug44896-manifest.php";
81     static $zip_location = "upload/upgrades/module/Bug44896.zip";
82     static $location = "upload/upgrades/module/";
83
84         public function __construct()
85     {
86            $this->manifest_content = <<<EOQ
87 <?php
88 \$manifest = array (
89          'acceptable_sugar_versions' =>
90           array (
91             '6.4.0'
92           ),
93           'acceptable_sugar_flavors' =>
94           array(
95             'ENT'
96           ),
97           'readme'=>'',
98           'key'=>'tf1',
99           'author' => '',
100           'description' => '',
101           'icon' => '',
102           'is_uninstallable' => false,
103           'name' => 'Bug44896',
104           'published_date' => '2010-10-20 22:10:01',
105           'type' => 'module',
106           'version' => '1287612601',
107           'remove_tables' => 'prompt',
108           );
109 \$installdefs = array (
110   'id' => 'asdfqq',
111   'copy' =>
112   array (
113      0 => array (
114       'from' => '<basepath>/Extension/modules/Cases/Ext/Vardefs/dummy_extension2.php',
115       'to' => 'custom/Extension/modules/Cases/Ext/Vardefs/dummy_extension2.php',
116     ),
117   ),
118 );
119
120 EOQ;
121         }
122
123         public function createTempModule()
124     {
125            if (!is_file(self::$manifest_location))
126        {
127             file_put_contents(self::$manifest_location, $this->manifest_content);
128             zip_files_list(self::$zip_location, array(self::$manifest_location));
129        }
130         }
131 }