scoutui 2.0.1 → 2.0.2
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.
- checksums.yaml +4 -4
- data/examples/capabilities/win10.chrome46.json +6 -0
- data/examples/ex1/test-example.sh +4 -4
- data/examples/ex1/test.config.json +1 -1
- data/examples/ex2/appmodel/common.json +51 -0
- data/examples/ex2/appmodel/page_model.json +106 -0
- data/examples/ex2/appmodel/register.model.json +42 -0
- data/examples/ex2/commands/commands.basic.appmodel.yml +8 -0
- data/examples/ex2/commands/commands.yml +115 -0
- data/examples/ex2/commands/ex1.yml +7 -0
- data/examples/ex2/commands/ex1c.yml +8 -0
- data/examples/ex2/commands/ex1d.yml +22 -0
- data/examples/ex2/commands/ex2.hover.yml +43 -0
- data/examples/ex2/commands/ex2.yml +24 -0
- data/examples/ex2/data.json +6 -0
- data/examples/ex2/test-configs/test.config.basic.json +12 -0
- data/examples/ex2/{test.config.json → test-configs/test.config.json} +8 -2
- data/examples/ex2/tests/run-test.sh +125 -0
- data/examples/ex2/tests/test-basic-appmodel.sh +14 -0
- data/examples/ex2/{test-example.sh → tests/test-example.sh} +3 -3
- data/examples/ex2/tests/test-example1a.sh +16 -0
- data/examples/ex2/tests/test-example1b.sh +13 -0
- data/examples/ex2/tests/test-example1c.sh +15 -0
- data/examples/ex2/tests/test-example1d.sh +15 -0
- data/examples/ex2/tests/test-example2.forms.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.sh +26 -0
- data/examples/ex2/tests/test-example2.sh +43 -0
- data/examples/ex2/tests/test-example3.sauce.sh +77 -0
- data/examples/ex2/tests/test-example3.sh +41 -0
- data/lib/scoutui/appmodel/q_model.rb +105 -0
- data/lib/scoutui/base/assertions.rb +570 -10
- data/lib/scoutui/base/q_applitools.rb +2 -2
- data/lib/scoutui/base/q_browser.rb +38 -5
- data/lib/scoutui/base/q_form.rb +7 -7
- data/lib/scoutui/base/test_scout.rb +2 -1
- data/lib/scoutui/base/user_vars.rb +29 -2
- data/lib/scoutui/base/visual_test_framework.rb +308 -24
- data/lib/scoutui/commands/click_object.rb +86 -13
- data/lib/scoutui/commands/commands.rb +20 -7
- data/lib/scoutui/commands/jsalert/action_jsalert.rb +1 -1
- data/lib/scoutui/commands/mouse_over.rb +94 -8
- data/lib/scoutui/commands/select_object.rb +1 -1
- data/lib/scoutui/commands/select_window.rb +43 -0
- data/lib/scoutui/commands/strategy.rb +40 -3
- data/lib/scoutui/commands/type.rb +99 -11
- data/lib/scoutui/commands/update_url.rb +1 -1
- data/lib/scoutui/commands/utils.rb +43 -5
- data/lib/scoutui/commands/verify_element.rb +38 -7
- data/lib/scoutui/eyes/eye_factory.rb +7 -1
- data/lib/scoutui/eyes/eye_scout.rb +20 -7
- data/lib/scoutui/utils/utils.rb +59 -1
- data/lib/scoutui/version.rb +1 -1
- data/scoutui.gemspec +5 -4
- metadata +77 -39
- data/examples/ex2/commands.yml +0 -35
- data/examples/ex2/page_model.json +0 -28
@@ -5,33 +5,121 @@ module Scoutui::Commands
|
|
5
5
|
class Type < Command
|
6
6
|
|
7
7
|
|
8
|
+
def _whenTyped(page_elt)
|
9
|
+
|
10
|
+
if page_elt.is_a?(Hash) && page_elt.has_key?('when_typed')
|
11
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Verify #{page_elt['when_clicked']}"
|
12
|
+
|
13
|
+
page_elt['when_clicked'].each do |_elt|
|
14
|
+
|
15
|
+
_r = _elt.keys[0].to_s
|
16
|
+
|
17
|
+
_pg = _elt[_r]
|
18
|
+
|
19
|
+
# _c = Scoutui::Commands::VerifyElement.new("verifyelement(" + _elt + ")")
|
20
|
+
# _c.execute(@drv)
|
21
|
+
|
22
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " _whenClicked -> assertions (#{_pg}, #{_r.to_s})"
|
23
|
+
|
24
|
+
|
25
|
+
if _pg.is_a?(Array)
|
26
|
+
_pg.each do |_pg2|
|
27
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg2, _r)
|
28
|
+
end
|
29
|
+
elsif _pg.is_a?(String)
|
30
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg, _r)
|
31
|
+
else
|
32
|
+
puts __FILE__ + (__LINE__).to_s + " => #{_pg}"
|
33
|
+
end
|
34
|
+
|
35
|
+
# Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " IsVisible #{isVisible} - PAUSE"; gets
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
8
43
|
def execute(drv=nil)
|
9
44
|
@drv=drv if !drv.nil?
|
10
45
|
|
46
|
+
_isKb=false
|
11
47
|
_rc=false
|
12
48
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
13
49
|
|
14
50
|
begin
|
15
|
-
_xpath = @cmd.match(/type
|
16
|
-
_val = @cmd.match(/type
|
51
|
+
# _xpath = @cmd.match(/type[\!]*\((.*),\s*/)[1].to_s
|
52
|
+
# _val = @cmd.match(/type[\!]*\(.*,\s*(.*)\)/)[1].to_s
|
53
|
+
|
17
54
|
|
18
|
-
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + "Process TYPE #{_val} into #{_xpath}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
19
55
|
|
20
|
-
obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath)
|
21
56
|
|
22
|
-
if
|
23
|
-
|
57
|
+
if @cmd.strip.match(/^\s*type\s*\(\s*__TAB__\s*\)\s*$/)
|
58
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HIT TAB key"
|
59
|
+
@drv.action.send_keys(:tab).perform
|
24
60
|
_rc=true
|
61
|
+
_isKb=true
|
25
62
|
else
|
26
|
-
|
63
|
+
_xpath = @cmd.match(/^\s*type[\!]*\((.*),\s*/)[1].to_s
|
64
|
+
_val = @cmd.match(/^\s*type[\!]*\(.*,\s*(.*)\)/)[1].to_s
|
65
|
+
|
66
|
+
|
67
|
+
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + "Process TYPE #{_val} into #{_xpath}"
|
68
|
+
|
69
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
|
70
|
+
|
71
|
+
|
72
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " type(#{_val})"
|
73
|
+
|
74
|
+
if !obj.nil? && !obj.attribute('type').downcase.match(/(text|password|email)/).nil?
|
75
|
+
|
76
|
+
# Refactor in qbrowser
|
77
|
+
|
78
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => Scoutui::Commands::Utils.instance.getTimeout)
|
79
|
+
isDisplayed=false
|
80
|
+
isDisplayed = wait.until {
|
81
|
+
true if obj.displayed?
|
82
|
+
}
|
83
|
+
|
84
|
+
if @cmd.match(/type\!/i)
|
85
|
+
|
86
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " clear()"
|
87
|
+
obj.clear if isDisplayed
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " send_keys(#{_val})"
|
93
|
+
|
94
|
+
if isDisplayed
|
95
|
+
if _val.match(/__DOWN__/)
|
96
|
+
obj.send_keys(:arrow_down)
|
97
|
+
elsif _val.match(/__TAB__/)
|
98
|
+
obj.send_keys(:tab)
|
99
|
+
else
|
100
|
+
|
101
|
+
obj.send_keys(Scoutui::Base::UserVars.instance.get(_val))
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
_rc=true
|
106
|
+
end
|
107
|
+
|
108
|
+
else
|
109
|
+
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " Unable to process command TYPE => #{obj.to_s}"
|
110
|
+
end
|
27
111
|
end
|
28
112
|
|
29
|
-
rescue
|
30
|
-
|
113
|
+
rescue => ex
|
114
|
+
Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{ex}"
|
115
|
+
puts __FILE__ + (__LINE__).to_s + "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
116
|
+
end
|
117
|
+
|
118
|
+
if !_isKb
|
119
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(!obj.nil?, "Verify object #{_xpath} to type #{_val} exists : #{obj.class.to_s}")
|
120
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(_rc, "Verify typed data #{_rc}")
|
31
121
|
end
|
32
122
|
|
33
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(!obj.nil?, "Verify object #{_xpath} to type #{_val} exists : #{obj.class.to_s}")
|
34
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(_rc, "Verify typed data #{_rc}")
|
35
123
|
setResult(_rc)
|
36
124
|
|
37
125
|
end
|
@@ -10,7 +10,7 @@ module Scoutui::Commands
|
|
10
10
|
|
11
11
|
baseUrl = Scoutui::Base::UserVars.instance.getHost()
|
12
12
|
|
13
|
-
url = @cmd.match(/navigate\s*\((.*)\)/)[1].to_s.strip
|
13
|
+
url = @cmd.match(/navigate\s*\((.*)\)/i)[1].to_s.strip
|
14
14
|
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " url => #{url}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
15
15
|
|
16
16
|
_relativeUrl = url.strip.start_with?('/')
|
@@ -9,10 +9,12 @@ module Scoutui::Commands
|
|
9
9
|
|
10
10
|
attr_accessor :totalCommands
|
11
11
|
attr_accessor :timeout
|
12
|
+
attr_accessor :hwnds
|
12
13
|
|
13
14
|
def initialize
|
14
15
|
@command_list=['pause',
|
15
16
|
'existsAlert',
|
17
|
+
'clickJsAlert',
|
16
18
|
'fillform',
|
17
19
|
'submitform',
|
18
20
|
'type',
|
@@ -20,6 +22,7 @@ module Scoutui::Commands
|
|
20
22
|
'mouseover',
|
21
23
|
'navigate',
|
22
24
|
'select',
|
25
|
+
'select_window',
|
23
26
|
'verifyelt',
|
24
27
|
'verifyelement',
|
25
28
|
'verifyform']
|
@@ -28,17 +31,48 @@ module Scoutui::Commands
|
|
28
31
|
@command_list.each do |c|
|
29
32
|
@totalCommands[c]=0
|
30
33
|
end
|
34
|
+
|
35
|
+
@hwnds = { :current => nil, :previous => nil, :handles => [] }
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def isCSS(_locator)
|
40
|
+
rc=nil
|
41
|
+
|
42
|
+
if _locator.match(/^css\=/i)
|
43
|
+
rc = _locator.match(/\s*(css\=.*)/i)[1].to_s.strip
|
44
|
+
elsif _locator.match(/^#/i)
|
45
|
+
rc=_locator.strip
|
46
|
+
end
|
47
|
+
|
48
|
+
rc
|
31
49
|
end
|
32
50
|
|
33
|
-
|
34
|
-
|
51
|
+
|
52
|
+
def setCurrentWindow(_w)
|
53
|
+
if @hwnds[:previous].nil?
|
54
|
+
@hwnds[:previous]=_w
|
55
|
+
else
|
56
|
+
@hwnds[:previous]=@hwnds[:current]
|
57
|
+
end
|
58
|
+
|
59
|
+
@hwnds[:current]=_w
|
60
|
+
end
|
61
|
+
|
62
|
+
def resetTimeout(t=30)
|
63
|
+
setTimeout(t)
|
35
64
|
end
|
36
65
|
|
37
66
|
def setTimeout(_t)
|
38
|
-
@timeout=_t
|
67
|
+
@timeout=_t.to_i
|
39
68
|
end
|
40
69
|
def getTimeout()
|
41
|
-
@timeout
|
70
|
+
@timeout.to_i
|
71
|
+
end
|
72
|
+
|
73
|
+
def isSelectWindow?(_action)
|
74
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelectWindow?(#{_action})"
|
75
|
+
!_action.match(/select_window/i).nil?
|
42
76
|
end
|
43
77
|
|
44
78
|
def isExistsAlert?(_action)
|
@@ -66,7 +100,7 @@ module Scoutui::Commands
|
|
66
100
|
end
|
67
101
|
|
68
102
|
def isType?(_action)
|
69
|
-
!_action.match(/type
|
103
|
+
!_action.match(/type[\!]*\(/).nil?
|
70
104
|
end
|
71
105
|
|
72
106
|
def isSubmitForm?(_action)
|
@@ -97,6 +131,8 @@ module Scoutui::Commands
|
|
97
131
|
@totalCommands['pause']+=1
|
98
132
|
elsif isExistsAlert?(cmd)
|
99
133
|
@totalCommands['existsAlert']+=1
|
134
|
+
elsif isGetAlert?(cmd)
|
135
|
+
@totalCommands['clickJsAlert']+=1
|
100
136
|
elsif isVerifyElt?(cmd)
|
101
137
|
@totalCommands['verifyelt']+=1
|
102
138
|
elsif isVerifyForm?(cmd)
|
@@ -115,6 +151,8 @@ module Scoutui::Commands
|
|
115
151
|
@totalCommands['select']+=1
|
116
152
|
elsif isNavigate?(cmd)
|
117
153
|
@totalCommands['navigate']+=1
|
154
|
+
elsif isSelectWindow?(cmd)
|
155
|
+
@totalCommands['select_window']+=1
|
118
156
|
else
|
119
157
|
rc=false
|
120
158
|
end
|
@@ -20,7 +20,13 @@ module Scoutui::Commands
|
|
20
20
|
if a.is_a?(Hash)
|
21
21
|
_v=a
|
22
22
|
|
23
|
-
|
23
|
+
|
24
|
+
if _v.has_key?('reqid')
|
25
|
+
_req=_v['reqid'].to_s
|
26
|
+
else
|
27
|
+
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
28
|
+
end
|
29
|
+
|
24
30
|
|
25
31
|
if _v.has_key?('locator')
|
26
32
|
_locator = _v['locator'].to_s
|
@@ -35,7 +41,35 @@ module Scoutui::Commands
|
|
35
41
|
|
36
42
|
if _v.has_key?('visible_when')
|
37
43
|
|
38
|
-
|
44
|
+
|
45
|
+
if _v['visible_when'].match(/^\s*(text|value)\s*\(/)
|
46
|
+
|
47
|
+
_elt = _v['visible_when']
|
48
|
+
|
49
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " verify text";
|
50
|
+
condition = _elt.match(/(value|text)\((.*)\)/)[1].to_s
|
51
|
+
tmpObj = _elt.match(/(value|text)\((.*)\)/)[2].to_s
|
52
|
+
expectedVal = _elt.match(/(value|text)\s*\(.*\)\s*\=\s*(.*)/)[2].to_s
|
53
|
+
|
54
|
+
_xpath = Scoutui::Base::UserVars.instance.get(tmpObj)
|
55
|
+
|
56
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " locator : #{_xpath}"; #gets
|
57
|
+
|
58
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
|
59
|
+
|
60
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " text : #{obj.text} vs #{expectedVal}"
|
61
|
+
|
62
|
+
expected_regex = Regexp.new(expectedVal)
|
63
|
+
rc = !obj.text.to_s.match(expected_regex).nil?
|
64
|
+
|
65
|
+
|
66
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " req: #{_req} obj : #{obj}, rc:#{rc}"; #gets
|
67
|
+
if rc
|
68
|
+
Testmgr::TestReport.instance.getReq(_req).get_child('visible_when').add(!obj.nil?, "Verify element exists when #{condition} match #{expectedVal}")
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
elsif _v['visible_when'].match(/always/i)
|
39
73
|
Scoutui::Logger::LogMgr.instance.asserts.info __FILE__ + (__LINE__).to_s + " Verify assertion #{_k} - #{_locator} visible - #{!_obj.nil?.to_s}"
|
40
74
|
Testmgr::TestReport.instance.getReq(_req).get_child('visible_when').add(!_obj.nil?, "Verify assertion #{_k} - #{_locator} visible")
|
41
75
|
elsif _v['visible_when'].match(/never/i)
|
@@ -119,7 +153,7 @@ module Scoutui::Commands
|
|
119
153
|
|
120
154
|
xpath = Scoutui::Base::UserVars.instance.get(tmpObj)
|
121
155
|
|
122
|
-
obj = Scoutui::Base::QBrowser.getObject(@drv, xpath)
|
156
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, xpath, Scoutui::Commands::Utils.instance.getTimeout)
|
123
157
|
|
124
158
|
if !obj.nil?
|
125
159
|
# Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " value : #{obj.value.to_s}"
|
@@ -145,7 +179,7 @@ module Scoutui::Commands
|
|
145
179
|
end
|
146
180
|
|
147
181
|
if !desc.nil?
|
148
|
-
locatorObj = Scoutui::Base::QBrowser.getObject(@drv, locator)
|
182
|
+
locatorObj = Scoutui::Base::QBrowser.getObject(@drv, locator, Scoutui::Commands::Utils.instance.getTimeout)
|
149
183
|
|
150
184
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " LocatorObj : #{locatorObj} : #{!locatorObj.nil? && locatorObj.displayed?}"
|
151
185
|
|
@@ -162,9 +196,6 @@ module Scoutui::Commands
|
|
162
196
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " value : #{obj.attribute('value').to_s}"
|
163
197
|
end
|
164
198
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
199
|
end
|
169
200
|
|
170
201
|
elsif page_elt.is_a?(Hash)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
require 'singleton'
|
3
|
-
|
3
|
+
require 'eyes_selenium'
|
4
4
|
|
5
5
|
module Scoutui::Eyes
|
6
6
|
|
@@ -16,6 +16,8 @@ module Scoutui::Eyes
|
|
16
16
|
|
17
17
|
def createScout()
|
18
18
|
browserType = Scoutui::Base::UserVars.instance.getBrowserType()
|
19
|
+
|
20
|
+
puts __FILE__ + (__LINE__).to_s + "BrowserType : #{browserType}"
|
19
21
|
eyeScout = EyeScout.new(browserType)
|
20
22
|
end
|
21
23
|
|
@@ -45,18 +47,22 @@ module Scoutui::Eyes
|
|
45
47
|
end
|
46
48
|
|
47
49
|
elsif ENV.has_key?('APPLITOOLS_API_KEY')
|
50
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " APPLITOOLS_API_KEY from ENV"
|
48
51
|
license_key=ENV['APPLITOOLS_API_KEY'].to_s
|
49
52
|
end
|
50
53
|
|
51
54
|
|
52
55
|
if !license_key.nil?
|
53
56
|
eyes=Applitools::Eyes.new()
|
57
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Eyes Object created #{eyes}"
|
54
58
|
eyes.api_key = license_key
|
55
59
|
eyes.force_fullpage_screenshot = true
|
56
60
|
|
57
61
|
match_level = Scoutui::Base::UserVars.instance.getVar('eyes.match_level')
|
58
62
|
|
59
63
|
eyes.match_level = Applitools::Eyes::MATCH_LEVEL[match_level.to_sym]
|
64
|
+
|
65
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " eyes => #{eyes}"
|
60
66
|
end
|
61
67
|
|
62
68
|
## TBD - eyes.open()
|
@@ -1,5 +1,6 @@
|
|
1
|
-
require 'eyes_selenium'
|
2
|
-
require 'testmgr'
|
1
|
+
#require 'eyes_selenium'
|
2
|
+
#require 'testmgr'
|
3
|
+
require 'httparty'
|
3
4
|
|
4
5
|
module Scoutui::Eyes
|
5
6
|
|
@@ -168,8 +169,15 @@ module Scoutui::Eyes
|
|
168
169
|
end
|
169
170
|
|
170
171
|
Scoutui::Logger::LogMgr.instance.info " TestReport => #{@testResults}"
|
171
|
-
|
172
|
+
|
172
173
|
Testmgr::TestReport.instance.report()
|
174
|
+
|
175
|
+
# Testmgr::TestReport.instance.generateReport()
|
176
|
+
|
177
|
+
metrics=Testmgr::TestReport.instance.getMetrics()
|
178
|
+
Scoutui::Logger::LogMgr.instance.info "Metrics => #{metrics}"
|
179
|
+
|
180
|
+
Scoutui::Utils::TestUtils.instance.setMetrics(metrics)
|
173
181
|
end
|
174
182
|
|
175
183
|
def getResults()
|
@@ -184,8 +192,13 @@ module Scoutui::Eyes
|
|
184
192
|
browserType = Scoutui::Base::UserVars.instance.getBrowserType()
|
185
193
|
viewport_size = Scoutui::Base::UserVars.instance.getViewPort()
|
186
194
|
|
195
|
+
puts __FILE__ + (__LINE__).to_s + " browserType => #{browserType}"
|
196
|
+
|
197
|
+
|
187
198
|
Testmgr::TestReport.instance.setDescription('ScoutUI Test')
|
188
199
|
Testmgr::TestReport.instance.setEnvironment(:qa, Scoutui::Utils::TestUtils.instance.getHost())
|
200
|
+
Testmgr::TestReport.instance.setHost(Scoutui::Base::UserVars.instance.get(:host))
|
201
|
+
Testmgr::TestReport.instance.setBrowserUnderTest(browserType)
|
189
202
|
Testmgr::TestReport.instance.addRequirement('UI')
|
190
203
|
Testmgr::TestReport.instance.getReq('UI').add(Testmgr::TestCase.new('visible_when', "visible_when"))
|
191
204
|
Testmgr::TestReport.instance.addRequirement('Command')
|
@@ -195,12 +208,12 @@ module Scoutui::Eyes
|
|
195
208
|
|
196
209
|
if Scoutui::Utils::TestUtils.instance.isDebug?
|
197
210
|
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " setup() : #{browserType}"
|
198
|
-
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + "
|
211
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes => " + Scoutui::Utils::TestUtils.instance.eyesEnabled?.to_s
|
199
212
|
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " viewport => #{viewport_size}"
|
200
213
|
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')
|
214
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes.title => " + Scoutui::Base::UserVars.instance.getVar('eyes.title')
|
215
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes.app => " + Scoutui::Base::UserVars.instance.getVar('eyes.app')
|
216
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " eyes.match_level => " + Scoutui::Base::UserVars.instance.getVar('eyes.match_level')
|
204
217
|
end
|
205
218
|
|
206
219
|
begin
|
data/lib/scoutui/utils/utils.rb
CHANGED
@@ -15,8 +15,17 @@ module Scoutui::Utils
|
|
15
15
|
attr_accessor :app_model
|
16
16
|
attr_accessor :currentTest
|
17
17
|
|
18
|
+
attr_accessor :metrics
|
19
|
+
attr_accessor :final_rc
|
20
|
+
|
21
|
+
attr_accessor :coverage
|
22
|
+
|
18
23
|
def initialize
|
19
24
|
|
25
|
+
@coverage={:pages => []}
|
26
|
+
@final_rc=false
|
27
|
+
@metrics=nil
|
28
|
+
|
20
29
|
@env_list={:accounts => 'SCOUTUI_ACCOUNTS', :browser => 'SCOUTUI_BROWSER', :applitools_api_key => 'APPLITOOLS_API_KEY'}
|
21
30
|
@options={}
|
22
31
|
@currentTest={:reqid => 'UI', :testcase => '00' }
|
@@ -26,12 +35,14 @@ module Scoutui::Utils
|
|
26
35
|
@options[o]=nil
|
27
36
|
end
|
28
37
|
|
38
|
+
@options[:include_expected_as_asserts]=false
|
29
39
|
@options[:role]=nil
|
30
40
|
@options[:sauce_name]='unnamed'
|
31
41
|
@options[:enable_eyes]=false
|
32
42
|
@options[:enable_sauce]=false
|
33
43
|
@options[:log_level]=:info # :debug, :info, :warn, :error, :fatal
|
34
44
|
@options[:match_level]='layout'
|
45
|
+
@options[:default_wait]=30 # seconds
|
35
46
|
@options[:debug]=false
|
36
47
|
|
37
48
|
@app_model=nil
|
@@ -40,6 +51,30 @@ module Scoutui::Utils
|
|
40
51
|
|
41
52
|
end
|
42
53
|
|
54
|
+
def getPageCoverage()
|
55
|
+
@coverage[:pages]
|
56
|
+
end
|
57
|
+
|
58
|
+
def addPageCoverage(p)
|
59
|
+
@coverage[:pages] << p
|
60
|
+
end
|
61
|
+
|
62
|
+
def getFinalRc()
|
63
|
+
@final_rc
|
64
|
+
end
|
65
|
+
|
66
|
+
def setFinalRc(b)
|
67
|
+
@final_rc=b
|
68
|
+
end
|
69
|
+
|
70
|
+
def getMetrics()
|
71
|
+
@metrics
|
72
|
+
end
|
73
|
+
|
74
|
+
def setMetrics(_m)
|
75
|
+
@metrics=_m
|
76
|
+
end
|
77
|
+
|
43
78
|
def getReq()
|
44
79
|
@currentTest[:reqid]
|
45
80
|
end
|
@@ -73,6 +108,10 @@ module Scoutui::Utils
|
|
73
108
|
@app_model.getPageElement(s)
|
74
109
|
end
|
75
110
|
|
111
|
+
def getAppModel()
|
112
|
+
@app_model
|
113
|
+
end
|
114
|
+
|
76
115
|
def parseCommandLine()
|
77
116
|
|
78
117
|
OptionParser.new do |opt|
|
@@ -119,7 +158,11 @@ module Scoutui::Utils
|
|
119
158
|
}
|
120
159
|
opt.on('--dut DUT') { |o| @options[:dut]=o }
|
121
160
|
opt.on('-h', '--host HOST') { |o| @options[:host] = o }
|
122
|
-
opt.on('-
|
161
|
+
opt.on('-i', '--include_expectations') { |o| @options[:include_expected_as_asserts] = true}
|
162
|
+
opt.on('-l', '--lang LOCAL') { |o|
|
163
|
+
@options[:loc] = o
|
164
|
+
Scoutui::Base::UserVars.instance.setVar(:lang, @options[:loc].to_s)
|
165
|
+
}
|
123
166
|
opt.on('-k', '--key EyesLicense') { |o| options[:license_file] = o }
|
124
167
|
opt.on('-a', '--app AppName') { |o| @options[:app] = o }
|
125
168
|
opt.on('--match [LEVEL]', [:layout2, :layout, :strict, :exact, :content], "Select match level (layout, strict, exact, content)") { |o| @options[:match_level] = o }
|
@@ -135,6 +178,12 @@ module Scoutui::Utils
|
|
135
178
|
@options[:page_model] = o
|
136
179
|
loadModel(@options[:page_model].to_s)
|
137
180
|
}
|
181
|
+
|
182
|
+
opt.on('-w', '--wait WaitOnElement') { |o|
|
183
|
+
if o.match(/\d+/)
|
184
|
+
@options[:default_wait] = o.to_i
|
185
|
+
end
|
186
|
+
}
|
138
187
|
opt.on('-t', '--title TITLE') { |o| @options[:title] = o }
|
139
188
|
|
140
189
|
opt.on('-u', '--user USER_ID') { |o|
|
@@ -219,6 +268,15 @@ module Scoutui::Utils
|
|
219
268
|
@options[:browser]
|
220
269
|
end
|
221
270
|
|
271
|
+
def getDefaultWait()
|
272
|
+
@options[:default_wait]
|
273
|
+
end
|
274
|
+
|
275
|
+
|
276
|
+
def assertExpected?
|
277
|
+
@options[:include_expected_as_asserts]
|
278
|
+
end
|
279
|
+
|
222
280
|
def hasTestConfig?
|
223
281
|
!@options[:json_config_file].nil?
|
224
282
|
end
|