scoutui 2.0.0 → 2.0.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +13 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +154 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/scoutui_driver.rb +22 -0
  12. data/bin/setup +7 -0
  13. data/examples/ex1/commands.holidays.yml +45 -0
  14. data/examples/ex1/commands.yml +25 -0
  15. data/examples/ex1/test-example.sh +38 -0
  16. data/examples/ex1/test.config.json +16 -0
  17. data/examples/ex2/commands.yml +35 -0
  18. data/examples/ex2/page_model.json +28 -0
  19. data/examples/ex2/test-example.sh +39 -0
  20. data/examples/ex2/test.config.json +25 -0
  21. data/lib/scoutui.rb +8 -0
  22. data/lib/scoutui/appmodel/q_model.rb +82 -0
  23. data/lib/scoutui/base/assertions.rb +62 -0
  24. data/lib/scoutui/base/q_accounts.rb +52 -0
  25. data/lib/scoutui/base/q_applitools.rb +127 -0
  26. data/lib/scoutui/base/q_browser.rb +185 -0
  27. data/lib/scoutui/base/q_form.rb +261 -0
  28. data/lib/scoutui/base/test_scout.rb +120 -0
  29. data/lib/scoutui/base/test_settings.rb +109 -0
  30. data/lib/scoutui/base/user_vars.rb +108 -0
  31. data/lib/scoutui/base/visual_test_framework.rb +574 -0
  32. data/lib/scoutui/commands/click_object.rb +45 -0
  33. data/lib/scoutui/commands/command.rb +56 -0
  34. data/lib/scoutui/commands/commands.rb +133 -0
  35. data/lib/scoutui/commands/exists_alert.rb +54 -0
  36. data/lib/scoutui/commands/fill_form.rb +56 -0
  37. data/lib/scoutui/commands/jsalert/action_jsalert.rb +58 -0
  38. data/lib/scoutui/commands/mouse_over.rb +31 -0
  39. data/lib/scoutui/commands/pause.rb +26 -0
  40. data/lib/scoutui/commands/select_object.rb +54 -0
  41. data/lib/scoutui/commands/strategy.rb +202 -0
  42. data/lib/scoutui/commands/submit_form.rb +44 -0
  43. data/lib/scoutui/commands/type.rb +44 -0
  44. data/lib/scoutui/commands/update_url.rb +45 -0
  45. data/lib/scoutui/commands/utils.rb +128 -0
  46. data/lib/scoutui/commands/verify_element.rb +198 -0
  47. data/lib/scoutui/commands/verify_form.rb +26 -0
  48. data/lib/scoutui/eyes/eye_factory.rb +76 -0
  49. data/lib/scoutui/eyes/eye_scout.rb +239 -0
  50. data/lib/scoutui/logger/log_mgr.rb +105 -0
  51. data/lib/scoutui/navigator.rb +24 -0
  52. data/lib/scoutui/utils/utils.rb +352 -0
  53. data/lib/scoutui/version.rb +3 -0
  54. data/scoutui.gemspec +35 -0
  55. metadata +54 -2
  56. data/pkg/scoutui-2.0.0.gem +0 -0
