2 require_once 'include/dir_inc.php';
4 class LeadsMergeTest extends Sugar_PHPUnit_Framework_TestCase {
11 $this->modules = array('Leads');
12 $this->has_dir = array();
14 foreach($this->modules as $module) {
15 if(!file_exists("custom/modules/{$module}/metadata")){
16 mkdir_recursive("custom/modules/{$module}/metadata", true);
19 if(file_exists("custom/modules/{$module}")) {
20 $this->has_dir[$module] = true;
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");
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");
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");
43 foreach($this->modules as $module) {
44 if(!$this->has_dir[$module]) {
45 rmdir_recursive("custom/modules/{$module}");
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");
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");
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;
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');
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;
97 if(!empty($id) && !isset($pre_upgrade_fields[$id])) {
98 $new_fields[$id] = $id;
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');
109 $panel_keys = array_keys($viewdefs['Leads']['DetailView']['panels']);
110 $end_key = end($panel_keys);
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');
117 function test_600_leads_editview_merge() {
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;
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');
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;
146 if(empty($id) || !is_string($id)) {
151 if(!isset($pre_upgrade_fields[$id])) {
152 $new_fields[$id] = $id;
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');