]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - tests/modules/UpgradeWizard/SugarMerge/LeadsMergeTest.php
Added unit tests.
[Github/sugarcrm.git] / tests / modules / UpgradeWizard / SugarMerge / LeadsMergeTest.php
1 <?php
2 require_once 'include/dir_inc.php';
3
4 class LeadsMergeTest extends Sugar_PHPUnit_Framework_TestCase  {
5
6 var $merge;
7 var $has_dir;
8 var $modules;
9
10 function setUp() {
11    $this->modules = array('Leads');
12    $this->has_dir = array();
13    
14    foreach($this->modules as $module) {
15            if(!file_exists("custom/modules/{$module}/metadata")){
16                   mkdir_recursive("custom/modules/{$module}/metadata", true);
17            }
18            
19            if(file_exists("custom/modules/{$module}")) {
20                   $this->has_dir[$module] = true;
21            }
22            
23            $files = array('detailviewdefs', 'editviewdefs');
24            foreach($files as $file) {
25                    if(file_exists("custom/modules/{$module}/metadata/{$file}")) {
26                           copy("custom/modules/{$module}/metadata/{$file}.php", "custom/modules/{$module}/metadata/{$file}.php.bak");
27                    }
28                    
29                    if(file_exists("custom/modules/{$module}/metadata/{$file}.php.suback.php")) {
30                       copy("custom/modules/{$module}/metadata/{$file}.php.suback.php", "custom/modules/{$module}/metadata/{$file}.php.suback.bak");
31                    }
32                    
33                    if(file_exists("tests/modules/UpgradeWizard/SugarMerge/metadata_files/custom/modules/{$module}/metadata/{$file}.php")) {
34                           copy("tests/modules/UpgradeWizard/SugarMerge/metadata_files/custom/modules/{$module}/metadata/{$file}.php", "custom/modules/{$module}/metadata/{$file}.php");
35                    }
36            } //foreach
37    } //foreach
38 }
39
40
41 function tearDown() {
42
43    foreach($this->modules as $module) {
44            if(!$this->has_dir[$module]) {
45                   rmdir_recursive("custom/modules/{$module}");
46            }  else {
47                    $files = array('detailviewdefs', 'editviewdefs');
48                    foreach($files as $file) {
49                       if(file_exists("custom/modules/{$module}/metadata/{$file}.php.bak")) {
50                          copy("custom/modules/{$module}/metadata/{$file}.php.bak", "custom/modules/{$module}/metadata/{$file}.php");
51                      unlink("custom/modules/{$module}/metadata/{$file}.php.bak");
52                       } else if(file_exists("custom/modules/{$module}/metadata/{$file}.php")) {
53                          unlink("custom/modules/{$module}/metadata/{$file}.php");
54                       }
55                       
56                           if(file_exists("custom/modules/{$module}/metadata/{$module}.php.suback.bak")) {
57                          copy("custom/modules/{$module}/metadata/{$file}.php.suback.bak", "custom/modules/{$module}/metadata/{$file}.php.suback.php");
58                      unlink("custom/modules/{$module}/metadata/{$file}.php.suback.bak");
59                       } else if(file_exists("custom/modules/{$module}/metadata/{$file}.php.suback.php")) {
60                          unlink("custom/modules/{$module}/metadata/{$file}.php.suback.php");
61                       }  
62                    }
63            }
64    } //foreach
65 }
66
67 /*
68 function test_600_leads_detailview_merge() {            
69    $this->assertTrue(file_exists('custom/modules/Leads/metadata/detailviewdefs.php'));  
70    require('custom/modules/Leads/metadata/detailviewdefs.php');
71    $pre_upgrade_fields = array();
72    $pre_upgrade_panels = array();
73    foreach($viewdefs['Leads']['DetailView']['panels'] as $panel_key=>$panel) {
74           $pre_upgrade_panels[$panel_key] = $panel_key;
75           foreach($panel as $row) {
76                  foreach($row as $col_key=>$col) {
77                         $id = is_array($col) && isset($col['name']) ? $col['name'] : $col;
78                         if(!empty($id) && !is_array($id)) {
79                            $pre_upgrade_fields[$id] = $col;
80                         }
81                  }
82           }
83    }    
84         
85    require_once('modules/UpgradeWizard/SugarMerge/DetailViewMerge.php');
86    $this->merge = new DetailViewMerge();        
87    $this->merge->merge('Leads', 'tests/modules/UpgradeWizard/SugarMerge/metadata_files/551/modules/Leads/metadata/detailviewdefs.php', 'modules/Leads/metadata/detailviewdefs.php', 'custom/modules/Leads/metadata/detailviewdefs.php');
88    $this->assertTrue(file_exists('custom/modules/Leads/metadata/detailviewdefs.php.suback.php'));
89    require('custom/modules/Leads/metadata/detailviewdefs.php');
90    $fields = array();
91    $new_fields = array();
92    foreach($viewdefs['Leads']['DetailView']['panels'] as $panel) {
93           foreach($panel as $row) {
94                  foreach($row as $col_key=>$col) {
95                         $id = is_array($col) && isset($col['name']) ? $col['name'] : $col;
96                         $fields[$id] = $col;
97                     if(!empty($id) && !isset($pre_upgrade_fields[$id])) {
98                            $new_fields[$id] = $id;
99                         }                       
100                  }
101           }
102    }
103    
104    //echo var_export($new_fields, true);
105    //echo var_export($viewdefs['Leads']['DetailView']['panels'], true);
106    $this->assertTrue(count($new_fields) == 1 && isset($new_fields['website']), 'Assert that website was the only field added');
107    $this->assertTrue(isset($fields['website']), 'Assert that website field was added');
108    
109    $panel_keys = array_keys($viewdefs['Leads']['DetailView']['panels']);
110    $end_key = end($panel_keys);
111    
112    $end_row = end(array_keys($viewdefs['Leads']['DetailView']['panels'][$end_key]));
113    $this->assertTrue($viewdefs['Leads']['DetailView']['panels'][$end_key][$end_row][0] == 'website', 'Assert that website field was added to new space in new row');
114 }
115 */
116
117 function test_600_leads_editview_merge() {              
118         
119    $this->assertTrue(file_exists('custom/modules/Leads/metadata/editviewdefs.php'));    
120    require('custom/modules/Leads/metadata/editviewdefs.php');
121    $pre_upgrade_fields = array();
122    $pre_upgrade_panels = array();
123    foreach($viewdefs['Leads']['EditView']['panels'] as $panel_key=>$panel) {
124         foreach($panel as $row) {        
125                 foreach($row as $col_key=>$col) {
126                                 $id = is_array($col) && isset($col['name']) ? $col['name'] : $col;
127                                 if(!empty($id) && !is_array($id)) {
128                                    $pre_upgrade_fields[$id] = $col;
129                                 }
130                 }
131         }
132    }    
133         
134    require_once('modules/UpgradeWizard/SugarMerge/EditViewMerge.php');
135    $this->merge = new EditViewMerge();  
136    $this->merge->merge('Leads', 'tests/modules/UpgradeWizard/SugarMerge/metadata_files/551/modules/Leads/metadata/editviewdefs.php', 'modules/Leads/metadata/editviewdefs.php', 'custom/modules/Leads/metadata/editviewdefs.php');
137    $this->assertTrue(file_exists('custom/modules/Leads/metadata/editviewdefs.php.suback.php'));
138    require('custom/modules/Leads/metadata/editviewdefs.php');
139    $fields = array();
140    $new_fields = array();
141    foreach($viewdefs['Leads']['EditView']['panels'] as $panel) {
142           foreach($panel as $row) {
143                  foreach($row as $col_key=>$col) {
144                         $id = is_array($col) && isset($col['name']) ? $col['name'] : $col;
145                         
146                         if(empty($id) || !is_string($id)) {
147                            continue;
148                         }
149                         
150                         $fields[$id] = $col;
151                     if(!isset($pre_upgrade_fields[$id])) {
152                            $new_fields[$id] = $id;
153                         }                       
154                  }
155           }
156    }
157    
158    //echo var_export($new_fields, true);
159    //echo var_export($viewdefs['Leads']['EditView'], true);
160    $this->assertTrue(count($new_fields) == 1 && isset($new_fields['website']), 'Assert that website was the only field added');
161    $this->assertTrue(isset($fields['website']), 'Assert that website field was added');
162    $end = end(array_keys($viewdefs['Leads']['EditView']['panels']['lbl_description_information']));
163    $this->assertTrue(isset($viewdefs['Leads']['EditView']['panels']['lbl_description_information'][$end][0]) && ($viewdefs['Leads']['EditView']['panels']['lbl_description_information'][$end][0] == 'website'), 'Assert that website field was added to new space in row on lbl_description_information panel');
164 }
165
166
167 }
168
169 ?>