Test Failed
Push — CI ( 0f01dd...c95a04 )
by Adam
55:13
created

EmailTemplateTest::testparse_email_templateAndParse_tracker_urls()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 26
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 26
rs 8.8571
c 1
b 0
f 1
cc 1
eloc 13
nc 1
nop 0
1
<?php
2
3
class EmailTemplateTest extends PHPUnit_Framework_TestCase {
4
5
6
	public function testEmailTemplate() {
7
8
		//execute the contructor and check for the Object type and  attributes
9
		$emailTemplate = new EmailTemplate();
10
		
11
		$this->assertInstanceOf('EmailTemplate',$emailTemplate);
12
		$this->assertInstanceOf('SugarBean',$emailTemplate);
13
			
14
		$this->assertAttributeEquals('EmailTemplates', 'module_dir', $emailTemplate);
15
		$this->assertAttributeEquals('EmailTemplate', 'object_name', $emailTemplate);
16
		$this->assertAttributeEquals('email_templates', 'table_name', $emailTemplate);
17
		
18
		$this->assertAttributeEquals(true, 'new_schema', $emailTemplate);
19
		
20
	}
21
22
	public function testgenerateFieldDefsJS() {
23
24
		error_reporting(E_ERROR | E_PARSE);
25
		
26
		
27
		$emailTemplate = new EmailTemplate();
28
29
		//execute the method and verify that it retunrs expected results
30
		$expected = 'var field_defs = {"Contacts":[{"name":"contact_name","value":"Name"},{"name":"contact_description","value":"Description"},{"name":"contact_salutation","value":"Salutation"},{"name":"contact_first_name","value":"First Name"},{"name":"contact_last_name","value":"Last Name"},{"name":"contact_full_name","value":"Name"},{"name":"contact_title","value":"Title"},{"name":"contact_photo","value":"Photo"},{"name":"contact_department","value":"Department"},{"name":"contact_phone_home","value":"Home"},{"name":"contact_email","value":"Any Email"},{"name":"contact_phone_mobile","value":"Mobile"},{"name":"contact_phone_work","value":"Office Phone"},{"name":"contact_phone_other","value":"Other Phone"},{"name":"contact_phone_fax","value":"Fax"},{"name":"contact_email1","value":"Email Address"},{"name":"contact_email2","value":"Other Email"},{"name":"contact_primary_address_street","value":"Primary Address Street"},{"name":"contact_primary_address_street_2","value":"Primary Address Street 2"},{"name":"contact_primary_address_street_3","value":"Primary Address Street 3"},{"name":"contact_primary_address_city","value":"Primary Address City"},{"name":"contact_primary_address_state","value":"Primary Address State"},{"name":"contact_primary_address_postalcode","value":"Primary Address Postal Code"},{"name":"contact_primary_address_country","value":"Primary Address Country"},{"name":"contact_alt_address_street","value":"Alternate Address Street"},{"name":"contact_alt_address_street_2","value":"Alternate Address Street 2"},{"name":"contact_alt_address_street_3","value":"Alternate Address Street 3"},{"name":"contact_alt_address_city","value":"Alternate Address City"},{"name":"contact_alt_address_state","value":"Alternate Address State"},{"name":"contact_alt_address_postalcode","value":"Alternate Address Postal Code"},{"name":"contact_alt_address_country","value":"Alternate Address Country"},{"name":"contact_assistant","value":"Assistant"},{"name":"contact_assistant_phone","value":"Assistant Phone"},{"name":"contact_email_addresses_non_primary","value":"Non Primary E-mails"},{"name":"contact_email_and_name1","value":"Name"},{"name":"contact_lead_source","value":"Lead Source"},{"name":"contact_birthdate","value":"Birthdate"},{"name":"contact_joomla_account_id","value":"LBL_JOOMLA_ACCOUNT_ID"},{"name":"contact_joomla_account_access","value":"LBL_JOOMLA_ACCOUNT_ACCESS"},{"name":"contact_portal_user_type","value":"Portal User Type"},{"name":"contact_event_status_name","value":"LBL_LIST_INVITE_STATUS_EVENT"},{"name":"contact_event_invite_id","value":"LBL_LIST_INVITE_STATUS"},{"name":"contact_event_accept_status","value":"LBL_LIST_ACCEPT_STATUS_EVENT"},{"name":"contact_event_status_id","value":"Accept Status"},{"name":"contact_jjwg_maps_address_c","value":""},{"name":"contact_jjwg_maps_geocode_status_c","value":""},{"name":"contact_jjwg_maps_lat_c","value":""},{"name":"contact_jjwg_maps_lng_c","value":""},{"name":"contact_refered_by","value":"Referred By"},{"name":"contact_lead_source_description","value":"Lead Source Description"},{"name":"contact_status","value":"Status"},{"name":"contact_status_description","value":"Status Description"},{"name":"contact_account_name","value":"Account Name"},{"name":"contact_account_id","value":"Account ID"},{"name":"contact_webtolead_email1","value":"Email Address"},{"name":"contact_webtolead_email2","value":"Other Email"},{"name":"contact_portal_name","value":"Portal Name"},{"name":"contact_portal_app","value":"Portal Application"},{"name":"contact_website","value":"Website"},{"name":"contact_tracker_key","value":"Tracker Key"}],"Accounts":[{"name":"account_name","value":"Name"},{"name":"account_description","value":"Description"},{"name":"account_account_type","value":"Type"},{"name":"account_industry","value":"Industry"},{"name":"account_annual_revenue","value":"Annual Revenue"},{"name":"account_phone_fax","value":"Fax"},{"name":"account_billing_address_street","value":"Billing Street"},{"name":"account_billing_address_street_2","value":"Billing Street 2"},{"name":"account_billing_address_street_3","value":"Billing Street 3"},{"name":"account_billing_address_street_4","value":"Billing Street 4"},{"name":"account_billing_address_city","value":"Billing City"},{"name":"account_billing_address_state","value":"Billing State"},{"name":"account_billing_address_postalcode","value":"Billing Postal Code"},{"name":"account_billing_address_country","value":"Billing Country"},{"name":"account_rating","value":"Rating"},{"name":"account_phone_office","value":"Office Phone"},{"name":"account_phone_alternate","value":"Alternate Phone"},{"name":"account_website","value":"Website"},{"name":"account_ownership","value":"Ownership"},{"name":"account_employees","value":"Employees"},{"name":"account_ticker_symbol","value":"Ticker Symbol"},{"name":"account_shipping_address_street","value":"Shipping Street"},{"name":"account_shipping_address_street_2","value":"Shipping Street 2"},{"name":"account_shipping_address_street_3","value":"Shipping Street 3"},{"name":"account_shipping_address_street_4","value":"Shipping Street 4"},{"name":"account_shipping_address_city","value":"Shipping City"},{"name":"account_shipping_address_state","value":"Shipping State"},{"name":"account_shipping_address_postalcode","value":"Shipping Postal Code"},{"name":"account_shipping_address_country","value":"Shipping Country"},{"name":"account_email1","value":"Email Address"},{"name":"account_email_addresses_non_primary","value":"Non Primary E-mails"},{"name":"account_parent_id","value":"Parent Account ID"},{"name":"account_sic_code","value":"SIC Code"},{"name":"account_email","value":"Any Email"},{"name":"account_jjwg_maps_address_c","value":""},{"name":"account_jjwg_maps_geocode_status_c","value":""},{"name":"account_jjwg_maps_lat_c","value":""},{"name":"account_jjwg_maps_lng_c","value":""}],"Users":[{"name":"contact_user_user_name","value":"User Name"},{"name":"contact_user_pwd_last_changed","value":"Password Last Changed"},{"name":"contact_user_first_name","value":"First Name"},{"name":"contact_user_last_name","value":"Last Name"},{"name":"contact_user_full_name","value":"Full Name"},{"name":"contact_user_name","value":"Full Name"},{"name":"contact_user_description","value":"Description"},{"name":"contact_user_title","value":"Title"},{"name":"contact_user_photo","value":"Photo"},{"name":"contact_user_department","value":"Department"},{"name":"contact_user_phone_home","value":"Home Phone"},{"name":"contact_user_phone_mobile","value":"Mobile"},{"name":"contact_user_phone_work","value":"Work Phone"},{"name":"contact_user_phone_other","value":"Other Phone"},{"name":"contact_user_phone_fax","value":"Fax"},{"name":"contact_user_status","value":"Status"},{"name":"contact_user_address_street","value":"Address Street"},{"name":"contact_user_address_city","value":"Address City"},{"name":"contact_user_address_state","value":"Address State"},{"name":"contact_user_address_country","value":"Address Country"},{"name":"contact_user_address_postalcode","value":"Address Postal Code"},{"name":"contact_user_usertype","value":"User Type"},{"name":"contact_user_employee_status","value":"Employee Status"},{"name":"contact_user_messenger_id","value":"IM Name"},{"name":"contact_user_messenger_type","value":"IM Type"},{"name":"contact_user_email1","value":"Email Address"},{"name":"contact_user_email_link_type","value":"Email Client"},{"name":"contact_user_securitygroup_noninherit_id","value":"LBL_securitygroup_noninherit_id"}]};';
31
		$actual = $emailTemplate->generateFieldDefsJS();
32
		//$this->assertSame($expected,$actual);
33
34
		$this->assertGreaterThan(0 , strlen($actual));
35
		
36
	}
37
38
	public function testget_summary_text() {
39
40
		$emailTemplate = new EmailTemplate();
41
		
42
		//test without setting name
43
		$this->assertEquals(Null,$emailTemplate->get_summary_text());
44
		
45
		//test with name set
46
		$emailTemplate->name = "test";
47
		$this->assertEquals('test',$emailTemplate->get_summary_text());		
48
		
49
	}
50
51
	public function testcreate_export_query() {
52
53
		$emailTemplate = new EmailTemplate();
54
		
55
		//test with empty string params
56
		$expected = " SELECT  email_templates.*  , jt0.user_name assigned_user_name , jt0.created_by assigned_user_name_owner  , 'Users' assigned_user_name_mod FROM email_templates   LEFT JOIN  users jt0 ON email_templates.assigned_user_id=jt0.id AND jt0.deleted=0\n\n AND jt0.deleted=0 where email_templates.deleted=0";
57
		$actual = $emailTemplate->create_export_query('','');
58
		$this->assertSame($expected,$actual);
59
60
	
61
		//test with valid string params
62
		$expected = " SELECT  email_templates.*  , jt0.user_name assigned_user_name , jt0.created_by assigned_user_name_owner  , 'Users' assigned_user_name_mod FROM email_templates   LEFT JOIN  users jt0 ON email_templates.assigned_user_id=jt0.id AND jt0.deleted=0\n\n AND jt0.deleted=0 where (email_templates.name=\"\") AND email_templates.deleted=0";
63
		$actual = $emailTemplate->create_export_query('email_templates.id','email_templates.name=""');
64
		$this->assertSame($expected,$actual);
65
		
66
	}
67
68
	public function testfill_in_additional_list_fields() {
69
70
		$emailTemplate = new EmailTemplate();
71
		
72
		//execute the method and test if it works and does not throws an exception.
73
		try {
74
			$emailTemplate->fill_in_additional_list_fields();
75
			$this->assertTrue(true);
76
		}
77
		catch (Exception $e) {
78
			$this->fail();
79
		}
80
		
81
	}
82
83
	public function testfill_in_additional_detail_fields() {
84
85
		$emailTemplate = new EmailTemplate();
86
87
		//test with attributes preset and verify template variables are set accordingly
88
		
89
		$emailTemplate->created_by = 1;
90
		$emailTemplate->modified_user_id = 1;
91
		$emailTemplate->assigned_user_id = 1;
92
		$emailTemplate->body_html = "<b>some html text</b>";
93
		
94
95
		$emailTemplate->fill_in_additional_detail_fields();
96
		
97
		$this->assertEquals("Administrator", $emailTemplate->created_by_name);
98
		$this->assertEquals("Administrator", $emailTemplate->modified_by_name);
99
		$this->assertEquals("Administrator", $emailTemplate->assigned_user_name);
100
		$this->assertEquals("some html text", $emailTemplate->body);
101
		
102
	}
103
104
	public function testfill_in_additional_parent_fields() {
105
106
		$emailTemplate = new EmailTemplate();
107
		
108
		//execute the method and test if it works and does not throws an exception.
109
		try {
110
			$emailTemplate->fill_in_additional_parent_fields();
111
			$this->assertTrue(true);
112
		}
113
		catch (Exception $e) {
114
			$this->fail();
115
		}
116
		
117
	}
118
119
	public function testget_list_view_data() {
120
121
		$emailTemplate = new EmailTemplate();
122
		
123
		//execute the method and verify that it retunrs expected results
124
		$expected = array (
125
				'DELETED' => 0,
126
				'DATE_MODIFIED' => false,
127
		);
128
		
129
		$actual = $emailTemplate->get_list_view_data();
130
		$this->assertSame($expected,$actual);	
131
		
132
	}
133
134
135
	public function testparse_email_templateAndParse_tracker_urls() {
136
137
		$emailTemplate = new EmailTemplate();
138
		
139
		
140
		//test parse_email_template
141
		$account = new Account();
142
		$macro_nv = array();
143
		
144
		$expected = array(
145
  					"subject"=> "test subject", "body_html"=>"test html", "body"=>"test body text"
146
					);
147
		$actual = $emailTemplate->parse_email_template(array('subject'=>"test subject",'body_html'=>"test html",'body'=>"test body text"),'Accounts', $account, $macro_nv );
148
		$this->assertSame($expected, $actual);
149
150
		
151
		
152
		//test Parse_tracker_urls
153
		$tracker_url_template= 'localhost/index.php?entryPoint=campaign_trackerv2&track=%s&identifier=tracker_key';
154
		$removeme_url_template= 'localhost/index.php?entryPoint=removeme&identifier=tracker_key';
155
		$tracker_urls = array();
156
		 
157
		$result = $emailTemplate->parse_tracker_urls($actual, $tracker_url_template, $tracker_urls, $removeme_url_template);
158
		$this->assertSame($expected, $result);
159
		
160
	}
161
162
163
    public function test_convertToType() {
164
165
    	$emailTemplate = new EmailTemplate();
166
    	
167
    	$this->assertEquals( 10 ,$emailTemplate->_convertToType('float',10));
168
    	$this->assertEquals( "test text" ,$emailTemplate->_convertToType('text',"test text"));
169
    	$this->assertEquals( "$10.00" ,$emailTemplate->_convertToType('currency',10));
170
    	
171
    }
172
173
174
	public function test_parseUserValues() 
175
	{
176
		$emailTemplate = new EmailTemplate();
177
		$user = new User(1);
178
		$repl_arr = array("contact_user_name"=>"");
179
		
180
		//execute the method and verify that it retunrs expected results
181
		
182
		$expected = array (
183
            'contact_user_name' => '',
184
                'contact_user_id' => '',
185
                'contact_user_user_name' => '',
186
                'contact_user_user_hash' => '',
187
                'contact_user_system_generated_password' => '',
188
                'contact_user_pwd_last_changed' => '',
189
                'contact_user_authenticate_id' => '',
190
                'contact_user_sugar_login' => '1',
191
                'contact_user_first_name' => '',
192
                'contact_user_last_name' => '',
193
                'contact_user_full_name' => '',
194
                'contact_user_is_admin' => '0',
195
                'contact_user_external_auth_only' => '0',
196
                'contact_user_receive_notifications' => '1',
197
                'contact_user_description' => '',
198
                'contact_user_date_entered' => '',
199
                'contact_user_date_modified' => '',
200
                'contact_user_title' => '',
201
                'contact_user_photo' => '',
202
                'contact_user_department' => '',
203
                'contact_user_phone_home' => '',
204
                'contact_user_phone_mobile' => '',
205
                'contact_user_phone_work' => '',
206
                'contact_user_phone_other' => '',
207
                'contact_user_phone_fax' => '',
208
                'contact_user_status' => '',
209
                'contact_user_address_street' => '',
210
                'contact_user_address_city' => '',
211
                'contact_user_address_state' => '',
212
                'contact_user_address_country' => '',
213
                'contact_user_address_postalcode' => '',
214
                'contact_user_UserType' => '',
215
                'contact_user_deleted' => 0,
216
                'contact_user_portal_only' => '0',
217
                'contact_user_show_on_employees' => '1',
218
                'contact_user_employee_status' => '',
219
                'contact_user_messenger_id' => '',
220
                'contact_user_messenger_type' => '',
221
                'contact_user_calls' => '',
222
                'contact_user_meetings' => '',
223
                'contact_user_contacts_sync' => '',
224
                'contact_user_reports_to_id' => '',
225
                'contact_user_reports_to_link' => '',
226
                'contact_user_reportees' => '',
227
                'contact_user_email1' => '',
228
                'contact_user_email_addresses' => '',
229
                'contact_user_email_addresses_primary' => '',
230
                'contact_user_email_link_type' => '',
231
                'contact_user_aclroles' => '',
232
                'contact_user_is_group' => '',
233
                'contact_user_accept_status_id' => '',
234
                'contact_user_accept_status_name' => '',
235
                'contact_user_prospect_lists' => '',
236
                'contact_user_emails_users' => '',
237
                'contact_user_holidays' => '',
238
                'contact_user_eapm' => '',
239
                'contact_user_oauth_tokens' => '',
240
                'contact_user_project_resource' => '',
241
                'contact_user_project_users_1' => '',
242
                'contact_user_SecurityGroups' => '',
243
                'contact_user_securitygroup_noninherit_id' => '',
244
                'contact_user_securitygroup_noninheritable' => '',
245
                'contact_user_securitygroup_primary_group' => '',
246
			);
247
		
248
		$actual = $emailTemplate->_parseUserValues($repl_arr, $user);
249
		$this->assertSame($expected, $actual);
250
		
251
	}
252
253
254
	public function testparse_template_bean() 
255
	{
256
		
257
		$emailTemplate = new EmailTemplate();
258
		$contact = new Contact();
259
		$user = new User(1);
260
		$account = new Account();
261
		
262
		$contact->name = "test";
263
		$account->name = "test";
264
		
265
		//test with empty string
266
		$actual = $emailTemplate->parse_template_bean("", "Contacts", $contact);
267
		$this->assertEquals("", $actual);
268
		
269
		//test with valid string
270
		$actual = $emailTemplate->parse_template_bean("test", "Users", $user );
271
		$this->assertEquals("test", $actual);
272
		
273
		//test with empty string and different module
274
		$actual = $emailTemplate->parse_template_bean("", "Accounts", $account );
275
		$this->assertEquals("", $actual);
276
		
277
	}
278
279
280
	public function testparse_template() 	
281
	{
282
		$emailTemplate = new EmailTemplate();
283
		$bean_arr = array("Users" => 1, "Leads" => 1);
284
		
285
		
286
		//test with empty string
287
		$result = $emailTemplate->parse_template("", $bean_arr);
288
		$this->assertEquals("",$result);
289
		
290
		
291
		//test with valid string
292
		$result = $emailTemplate->parse_template("some value", $bean_arr);
293
		$this->assertEquals("some value",$result);
294
		
295
	}
296
297
	public function testbean_implements() 
298
	{
299
		$emailTemplate = new EmailTemplate();
300
		
301
		$this->assertEquals(false, $emailTemplate->bean_implements('')); //test with blank value
302
		$this->assertEquals(false, $emailTemplate->bean_implements('test')); //test with invalid value
303
		$this->assertEquals(true, $emailTemplate->bean_implements('ACL')); //test with valid value
304
		
305
	}
306
307
    public function testgetTypeOptionsForSearch()
308
	{
309
		//execute the method and verify that it retunrs expected results
310
		$expected = array (
311
				'' => '',
312
				'campaign' => 'Campaign',
313
				'email' => 'Email',
314
		);
315
		$actual = EmailTemplate::getTypeOptionsForSearch();
316
		$this->assertSame($expected,$actual);			
317
318
    }
319
320
	public function testis_used_by_email_marketing() 
321
	{
322
		$emailTemplate = new EmailTemplate();
323
		
324
		//test without id attribute
325
		$this->assertEquals(false,$emailTemplate->is_used_by_email_marketing());
326
		
327
		
328
		//test with id attribute
329
		$emailTemplate->id = 1;
330
		$this->assertEquals(false,$emailTemplate->is_used_by_email_marketing());
331
	}
332
333
    public function testcleanBean()
334
    {
335
336
    	$emailTemplate = new EmailTemplate();
337
    	
338
    	//test without body_html attribute
339
    	$emailTemplate->cleanBean();
340
    	$this->assertEquals("",$emailTemplate->body_html);
341
    	
342
    	
343
    	//test with body_html attribute
344
    	$emailTemplate->body_html = "<h1>text</h1>";
345
    	$emailTemplate->cleanBean();
346
    	$this->assertEquals("&lt;h1&gt;text&lt;/h1&gt;",$emailTemplate->body_html);
347
    
348
    }
349
350
}
351
?>
352