@@ -0,0 +1,198 @@
1
+ require_relative './commands'
2
+
3
+ module Scoutui::Commands
4
+
5
+ class VerifyElement < Command
6
+
7
+ def _verify(elt)
8
+ begin
9
+
10
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " VerifyElement._verify(#{elt})"
11
+
12
+ _k = elt.keys[0].to_s
13
+ a = elt[_k]
14
+
15
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " Assert => #{_k} : #{a.to_s}"
16
+
17
+ # _k = 'generic-assertion'
18
+ _v={}
19
+
20
+ if a.is_a?(Hash)
21
+ _v=a
22
+
23
+ _req = Scoutui::Utils::TestUtils.instance.getReq()
24
+
25
+ if _v.has_key?('locator')
26
+ _locator = _v['locator'].to_s
27
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " " + _k.to_s + " => " + _locator
28
+
29
+ # _locator = Scoutui::Utils::TestUtils.instance.getPageElement(_v['locator'])
30
+
31
+ _obj = Scoutui::Base::QBrowser.getFirstObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout())
32
+
33
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HIT #{_locator} => #{!_obj.nil?}"
34
+ end
35
+
36
+ if _v.has_key?('visible_when')
37
+
38
+ if _v['visible_when'].match(/always/i)
39
+ Scoutui::Logger::LogMgr.instance.asserts.info __FILE__ + (__LINE__).to_s + " Verify assertion #{_k} - #{_locator} visible - #{!_obj.nil?.to_s}"
40
+ Testmgr::TestReport.instance.getReq(_req).get_child('visible_when').add(!_obj.nil?, "Verify assertion #{_k} - #{_locator} visible")
41
+ elsif _v['visible_when'].match(/never/i)
42
+ Scoutui::Logger::LogMgr.instance.asserts.info "Verify assertion #{_k} #{_locator} not visible - #{obj.nil?.to_s}"
43
+ Testmgr::TestReport.instance.getReq(_req).get_child('visible_when').add(obj.nil?, "Verify assertion #{_k} #{_locator} not visible")
44
+ elsif _v['visible_when'].match(/role\=/i)
45
+ _role = _v['visible_when'].match(/role\=(.*)/i)[1].to_s
46
+ _expected_role = Scoutui::Utils::TestUtils.instance.getRole()
47
+
48
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " Verify assertion object exists if the role #{_role} matches expected role #{_expected_role.to_s}"
49
+
50
+ if _role==_expected_role.to_s
51
+ Scoutui::Logger::LogMgr.instance.asserts.info "Verify assertion #{_k} #{_locator} visible when role #{_role} - #{!_obj.nil?.to_s}"
52
+ Testmgr::TestReport.instance.getReq(_req).get_child('visible_when').add(!_obj.nil?, "Verify assertion #{_k} #{_locator} visible when role #{_role}")
53
+ end
54
+
55
+ end
56
+ end
57
+
58
+
59
+ end
60
+
61
+ rescue => ex
62
+
63
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " abort processing."
64
+ Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{ex}"
65
+ puts __FILE__ + (__LINE__).to_s + "\nBacktrace:\n\t#{ex.backtrace.join("\n\t")}"
66
+ end
67
+
68
+ end
69
+
70
+
71
+ def execute(drv)
72
+ @drv=drv if !drv.nil?
73
+ _e=getLocator()
74
+
75
+ if _e.nil?
76
+ _e = @cmd.match(/(verifyelt|verifyelement)\s*\((.*)\)/)[2].to_s.strip
77
+ end
78
+
79
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " verifyElement => #{_e}" if Scoutui::Utils::TestUtils.instance.isDebug?
80
+
81
+ _xpath = Scoutui::Base::UserVars.instance.get(_e)
82
+
83
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | translate : #{_xpath}" if Scoutui::Utils::TestUtils.instance.isDebug?
84
+
85
+
86
+ page_elt = Scoutui::Utils::TestUtils.instance.getPageElement(_xpath)
87
+
88
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process page request #{page_elt} => #{page_elt.class.to_s}" if Scoutui::Utils::TestUtils.instance.isDebug?
89
+
90
+ xpath=nil
91
+
92
+ if page_elt.is_a?(Hash) && page_elt.has_key?('locator')
93
+
94
+ locator = Scoutui::Base::UserVars.instance.get(page_elt['locator'].to_s)
95
+
96
+
97
+ if page_elt.has_key?('visible_when') && page_elt['visible_when'].match(/title\(/)
98
+ current_title = @drv.title
99
+ expected_title = Regexp.new(page_elt['visible_when'].match(/title\((.*)\)/)[1].to_s)
100
+ rc=!expected_title.match(current_title).nil?
101
+
102
+
103
+
104
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Verify expected title (#{current_title}) matches (#{expected_title}) => " + rc.to_s
105
+
106
+ # Testmgr::TestReport.instance.getReq('UI').tc('visible_when').add(expected_title==current_title, "Verify title matches #{expected_title}")
107
+ end
108
+
109
+
110
+ if page_elt.has_key?('visible_when') && page_elt['visible_when'].match(/(text|value)\s*\(/)
111
+
112
+ rc=nil
113
+
114
+
115
+ condition = page_elt['visible_when'].match(/(value|text)\((.*)\)/)[1].to_s
116
+ tmpObj = page_elt['visible_when'].match(/(value|text)\((.*)\)/)[2].to_s
117
+ expectedVal = page_elt['visible_when'].match(/(value|text)\s*\(.*\)\s*\=\s*(.*)/)[2].to_s
118
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " tmpObj => #{tmpObj} with expected value #{expectedVal}"
119
+
120
+ xpath = Scoutui::Base::UserVars.instance.get(tmpObj)
121
+
122
+ obj = Scoutui::Base::QBrowser.getObject(@drv, xpath)
123
+
124
+ if !obj.nil?
125
+ # Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " value : #{obj.value.to_s}"
126
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " text : #{obj.text.to_s}"
127
+
128
+ if obj.tag_name.downcase.match(/(select)/)
129
+ _opt = Selenium::WebDriver::Support::Select.new(obj)
130
+ opts = _opt.selected_options
131
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " selected => #{opts.to_s}"
132
+
133
+
134
+
135
+ opts.each do |o|
136
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "| <v, t>::<#{o.attribute('value').to_s}, #{o.text.to_s}>"
137
+
138
+ desc=nil
139
+
140
+
141
+ if condition=='text' && o.text==expectedVal
142
+ desc=" Verify #{locator} is visible since condition (#{condition} #{xpath} is met."
143
+ elsif condition=='value' && o.attribute('value').to_s==expectedVal
144
+ desc=" Verify #{locator} is visible since #{condition} of #{xpath} is #{expectedVal}"
145
+ end
146
+
147
+ if !desc.nil?
148
+ locatorObj = Scoutui::Base::QBrowser.getObject(@drv, locator)
149
+
150
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " LocatorObj : #{locatorObj} : #{!locatorObj.nil? && locatorObj.displayed?}"
151
+
152
+
153
+ Testmgr::TestReport.instance.getReq('UI').tc('visible_when').add(!locatorObj.nil? && locatorObj.displayed?, desc)
154
+ end
155
+
156
+ end
157
+
158
+
159
+
160
+ end
161
+
162
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " value : #{obj.attribute('value').to_s}"
163
+ end
164
+
165
+
166
+
167
+
168
+ end
169
+
170
+ elsif page_elt.is_a?(Hash)
171
+
172
+ page_elt.each do |elt|
173
+
174
+ puts __FILE__ + (__LINE__).to_s + " ELT => #{elt} : #{elt.to_s}"
175
+ puts __FILE__ + (__LINE__).to_s + " ELT[0] : #{elt[0]}"
176
+ puts __FILE__ + (__LINE__).to_s + " ELT[1] : #{elt[1]}"
177
+
178
+ if elt.is_a?(Array)
179
+ _h={ elt[0] => elt[1] }
180
+
181
+ _verify(_h)
182
+ end
183
+
184
+ end
185
+
186
+
187
+ end
188
+
189
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " xpath : #{xpath}"
190
+
191
+
192
+ end
193
+
194
+ end
195
+
196
+
197
+
198
+ end
@@ -0,0 +1,26 @@
1
+
2
+ require_relative './commands'
3
+
4
+ module Scoutui::Commands
5
+
6
+
7
+ class VerifyForm < Command
8
+
9
+
10
+ def execute(drv)
11
+ @drv=drv if !drv.nil?
12
+
13
+ _form = @cmd.match(/verifyform\((.*)\s*\)/)[1].to_s
14
+
15
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " VerifyForm.execute : #{_form}"
16
+
17
+ _f = Scoutui::Utils::TestUtils.instance.getForm(_form)
18
+ _f.dump()
19
+ _f.verifyForm(@drv)
20
+
21
+ end
22
+
23
+ end
24
+
25
+
26
+ end
@@ -0,0 +1,76 @@
1
+
2
+ require 'singleton'
3
+
4
+
5
+ module Scoutui::Eyes
6
+
7
+
8
+ class EyeFactory
9
+ include Singleton
10
+
11
+ attr_accessor :eyesList
12
+
13
+ def initialize
14
+ @eyesList=Array.new()
15
+ end
16
+
17
+ def createScout()
18
+ browserType = Scoutui::Base::UserVars.instance.getBrowserType()
19
+ eyeScout = EyeScout.new(browserType)
20
+ end
21
+
22
+ def createEyes()
23
+
24
+ use_eyes = Scoutui::Utils::TestUtils.instance.eyesEnabled?
25
+
26
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " create(#{use_eyes})" if Scoutui::Utils::TestUtils.instance.isDebug?
27
+ eyes=nil
28
+
29
+
30
+ if use_eyes
31
+ license_key=nil
32
+
33
+ licFile=Scoutui::Utils::TestUtils.instance.getLicenseFile()
34
+
35
+ if !licFile.empty?
36
+
37
+ valid_json=false
38
+ begin
39
+ jFile = File.read(licFile)
40
+ jLicense=jsonData=JSON.parse(jFile)
41
+ license_key=jLicense['api_key'].to_s
42
+ valid_json=true
43
+ rescue => ex
44
+ ;
45
+ end
46
+
47
+ elsif ENV.has_key?('APPLITOOLS_API_KEY')
48
+ license_key=ENV['APPLITOOLS_API_KEY'].to_s
49
+ end
50
+
51
+
52
+ if !license_key.nil?
53
+ eyes=Applitools::Eyes.new()
54
+ eyes.api_key = license_key
55
+ eyes.force_fullpage_screenshot = true
56
+
57
+ match_level = Scoutui::Base::UserVars.instance.getVar('eyes.match_level')
58
+
59
+ eyes.match_level = Applitools::Eyes::MATCH_LEVEL[match_level.to_sym]
60
+ end
61
+
62
+ ## TBD - eyes.open()
63
+
64
+
65
+ end
66
+
67
+ # eyes
68
+ @eyesList << eyes
69
+ @eyesList.last()
70
+ end
71
+
72
+ end
73
+
74
+
75
+
76
+ end
@@ -0,0 +1,239 @@
1
+ require 'eyes_selenium'
2
+ require 'testmgr'
3
+
4
+ module Scoutui::Eyes
5
+
6
+
7
+ class EyeScout
8
+
9
+ attr_accessor :eyes
10
+ attr_accessor :testResults
11
+ attr_accessor :strategy
12
+
13
+ def teardown()
14
+ @strategy.quit()
15
+ end
16
+
17
+ def navigate(url)
18
+ @strategy.navigate(url)
19
+ end
20
+
21
+ def drv()
22
+ @strategy.getDriver()
23
+ end
24
+
25
+ def getStrategy()
26
+ @strategy
27
+ end
28
+
29
+ def eyes()
30
+ @eyes
31
+ end
32
+
33
+
34
+ #---- 5150 -----
35
+ def get_session_id(url)
36
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " -- get_session_id(#{url}) =="
37
+ _s=/sessions\/(?<session>\d+)/.match(url)[1]
38
+
39
+ end
40
+
41
+ def get_diff_urls(session_id, view_key)
42
+ info = "https://eyes.applitools.com/api/sessions/#{session_id}/?ApiKey=#{view_key}&format=json"
43
+ diff_template = "https://eyes.applitools.com/api/sessions/#{session_id}/steps/%s/diff?ApiKey=#{view_key}"
44
+ diff_urls = Hash.new
45
+
46
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " info => #{info}"
47
+ response = HTTParty.get(info)
48
+
49
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " RESP => #{response.to_s}"
50
+
51
+ begin
52
+ data = JSON.parse(response.body)
53
+ index = 1
54
+ data['actualOutput'].each do |elem|
55
+ if !elem.nil? && (elem['isMatching'] == false)
56
+ #diff_urls[index] = diff_template % [index]
57
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " #{index.to_s} :#{elem['tag'].to_s}"
58
+ #diff_urls[index] = diff_template % [index]
59
+ diff_urls[index] = { :tag => elem['tag'].to_s, :url => diff_template % [index] }
60
+ index+=1
61
+ end
62
+ end
63
+
64
+ diff_urls
65
+
66
+ rescue JSON::ParserError
67
+ ;
68
+ end
69
+
70
+ end
71
+
72
+ def sanitize_filename(filename)
73
+ # Split the name when finding a period which is preceded by some
74
+ # character, and is followed by some character other than a period,
75
+ # if there is no following period that is followed by something
76
+ # other than a period
77
+ fn = filename.split /(?<=.)\.(?=[^.])(?!.*\.[^.])/m
78
+
79
+ # We now have one or two parts (depending on whether we could find
80
+ # a suitable period). For each of these parts, replace any unwanted
81
+ # sequence of characters with an underscore
82
+ fn.map! { |s| s.gsub /[^a-z0-9\-]+/i, '_' }
83
+
84
+ # Finally, join the parts with a period and return the result
85
+ return fn.join '.'
86
+ end
87
+
88
+ def download_images(diff_urls, destination)
89
+ diff_urls.each do |index, elem|
90
+ save_name = sanitize_filename(elem[:tag]) + ".step_#{index}_diff.png"
91
+ File.open("#{destination}/#{save_name}", 'wb') do |file|
92
+ file.write HTTParty.get(elem[:url])
93
+ end
94
+ end
95
+ end
96
+
97
+ def saveDiffs(_eyes, results, outdir, view_key)
98
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " saveDiffs(#{outdir.to_s})"
99
+
100
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " | steps : #{results.steps.to_s}"
101
+ session_id = get_session_id(results.url)
102
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " session => #{session_id}"
103
+
104
+ diffs = get_diff_urls(session_id, view_key)
105
+
106
+ diffs.each do |d|
107
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " #{d.to_s}"
108
+ end
109
+
110
+ download_images(diffs, outdir)
111
+
112
+ end
113
+ #---- END 5150
114
+
115
+
116
+ def closeOut()
117
+
118
+ # Scoutui::Base::QHarMgr.instance.stop('/tmp/scoutui.har')
119
+
120
+ return if !Scoutui::Utils::TestUtils.instance.eyesEnabled?
121
+ @testResults = eyes().close(false)
122
+
123
+ Testmgr::TestReport.instance.getReq("EYES").testcase('Images').add(@testResults.steps.to_i > 0, "Verify at least 1 shot taken (#{@testResults.steps.to_s} shots)")
124
+ Testmgr::TestReport.instance.getReq("EYES").testcase('Images').add(@testResults.missing.to_i==0, "Verify Eyes did not miss any screens (#{@testResults.missing.to_s} screens)")
125
+
126
+ # 5150
127
+ _diffdir=Scoutui::Utils::TestUtils.instance.getDiffDir()
128
+ if ENV.has_key?('APPLITOOLS_VIEW_KEY') && !_diffdir.nil?
129
+
130
+ if Dir.exists?(_diffdir)
131
+ saveDiffs(eyes(), @testResults, _diffdir, ENV['APPLITOOLS_VIEW_KEY'])
132
+ else
133
+ Scoutui::Logger::LogMgr.instance.warn " Specified Visual Diff folder does not exist - #{_diffdir.to_s}. Unable to download diffs"
134
+ end
135
+
136
+ else
137
+ Scoutui::Logger::LogMgr.instance.info " Unable to download diff images - APPLITOOLS_VIEW_KEY not defined"
138
+ end
139
+
140
+
141
+ eyes().abort_if_not_closed if !eyes().nil?
142
+ end
143
+
144
+ def check_window(tag, region=nil)
145
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " check_window(#{tag.to_s})" if Scoutui::Utils::TestUtils.instance.isDebug?
146
+
147
+ return if !Scoutui::Utils::TestUtils.instance.eyesEnabled?
148
+
149
+ if region.nil?
150
+ eyes().check_window(tag.to_s)
151
+ else
152
+ f = eyes().force_fullpage_screenshot
153
+ eyes().check_region(:xpath, region, tag)
154
+ eyes().force_fullpage_screenshot = f
155
+ end
156
+
157
+ end
158
+
159
+ def generateReport()
160
+
161
+ if Scoutui::Utils::TestUtils.instance.eyesEnabled?
162
+ Scoutui::Logger::LogMgr.instance.debug " testResults.methods = #{@testResults.methods.sort.to_s}"
163
+ Scoutui::Logger::LogMgr.instance.info " Eyes.TestResults.Missing : #{@testResults.missing.to_s}"
164
+ Scoutui::Logger::LogMgr.instance.info " Eyes.TestResults.Matches : #{@testResults.matches.to_s}"
165
+ Scoutui::Logger::LogMgr.instance.info " Eyes.TestResults.Mismatches : #{@testResults.mismatches.to_s}"
166
+ Scoutui::Logger::LogMgr.instance.info " Eyes.TestResults.Passed : #{@testResults.passed?.to_s}"
167
+ Scoutui::Logger::LogMgr.instance.info " Eyes.TestResults.Steps : #{@testResults.steps.to_s}"
168
+ end
169
+
170
+ Scoutui::Logger::LogMgr.instance.info " TestReport => #{@testResults}"
171
+ # Testmgr::TestReport.instance.generateReport()
172
+ Testmgr::TestReport.instance.report()
173
+ end
174
+
175
+ def getResults()
176
+ @testResults
177
+ end
178
+
179
+
180
+
181
+ def initialize(browserType)
182
+ @testResults=nil
183
+
184
+ browserType = Scoutui::Base::UserVars.instance.getBrowserType()
185
+ viewport_size = Scoutui::Base::UserVars.instance.getViewPort()
186
+
187
+ Testmgr::TestReport.instance.setDescription('ScoutUI Test')
188
+ Testmgr::TestReport.instance.setEnvironment(:qa, Scoutui::Utils::TestUtils.instance.getHost())
189
+ Testmgr::TestReport.instance.addRequirement('UI')
190
+ Testmgr::TestReport.instance.getReq('UI').add(Testmgr::TestCase.new('visible_when', "visible_when"))
191
+ Testmgr::TestReport.instance.addRequirement('Command')
192
+ Testmgr::TestReport.instance.getReq('Command').add(Testmgr::TestCase.new('isValid', "isValid"))
193
+
194
+ Testmgr::TestReport.instance.getReq('UI').add(Testmgr::TestCase.new('expectJsAlert', 'expectJsAlert'))
195
+
196
+ if Scoutui::Utils::TestUtils.instance.isDebug?
197
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " setup() : #{browserType}"
198
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " sauce => " + Scoutui::Utils::TestUtils.instance.eyesEnabled?.to_s
199
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " viewport => #{viewport_size}"
200
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes cfg => #{@eyesRecord}"
201
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " title => " + Scoutui::Base::UserVars.instance.getVar('eyes.title')
202
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " app => " + Scoutui::Base::UserVars.instance.getVar('eyes.app')
203
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " match_level => " + Scoutui::Base::UserVars.instance.getVar('eyes.match_level')
204
+ end
205
+
206
+ begin
207
+
208
+ # Scoutui::Base::QHarMgr.instance.start()
209
+ # @profile.proxy = Scoutui::Base::QHarMgr.instance.getSeleniumProfile()
210
+
211
+ @strategy = Scoutui::Commands::Strategy.new()
212
+
213
+ @eyes=Scoutui::Eyes::EyeFactory.instance.createEyes()
214
+
215
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes => #{eyes}" if Scoutui::Utils::TestUtils.instance.isDebug?
216
+
217
+ ## TBD - move the following into eye_scout ??
218
+ if Scoutui::Utils::TestUtils.instance.eyesEnabled?
219
+ @driver = @eyes.open(
220
+ app_name: Scoutui::Base::UserVars.instance.getVar('eyes.app'), # @eyesRecord['app'],
221
+ test_name: Scoutui::Base::UserVars.instance.getVar('eyes.title'), # @eyesRecord['title'],
222
+ viewport_size: viewport_size,
223
+ # viewport_size: {width: 800, height: 600},
224
+ driver: @strategy.getDriver())
225
+ end
226
+
227
+ rescue => ex
228
+ Scoutui::Logger::LogMgr.instance.info ex.backtrace
229
+ end
230
+
231
+ end
232
+
233
+
234
+ end
235
+
236
+
237
+
238
+
239
+ end