awetestlib 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,66 @@
1
+ module CreateZohoAccount1
2
+
3
+ def run_test(browser)
4
+ create_account_scenario_1(browser)
5
+ create_account_scenario_2(browser)
6
+ end
7
+
8
+ def create_account_scenario_1(browser)
9
+ create_account(browser)
10
+ create_blank_new_account(browser)
11
+ export_accounts(browser)
12
+ import_accounts(browser)
13
+ signout(browser)
14
+ end
15
+
16
+ def create_account_scenario_2(browser)
17
+ create_blank_new_account(browser)
18
+ reports(browser)
19
+ clone_account(browser)
20
+ pagination(browser)
21
+ verify_accounts(browser)
22
+ search_accounts(browser)
23
+ signout(browser)
24
+ end
25
+
26
+ def create_account(browser)
27
+ mark_testlevel('Create New Account', 1)
28
+ sleep_for(3)
29
+ click_text(browser, 'New Account')
30
+ wait_until_ready(browser, :name, /Account Name/)
31
+ set_textfield_by_name(browser, /Account Name/, "Test Account #1")
32
+ set_textfield_by_name(browser, /Phone/, "415-333-2311")
33
+
34
+ test_account_lookup(browser) #In Project Util
35
+ browser = attach_browser_by_url(browser, /ShowHomePage/)
36
+ select_option_by_name_and_option_text(browser, /Account Type/, "Analyst")
37
+ select_option_by_name_and_option_text(browser, /Industry/, "ASP")
38
+ set_textfield_by_name(browser, /Billing Street/, "201 Main St")
39
+ set_textfield_by_name(browser, /Billing City/, "San Francisco")
40
+ set_textfield_by_name(browser, /Billing State/, "CA")
41
+ set_textfield_by_name(browser, /Billing Code/, "94102")
42
+ set_textfield_by_name(browser, /Billing Country/, "USA")
43
+ #browser.cell(:text, 'Billing to Shipping').click
44
+ click(browser, :cell, :text, 'Billing to Shipping')
45
+ click_button_by_value(browser, 'Save')
46
+
47
+ wait_until_by_text(browser, 'Test Account #1')
48
+ validate_text(browser, "Test Account #1")
49
+ validate_text(browser, "random")
50
+ end
51
+
52
+ def test_account_lookup(browser)
53
+ mark_testlevel('Account Lookup', 1)
54
+ click(browser, :image, :title, 'Account Name Lookup')
55
+ sleep_for(5)
56
+ popup = attach_browser_by_url(browser, /Parent Account/)
57
+ set_textfield_by_name(popup, 'fldValue', 'test account #00')
58
+ click_button_by_value(popup, 'Go')
59
+ click(popup, :link, :text, 'Test Account #007')
60
+ # TODO: This next line is currently required for Firefox and Chrome to return to original browser window browser = attach_browser_by_url(browser, /ShowHomePage/)
61
+ browser = attach_browser_by_url(browser, /ShowHomePage/)
62
+ validate_textfield_value_by_name(browser, /Parent Account/, 'Test Account #007')
63
+ end
64
+
65
+
66
+ end
@@ -0,0 +1,71 @@
1
+ module CreateZohoAccount2
2
+
3
+ def run_test(browser)
4
+ create_account_scenario_1(browser)
5
+ create_account_scenario_2(browser)
6
+ end
7
+
8
+ def create_account_scenario_1(browser)
9
+ mark_testlevel("#{__method__.to_s.titleize}", 1)
10
+ create_account(browser)
11
+ create_blank_new_account(browser)
12
+ export_accounts(browser)
13
+ import_accounts(browser)
14
+ signout(browser)
15
+ end
16
+
17
+ def create_account_scenario_2(browser)
18
+ mark_testlevel("#{__method__.to_s.titleize}", 1)
19
+ create_blank_new_account(browser)
20
+ reports(browser)
21
+ clone_account(browser)
22
+ pagination(browser)
23
+ verify_accounts(browser)
24
+ search_accounts(browser)
25
+ signout(browser)
26
+ end
27
+
28
+ def create_account(browser)
29
+ mark_testlevel("#{__method__.to_s.titleize}", 1)
30
+ sleep_for(3)
31
+ click_text(browser, 'New Account')
32
+ wait_until_ready(browser, :name, /Account Name/)
33
+ set_textfield_by_name(browser, /Account Name/, @var['account_name'], "*** cza007 ***")
34
+ set_textfield_by_name(browser, /Phone/, @var['account_phone'], "*** cza007 ***")
35
+
36
+ test_account_lookup(browser)
37
+ browser = attach_browser_by_url(browser, /ShowHomePage/)
38
+
39
+ select_option_by_name_and_option_text(browser, /Account Type/, @var['account_type'], "*** cza003a ***")
40
+ select_option_by_name_and_option_text(browser, /Industry/, @var['account_industry'], "*** cza003b ***")
41
+ set_textfield_by_name(browser, /Billing Street/, @var['account_billing_street'], "*** cza003c ***")
42
+ set_textfield_by_name(browser, /Billing City/, @var['account_billing_city'], "*** cza003d ***")
43
+ set_textfield_by_name(browser, /Billing State/, @var['account_billing_state'], "*** cza003e ***")
44
+ set_textfield_by_name(browser, /Billing Code/, @var['account_billing_zipcode'], "*** cza003f ***")
45
+ set_textfield_by_name(browser, /Billing Country/, @var['account_country'], "*** cza003g ***")
46
+
47
+ #browser.cell(:text, 'Billing to Shipping').click
48
+ click(browser, :cell, :text, 'Billing to Shipping', "*** cza004 ***")
49
+ click_button_by_value(browser, 'Save')
50
+
51
+ wait_until_by_text(browser, @var['account_name'])
52
+ validate_text(browser, @var['account_name'], "*** cza005 ***")
53
+ validate_text(browser, "random", "*** cza006 ***")
54
+ end
55
+
56
+ def test_account_lookup(browser)
57
+ mark_testlevel("#{__method__.to_s.titleize}", 1)
58
+ click(browser, :image, :title, 'Account Name Lookup')
59
+ #sleep_for(5)
60
+ popup = attach_browser_by_url(browser, /Parent Account/, "*** cza001 ***")
61
+ if popup
62
+ set_textfield_by_name(popup, 'fldValue', @var['parent_account_pattern'])
63
+ click_button_by_value(popup, 'Go')
64
+ click(popup, :link, :text, @var['parent_account'])
65
+ # TODO: This next line is currently required for Firefox and Chrome to return to original browser window
66
+ browser = attach_browser_by_url(browser, /ShowHomePage/)
67
+ validate_textfield_value_by_name(browser, /Parent Account/, @var['parent_account'], "*** cza002 ***")
68
+ end
69
+ end
70
+
71
+ end
data/test/demo.rb ADDED
@@ -0,0 +1,86 @@
1
+ module Demo
2
+ def run
3
+ browser = open_browser
4
+ login(browser)
5
+ test_zoho(browser)
6
+ end
7
+
8
+ def test_account_lookup(browser)
9
+ mark_testlevel('Account Lookup', 1)
10
+ browser.image(:title, 'Account Name Lookup').click
11
+ sleep_for(5)
12
+ popup = attach_browser_by_url(browser, /Parent/)
13
+ # TODO: This should be transparent:
14
+ if @browserAbbrev == "FF"
15
+ popup = browser
16
+ end
17
+ set_textfield_by_name(popup, 'fldValue', 'test')
18
+ click_button_by_value(popup, 'Go')
19
+ popup.link(:text, /Test Account/).click
20
+ #browser = attach_browser_by_url(browser, /ShowHomePage/)
21
+ #validate_textfield_value_by_name(browser, /Parent Account/, 'Test Account #007')
22
+ end
23
+
24
+ def login(browser)
25
+ mark_testlevel('Zoho Login', 2)
26
+ user = "joeklienwatir@gmail.com" #@zohologin.cell(2,2)
27
+ password = "watir001" #@zohologin.cell(2,3)
28
+ go_to_url(browser, "https://accounts.zoho.com/login?serviceurl=https://www.zoho.com/&hide_signup=true&css=https://www.zoho.com/css/login.css")
29
+ #browser.goto("https://accounts.zoho.com/login?serviceurl=https://www.zoho.com/&hide_signup=true&css=https://www.zoho.com/css/login.css")
30
+ set_textfield_by_name(browser, 'lid', user)
31
+ set_textfield_by_name(browser, 'pwd', password)
32
+ click_button_by_value(browser, 'Sign In')
33
+ go_to_url(browser, url = 'https://crm.zoho.com/crm/ShowHomePage.do')
34
+ validate_text(browser, 'Welcome joeklienwatir at Software')
35
+ #click_text(browser, 'Old Version')
36
+
37
+ end
38
+
39
+ def navigate_to_crm(browser)
40
+ mark_testlevel('Navigate to CRM', 1)
41
+ click_text(browser, 'CRM')
42
+ end
43
+
44
+ def test_zoho(browser)
45
+ #get_variables("#{@myRoot}/zoho_variables.xls")
46
+ navigate_to_crm(browser) #In Project Util
47
+ create_account(browser)
48
+ #create_blank_new_account(browser)
49
+ #export_accounts(browser)
50
+ #import_accounts(browser)
51
+ #signout(browser)
52
+ end
53
+
54
+ def create_account(browser)
55
+ mark_testlevel('Create New Account', 3)
56
+ sleep_for(3)
57
+ click_link(browser, 'Accounts')
58
+ sleep_for(3)
59
+ click_button_by_value(browser, 'New Account')
60
+ sleep_for(5)
61
+ # Watir::Waiter::wait_until { browser.text_field(:name, /Account Name/).exist? }
62
+ # Watir::Waiter::wait_until { browser.text_field(:name, /Account Name/).visible? }
63
+ set_textfield_by_name(browser, /Account Name/, "Test Account #1")
64
+ set_textfield_by_name(browser, /Phone/, "415-333-2311")
65
+
66
+ test_account_lookup(browser) #In Project Util
67
+ browser = attach_browser_by_url(browser, /ShowHomePage/)
68
+ select_option_by_name_and_option_text(browser, /Account Type/, "Analyst")
69
+ select_option_by_name_and_option_text(browser, /Industry/, "ASP")
70
+ set_textfield_by_name(browser, /Billing Street/, "201 Main St")
71
+ set_textfield_by_name(browser, /Billing City/, "San Francisco")
72
+ set_textfield_by_name(browser, /Billing State/, "CA")
73
+ set_textfield_by_name(browser, /Billing Code/, "94102")
74
+ set_textfield_by_name(browser, /Billing Country/, "USA")
75
+ #browser.cell(:text, 'Billing to Shipping').click
76
+ click_button_by_id(browser, 'copyAddress')
77
+ sleep_for(5)
78
+ click_button_by_value(browser, 'Save')
79
+
80
+ sleep_for(8)
81
+ #wait_until_by_text(browser, 'Test Account #1')
82
+ validate_text(browser, "Test Account #1")
83
+ validate_text(browser, "random")
84
+ end
85
+
86
+ end
@@ -0,0 +1,16 @@
1
+ module GoogleSearch1
2
+
3
+ def run
4
+ mark_testlevel("Awetestlib example: Google Search 1", 1)
5
+ browser = open_browser
6
+ go_to_url(browser, 'www.google.com')
7
+ sleep_for(3)
8
+ click_text(browser, 'News')
9
+ set_textfield_by_id(browser, 'gbqfq', '3qilabs')
10
+ #click(browser, :button, :id, 'gbqfb')
11
+ validate_text(browser, '3qilabs')
12
+ validate_text(browser, 'Stories')
13
+ logout(browser)
14
+ end
15
+
16
+ end
@@ -0,0 +1,19 @@
1
+ module GoogleSearch2
2
+
3
+ def run
4
+ mark_testlevel("Awetestlib example: Google Search 2", 9)
5
+ browser = open_browser
6
+ go_to_url(browser, 'www.google.com')
7
+ sleep_for(3)
8
+ run_test(browser)
9
+ end
10
+
11
+ def run_test(browser)
12
+ mark_testlevel("Search for 3qilabs in News", 8)
13
+ click_text(browser, 'News')
14
+ set_textfield_by_id(browser, 'gbqfq', '3qilabs')
15
+ validate_text(browser, '3qilabs', '*** gs2 001 ***')
16
+ validate_text(browser, 'Stories', '*** gs2 002 ***')
17
+ end
18
+
19
+ end
data/test/zoho_util.rb ADDED
@@ -0,0 +1,485 @@
1
+ module ZohoUtil
2
+
3
+ def run
4
+ if @xls_path
5
+ get_variables(@xls_path, :role)
6
+ @login.each_key do |key|
7
+ if @login[key]['enabled'] == 'Y'
8
+ @user = @login[key]['userid']
9
+ @pass = @login[key]['password']
10
+ @role = @login[key]['role']
11
+ @url1 = @login[key]['url']
12
+ debug_to_report("@user: #{@user}, @pass: #{@pass}, @role: #{@role} (#{__LINE__})")
13
+ break
14
+ end
15
+ end
16
+ else
17
+ @user = "joeklienwatir@gmail.com"
18
+ @pass = 'watir001'
19
+ @url1 = "https://accounts.zoho.com/login?serviceurl=https://www.zoho.com/&hide_signup=true&css=https://www.zoho.com/css/login.css"
20
+ end
21
+
22
+ home_url = 'https://crm.zoho.com/crm/ShowHomePage.do'
23
+ validation = 'Welcome joeklienwatir at Software'
24
+
25
+ browser = open_browser
26
+ go_to_url(browser, @url1)
27
+ zoho_login(browser, @user, @pass, home_url, validation)
28
+ run_test(browser)
29
+ logout(browser)
30
+
31
+ rescue
32
+ fatal_to_log("#{@myName} '#{$!}'")
33
+ browser.close
34
+ raise
35
+ end
36
+
37
+ def zoho_login(browser, userid, password, url, validation = 'Welcome joeklienwatir at Software')
38
+ mark_testlevel("#{__method__.to_s.titleize}", 8)
39
+ set_textfield_by_name(browser, 'lid', userid)
40
+ set_textfield_by_name(browser, 'pwd', password)
41
+ click_button_by_value(browser, 'Sign In')
42
+ go_to_url(browser, url)
43
+ validate_text(browser, validation)
44
+ end
45
+
46
+ def navigate_to_crm(browser)
47
+ mark_testlevel("#{__method__.to_s.titleize}", 3)
48
+ click_text(browser, 'CRM')
49
+ end
50
+
51
+ def navigate_to_project(browser)
52
+ mark_testlevel("#{__method__.to_s.titleize}", 3)
53
+ click_text(browser, 'Projects')
54
+ end
55
+
56
+ def signout(browser)
57
+ mark_testlevel("#{__method__.to_s.titleize}", 8)
58
+ click_text(browser, /Sign Out/)
59
+ end
60
+
61
+ def create_blank_new_account(browser)
62
+ mark_testlevel("#{__method__.to_s.titleize}", 3)
63
+ click_text(browser, 'New Account')
64
+ validate_text(browser, 'Create Account')
65
+ click_button_by_value(browser, 'Save')
66
+ sleep(1)
67
+ close_popup('Message from webpage')
68
+ end
69
+
70
+ def export_accounts(browser)
71
+ mark_testlevel("#{__method__.to_s.titleize}", 5)
72
+ click_text(browser, 'Setup')
73
+ sleep_for(2)
74
+ click_text(browser, 'Export Data')
75
+ sleep_for(2)
76
+ select_option_by_name_and_option_value(browser, 'module', 'Accounts')
77
+ if @use_sikuli
78
+ run_sikuli_script("exportaccounts")
79
+ close_popup('File Download')
80
+ else
81
+ #click_button_no_wait_by_value(browser, 'Export')
82
+ # Make sure popups are allowed by browser
83
+
84
+ mark_testlevel("#{__method__.to_s.titleize} Download", 4)
85
+ filename = 'Account_Export.cvs'
86
+ filepath = "#{@myRoot}/#{filename}"
87
+ filepath.gsub!('/', '\\')
88
+ message_to_log("#{filepath.to_s}")
89
+ if File.exist?(filepath)
90
+ File.delete(filepath)
91
+ end
92
+ sleep(3)
93
+
94
+ click_button_no_wait_by_value(browser, 'Export')
95
+ sleep_for(5)
96
+ close_popup('Message from webpage', 'Are you sure?')
97
+ sleep_for(1)
98
+
99
+ click_button_no_wait_by_value(browser, 'Export')
100
+ sleep_for(3)
101
+ close_popup('Message from webpage', 'Are you sure?')
102
+ sleep_for(3)
103
+
104
+ save_file1(filepath)
105
+ sleep_for(4)
106
+
107
+ #if popup_exists?(popup, 'File Download')
108
+ # save_file(filepath)
109
+ # click_popup_button('File Download', 'Save')
110
+ # file_download(browser)
111
+ # save_file_orig(filepath)
112
+ # close_popup_by_button_title(popup, 'Close', 'Download Complete')
113
+ #end
114
+ end
115
+ end
116
+
117
+ def import_accounts(browser)
118
+ mark_testlevel("#{__method__.to_s.titleize}", 5)
119
+ #click_class(browser, 'menuOn', 'Accounts')
120
+ click_text(browser, 'Accounts')
121
+ click_text(browser, 'Import Accounts')
122
+ click(browser, :button, :value, 'Import Accounts')
123
+ validate_text(browser, 'Import Accounts')
124
+ #click_button_by_name(browser, 'theFile')
125
+ #file_upload(filepath)
126
+ #click_button_by_class(browser, 'button')
127
+ #select_option_by_name_and_option_value(browser, 'CrmAccount:ACCOUNTNAME', 'Account Name')
128
+ #click_button_by_class(browser, 'button')
129
+ #click_button_by_value(browser, 'Import')
130
+ #validate_no_text(browser, '0', 'No of Records added:')
131
+ end
132
+
133
+ def verify_accounts(browser)
134
+ mark_testlevel("#{__method__.to_s.titleize}", 5)
135
+ click_text(browser, 'Accounts')
136
+ validate_text(browser, '<No Accounts found >')
137
+ #select_option_by_class_and_option_value(browser, 'select', 'My Accounts')
138
+ #sleep(1)
139
+ #select_option_by_class_and_option_value(browser, 'select', 'New This Week')
140
+ #sleep(1)
141
+ #select_option_by_class_and_option_value(browser, 'select', 'New Last Week')
142
+ #sleep(1)
143
+ #select_option_by_class_and_option_value(browser, 'select', 'Unread Accounts')
144
+ #sleep(1)
145
+ end
146
+
147
+ def reports(browser)
148
+ mark_testlevel("#{__method__.to_s.titleize}", 6)
149
+ click_text(browser, 'Reports')
150
+ validate_text(browser, 'Recently Accessed Reports')
151
+ validate_text(browser, '<No Recent Reports Found >')
152
+ end
153
+
154
+ def search_accounts(browser)
155
+ mark_testlevel("#{__method__.to_s.titleize}", 6)
156
+ select_option_by_name_and_option_value(browser, 'searchCategory', 'Accounts')
157
+ set_textfield_by_id(browser, 'searchword', 'Test Account #1')
158
+ click_button_by_value(browser, 'Go')
159
+ sleep(3)
160
+ validate_text(browser, 'Search Results')
161
+ end
162
+
163
+ def clone_account(browser)
164
+ mark_testlevel("#{__method__.to_s.titleize}", 5)
165
+ click_text(browser, 'Home')
166
+ sleep(1)
167
+ validate_text(browser, 'Welcome tester at Software')
168
+ click_text(browser, 'Tester')
169
+ sleep(2)
170
+ validate_text(browser, 'Lead Details')
171
+ validate_text(browser, 'Lead Information')
172
+ click_button_by_name(browser, 'Clone')
173
+ sleep(2)
174
+ validate_text(browser, 'Clone Account')
175
+ click_button_by_value(browser, 'Save')
176
+ end
177
+
178
+ def pagination(browser)
179
+ mark_testlevel("#{__method__.to_s.titleize}", 6)
180
+ click_text(browser, 'Accounts')
181
+ sleep(1)
182
+ click_text(browser, 'A')
183
+ sleep(1)
184
+ click_text(browser, 'B')
185
+ sleep(1)
186
+ click_text(browser, 'C')
187
+ sleep(1)
188
+ click_text(browser, 'D')
189
+ sleep(1)
190
+ click_text(browser, 'E')
191
+ sleep(1)
192
+ click_text(browser, 'F')
193
+ sleep(1)
194
+ end
195
+
196
+ def click_headers(browser)
197
+ mark_testlevel("#{__method__.to_s.titleize}", 6)
198
+ click_text(browser, 'Leads')
199
+ sleep(1)
200
+ click_text(browser, 'Accounts')
201
+ sleep(1)
202
+ click_text(browser, 'Contacts')
203
+ sleep(1)
204
+ click_text(browser, 'Potentials')
205
+ sleep(1)
206
+ click_text(browser, 'Campaigns')
207
+ sleep(1)
208
+ click_text(browser, 'Reports')
209
+ sleep(1)
210
+ click_text(browser, 'Dashboards')
211
+ sleep(1)
212
+ click_text(browser, 'Activities')
213
+ sleep(1)
214
+ click_text(browser, 'Cases')
215
+ sleep(1)
216
+ end
217
+
218
+ def new_lead(browser)
219
+ mark_testlevel("#{__method__.to_s.titleize}", 3)
220
+ click_text(browser, 'Leads')
221
+ sleep(2)
222
+ validate_text(browser, 'Leads: All Open Leads')
223
+ click_button_by_value(browser, 'New Lead ')
224
+ sleep(2)
225
+ validate_text(browser, 'Create Lead')
226
+ select_option_by_name_and_option_value(browser, 'property(saltName)', 'Mr.')
227
+ #browser.select_list(:name, 'property(saltName)').select_value(Mr.)
228
+
229
+ set_textfield_by_name(browser, 'property(Company)', 'Test Zoho Company')
230
+ set_textfield_by_name(browser, 'property(Last Name)', 'Tester')
231
+ set_textfield_by_name(browser, 'property(Phone)', '415-999-9999')
232
+
233
+ select_option_by_name_and_option_value(browser, 'property(Lead Source)', 'Advertisement')
234
+ select_option_by_name_and_option_value(browser, 'property(Industry)', 'ASP')
235
+ select_option_by_name_and_option_value(browser, 'property(Lead Status)', 'Contacted')
236
+ select_option_by_name_and_option_value(browser, 'property(Rating)', 'Active')
237
+
238
+
239
+ browser.image(:title, 'Calculator').click
240
+ sleep(4)
241
+ attach_popup_by_url(browser, "https://crmold.zoho.com/crm/Calc.do?currFld=property(Annual%20Revenue)")
242
+ sleep(3)
243
+ close_modal_ie(browser, 'Calculator')
244
+ set_checkbox_by_name(browser, 'property(Email Opt Out)')
245
+ sleep(2)
246
+ clear_checkbox_by_name(browser, 'property(Email Opt Out)')
247
+
248
+
249
+ set_textfield_by_name(browser, 'property(Street)', '1600 Holloway Avenue') ## Address
250
+ set_textfield_by_name(browser, 'property(State)', 'California')
251
+ set_textfield_by_name(browser, 'property(City)', 'San Francisco')
252
+ set_textfield_by_name(browser, 'property(Zip Code)', '94541')
253
+ set_textfield_by_name(browser, 'property(Country)', 'USA')
254
+
255
+ set_textfield_by_name(browser, 'property(Description)', 'This is a description')
256
+ click_button_by_value(browser, 'Save')
257
+ sleep(2)
258
+ end
259
+
260
+ def find_leads(browser)
261
+ mark_testlevel("#{__method__.to_s.titleize}", 5)
262
+ click_text(browser, 'Leads')
263
+ sleep(1)
264
+ set_textfield_by_name(browser, 'newsearchString', 'Test Zoho Company')
265
+ click_button_by_name(browser, 'Go')
266
+ sleep(2)
267
+ validate_text(browser, 'Test Zoho Company')
268
+ end
269
+
270
+ def leads_delete_message(browser)
271
+ mark_testlevel("#{__method__.to_s.titleize}", 4)
272
+ click_text(browser, 'Leads')
273
+ sleep(1)
274
+ set_checkbox_by_name(browser, 'allcheck')
275
+ sleep(1)
276
+ clear_checkbox_by_name(browser, 'allcheck')
277
+ sleep(1)
278
+ click_button_by_value(browser, 'Delete')
279
+ sleep(1)
280
+ close_popup('Message from webpage')
281
+ end
282
+
283
+ def find_lead_reports(browser) ## Find Lead Reports by Source
284
+ mark_testlevel("#{__method__.to_s.titleize}", 6)
285
+ click_text(browser, 'Reports')
286
+ sleep(2)
287
+ click_text(browser, 'Lead Reports')
288
+ sleep(2)
289
+ click_text(browser, 'Leads By Source')
290
+ sleep(2)
291
+ validate_text(browser, 'Leads By Source')
292
+
293
+ select_option_by_name_and_option_value(browser, 'stdDateFilter', 'today')
294
+ click_button_by_value(browser, 'Apply Filter')
295
+ sleep(2)
296
+ validate_text(browser, 'tester')
297
+ end
298
+
299
+ def create_chart(browser)
300
+ mark_testlevel("#{__method__.to_s.titleize}", 7)
301
+ click_button_by_value(browser, 'Delete Chart')
302
+ sleep(2)
303
+ click_button_by_value(browser, 'Create Chart')
304
+ sleep(2)
305
+ validate_text(browser, 'Create Chart: Leads By Source')
306
+
307
+ browser.frame(:name, 'chartLayer').cell(:text, 'Vertical Bar').click
308
+
309
+ #click_id(browser, 'chart1') ## Vertical Bar chart
310
+ sleep(2)
311
+ click_button_by_value(browser, 'Save')
312
+ sleep(3)
313
+ end
314
+
315
+ def create_campaign(browser)
316
+ mark_testlevel("#{__method__.to_s.titleize}", 7)
317
+ click_text(browser, 'Home')
318
+ sleep(1)
319
+ click_text(browser, 'Create Campaign')
320
+ set_textfield_by_name(browser, 'property(Campaign Name)', 'Zoho Campaign')
321
+ select_option_by_name_and_option_value(browser, 'property(Type)', 'Conference')
322
+ select_option_by_name_and_option_value(browser, 'property(Status)', 'Planning')
323
+ sleep(1)
324
+ set_textfield_by_name(browser, 'property(Start Date)', '03/11/2012')
325
+ set_textfield_by_name(browser, 'property(End Date)', '05/20/2012')
326
+ #browser.button(:onclick, 'showCalc('property(Actual Cost)')'
327
+
328
+ end
329
+
330
+ def create_task(browser)
331
+ mark_testlevel("#{__method__.to_s.titleize}", 8)
332
+ click_text(browser, 'Home')
333
+ sleep(1)
334
+ click_text(browser, 'New Task')
335
+ sleep(2)
336
+ validate_text(browser, 'Create Task')
337
+
338
+ browser.image(:title, 'Subject Name Lookup').click
339
+ sleep(2)
340
+ popup = attach_browser_by_url(browser, /Subject/)
341
+
342
+ sleep(2)
343
+ popup.link(:text, 'Product Demo').click
344
+ validate_textfield_value_by_name(browser, /Subject/, 'Product Demo')
345
+
346
+ set_textfield_by_name(browser, 'property(Due Date)', '03/11/2012')
347
+ select_option_by_name_and_option_value(browser, 'property(leContModSel)', 'Leads')
348
+ sleep(1)
349
+ select_option_by_name_and_option_value(browser, 'property(leContModSel)', 'Contacts')
350
+
351
+ browser.image(:id, 'modNameImg').click
352
+ sleep(2)
353
+ #attach_popup(browser, :title, /Zoho CRM - Account Name Lookup/)
354
+ popup = attach_browser_by_url(browser, "https://crmold.zoho.com/crm/Search.do?searchmodule=Accounts&fldName=modname&fldId=modid&fldLabel=Accounts&fldValue=&user=undefined&condition=undefined")
355
+ sleep(1)
356
+ set_textfield_by_name(popup, 'fldValue', 'Test Account #1')
357
+ click_button_by_value(popup, 'Go')
358
+ popup.link(:text, 'Test Account #1').click
359
+ close_modal_ie(browser, 'Account Name Lookup')
360
+ sleep(2)
361
+
362
+ select_option_by_name_and_option_value(browser, 'property(Status)', 'In Progress')
363
+ select_option_by_name_and_option_value(browser, 'property(Priority)', 'Normal')
364
+ set_textfield_by_name(browser, 'property(Description)', 'This is the task information')
365
+ click_button_by_value(browser, 'Save')
366
+ sleep(3)
367
+ end
368
+
369
+ ########################################################################
370
+ # EVERYTHING BELOW: TEMPORARY OVERRIDES/ADDITIONS NOT YET IN SHAMISEN pmn 12jul1012
371
+ ########################################################################
372
+
373
+ def get_variables(file, login = :role, dbg = true)
374
+ debug_to_log("#{__method__}: file = #{file}")
375
+ debug_to_log("#{__method__}: role = #{login}")
376
+
377
+ @var = Hash.new
378
+ workbook = Excel.new(file)
379
+ data_index = find_sheet_with_name(workbook, 'Data')
380
+ workbook.default_sheet = workbook.sheets[data_index]
381
+ var_col = 0
382
+
383
+ 2.upto(workbook.last_column) do |col|
384
+ scriptName = workbook.cell(1, col)
385
+ if scriptName == @myName
386
+ var_col = col
387
+ break
388
+ end
389
+ end
390
+
391
+ 2.upto(workbook.last_row) do |line|
392
+ name = workbook.cell(line, 'A')
393
+ value = workbook.cell(line, var_col).to_s.strip
394
+ @var[name] = value
395
+ end
396
+
397
+ @var.keys.sort.each do |name|
398
+ message_tolog("@var #{name}: '#{@var[name]}'")
399
+ end if dbg
400
+
401
+ @login = Hash.new
402
+ login_col = 0
403
+ role_col = 0
404
+ userid_col = 0
405
+ password_col = 0
406
+ url_col = 0
407
+ name_col = 0
408
+ role_index = find_sheet_with_name(workbook, 'Login')
409
+ if role_index >= 0
410
+ workbook.default_sheet = workbook.sheets[role_index]
411
+
412
+ 1.upto(workbook.last_column) do |col|
413
+ a_cell = workbook.cell(1, col)
414
+ case a_cell
415
+ when @myName
416
+ login_col = col
417
+ break
418
+ when 'role'
419
+ role_col = col
420
+ when 'userid'
421
+ userid_col = col
422
+ when 'password'
423
+ password_col = col
424
+ when 'url'
425
+ url_col = col
426
+ when 'name'
427
+ name_col = col
428
+ end
429
+ end
430
+
431
+ 2.upto(workbook.last_row) do |line|
432
+ role = workbook.cell(line, role_col)
433
+ userid = workbook.cell(line, userid_col)
434
+ password = workbook.cell(line, password_col)
435
+ url = workbook.cell(line, url_col)
436
+ username = workbook.cell(line, name_col)
437
+ enabled = workbook.cell(line, login_col).to_s
438
+
439
+ case login
440
+ when :id
441
+ key = userid
442
+ when :role
443
+ key = role
444
+ else
445
+ key = role
446
+ end
447
+
448
+ @login[key] = Hash.new
449
+ @login[key]['role'] = role
450
+ @login[key]['userid'] = userid
451
+ @login[key]['password'] = password
452
+ @login[key]['url'] = url
453
+ @login[key]['name'] = username
454
+ @login[key]['enabled'] = enabled
455
+
456
+ end
457
+
458
+ @login.keys.sort.each do |key|
459
+ message_tolog("@login (by #{login}): #{key}=>'#{@login[key].to_yaml}'")
460
+ end if dbg
461
+ end
462
+
463
+ rescue
464
+ fatal_to_log("#{__method__}: '#{$!}'")
465
+ end
466
+
467
+ def find_sheet_with_name(workbook, sheet_name)
468
+ sheets = workbook.sheets
469
+ idx = 0
470
+ found = false
471
+ sheets.each do |s|
472
+ if s == sheet_name
473
+ found = true
474
+ break
475
+ end
476
+ idx += 1
477
+ end
478
+ if found
479
+ idx
480
+ else
481
+ -1
482
+ end
483
+ end
484
+
485
+ end