is_admin = true; if(file_exists('custom/modules/Cases/metadata/SearchFields.php')) { $this->hasCustomSearchFields = true; copy('custom/modules/Cases/metadata/SearchFields.php', 'custom/modules/Cases/metadata/SearchFields.php.bak'); unlink('custom/modules/Cases/metadata/SearchFields.php'); } } public function tearDown() { SugarTestUserUtilities::removeAllCreatedAnonymousUsers(); if($this->hasCustomSearchFields && file_exists('custom/modules/Cases/metadata/SearchFields.php.bak')) { copy('custom/modules/Cases/metadata/SearchFields.php.bak', 'custom/modules/Cases/metadata/SearchFields.php'); unlink('custom/modules/Cases/metadata/SearchFields.php.bak'); } else if(!$this->hasCustomSearchFields && file_exists('custom/modules/Cases/metadata/SearchFields.php')) { unlink('custom/modules/Cases/metadata/SearchFields.php'); } //Refresh vardefs for Cases to reset VardefManager::loadVardef('Cases', 'aCase', true); } /** * testActionAdvancedSearchViewSave * This method tests to ensure that custom SearchFields are created or updated when a search layout change is made */ public function testActionAdvancedSearchViewSave() { require_once('modules/ModuleBuilder/controller.php'); $mbController = new ModuleBuilderController(); $_REQUEST['view_module'] = 'Cases'; $_REQUEST['view'] = 'advanced_search'; $mbController->action_searchViewSave(); $this->assertTrue(file_exists('custom/modules/Cases/metadata/SearchFields.php')); require('custom/modules/Cases/metadata/SearchFields.php'); $this->assertTrue(isset($searchFields['Cases']['range_date_entered'])); $this->assertTrue(isset($searchFields['Cases']['range_date_entered']['enable_range_search'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified']['enable_range_search'])); } /** * testActionBasicSearchViewSave * This method tests to ensure that custom SearchFields are created or updated when a search layout change is made */ public function testActionBasicSearchViewSave() { require_once('modules/ModuleBuilder/controller.php'); $mbController = new ModuleBuilderController(); $_REQUEST['view_module'] = 'Cases'; $_REQUEST['view'] = 'basic_search'; $mbController->action_searchViewSave(); $this->assertTrue(file_exists('custom/modules/Cases/metadata/SearchFields.php')); require('custom/modules/Cases/metadata/SearchFields.php'); $this->assertTrue(isset($searchFields['Cases']['range_date_entered'])); $this->assertTrue(isset($searchFields['Cases']['range_date_entered']['enable_range_search'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified']['enable_range_search'])); } /** * testActionAdvancedSearchSaveWithoutAnyRangeSearchFields * One last test to check what would happen if we had a module that did not have any range search fields enabled */ public function testActionAdvancedSearchSaveWithoutAnyRangeSearchFields() { //Load the vardefs for the module to pass to TemplateRange VardefManager::loadVardef('Cases', 'aCase', true); global $dictionary; $vardefs = $dictionary['Case']['fields']; foreach($vardefs as $key=>$def) { if(!empty($def['enable_range_search'])) { unset($vardefs[$key]['enable_range_search']); } } require_once('modules/DynamicFields/templates/Fields/TemplateRange.php'); TemplateRange::repairCustomSearchFields($vardefs, 'Cases'); //In this case there would be no custom SearchFields.php file created $this->assertTrue(!file_exists('custom/modules/Cases/metadata/SearchFields.php')); //Yet we have the defaults set still in out of box settings require('modules/Cases/metadata/SearchFields.php'); $this->assertTrue(isset($searchFields['Cases']['range_date_entered'])); $this->assertTrue(isset($searchFields['Cases']['range_date_entered']['enable_range_search'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified'])); $this->assertTrue(isset($searchFields['Cases']['range_date_modified']['enable_range_search'])); } } ?>