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 ********************************************************************************/
38 require_once('install/install_utils.php');
39 require_once('modules/UpgradeWizard/uw_utils.php');
41 class Bug40129Test extends Sugar_PHPUnit_Framework_TestCase {
44 var $has_original_config_si_file;
45 var $current_working_dir;
47 public function setUp() {
51 $this->original_argv = $argv;
55 $this->current_working_dir = getcwd();
57 if(file_exists('config_si.php'))
59 $this->has_original_config_si_file = true;
60 copy('config_si.php', 'config_si.php.bug40129');
62 $this->has_original_config_si_file = false;
63 copy('config.php', 'config_si.php');
66 $sugar_config_si = array(
67 'setup_db_host_name' => 'localhost',
68 'setup_db_database_name' => 'pineapple',
69 'setup_db_drop_tables' => 0,
70 'setup_db_create_database' => 1,
71 'setup_db_pop_demo_data' => false,
72 'setup_site_admin_user_name' => 'admin',
73 'setup_site_admin_password' => 'a',
74 'setup_db_create_sugarsales_user' => 0,
75 'setup_db_admin_user_name' => 'root',
76 'setup_db_admin_password' => '',
77 'setup_db_sugarsales_user' => 'root',
78 'setup_db_sugarsales_password' => '',
79 'setup_db_type' => 'mysql',
80 'setup_license_key_users' => 100,
81 'setup_license_key_expire_date' => '2010-12-25',
82 'setup_license_key_oc_licences' => 1,
83 'setup_license_key' => 'internal sugar user 20100224',
84 'setup_site_url' => 'http://localhost/pineapple/build/rome/builds/ent/sugarcrm',
85 'setup_system_name' => 'pineapple',
86 'default_currency_iso4217' => 'USD',
87 'default_currency_name' => 'US Dollars',
88 'default_currency_significant_digits' => '2',
89 'default_currency_symbol' => '$',
90 'default_date_format' => 'Y-m-d',
91 'default_time_format' => 'H:i',
92 'default_decimal_seperator' => '.',
93 'default_export_charset' => 'ISO-8859-1',
94 'default_language' => 'en_us',
95 'default_locale_name_format' => 's f l',
96 'default_number_grouping_seperator' => ',',
97 'export_delimiter' => ',',
99 //These are the additional configuration values we are really testing
100 'disable_count_query' => true,
101 'external_cache_disabled_apc' => true,
102 'external_cache_disabled_zend' => true,
103 'external_cache_disabled_memcache' => true,
104 'external_cache_disabled' => true,
107 write_array_to_file("sugar_config_si", $sugar_config_si, 'config_si.php');
109 if(file_exists('config.php'))
111 copy('config.php', 'config.php.bug40129');
113 include 'config.php';
114 // remove items since merge_config_si_settings does not merge existing keys
115 foreach($sugar_config_si as $k => $v) {
116 unset($sugar_config[$k]);
118 write_array_to_file("sugar_config", $sugar_config, 'config.php');
123 public function tearDown() {
124 if(isset($this->original_argv))
127 $argv = $this->original_argv;
130 if(file_exists('config.php.bug40129'))
132 copy('config.php.bug40129', 'config.php');
133 unlink('config.php.bug40129');
136 if(file_exists($this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php.bug40129'))
138 if($this->has_original_config_si_file)
140 copy($this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php.bug40129', $this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php');
142 unlink($this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php');
144 unlink($this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php.bug40129');
147 unlink($this->current_working_dir . DIRECTORY_SEPARATOR . 'config_si.php');
153 public function test_silent_install() {
155 if(!file_exists('config.php'))
157 $this->markTestSkipped('Unable to locate config.php file. Skipping test.');
162 if(!file_exists('config_si.php'))
164 $this->markTestSkipped('Unable to locate config_si.php file. Skipping test.');
168 $merge_result = merge_config_si_settings(false, 'config.php', 'config_si.php');
170 include('config.php');
171 //echo var_export($sugar_config, true);
172 $this->assertEquals(true, $sugar_config['disable_count_query'], "Assert disable_count_query is set to true.");
173 $this->assertEquals(true, $sugar_config['external_cache_disabled_apc'], "Assert external_cache_disabled_apc is set to true.");
174 $this->assertEquals(true, $sugar_config['external_cache_disabled_zend'], "Assert external_cache_disabled_zend is set to true.");
175 $this->assertEquals(true, $sugar_config['external_cache_disabled_memcache'], "Assert external_cache_disabled_memcache is set to true.");
176 $this->assertEquals(true, $sugar_config['external_cache_disabled'], "Assert external_cache_disabled is set to true.");
178 $this->assertTrue(!isset($sugar_config['setup_site_admin_user_name']), "Assert setup_site_admin_user_name is not added to config.php.");
179 $this->assertTrue(!isset($sugar_config['setup_site_admin_password']), "Assert setup_site_admin_password is not added to config.php.");