scoutui 2.0.3.33.pre → 2.0.3.34.pre
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/lib/scoutui/base/test_data.rb +42 -0
- data/lib/scoutui/base/test_scout.rb +1 -0
- data/lib/scoutui/base/user_vars.rb +3 -1
- data/lib/scoutui/base/visual_test_framework.rb +34 -4
- data/lib/scoutui/commands/command.rb +20 -0
- data/lib/scoutui/commands/commands.rb +5 -0
- data/lib/scoutui/commands/highlight.rb +6 -5
- data/lib/scoutui/commands/strategy.rb +1 -1
- data/lib/scoutui/commands/type.rb +24 -9
- data/lib/scoutui/commands/utils.rb +8 -0
- data/lib/scoutui/utils/utils.rb +6 -3
- data/lib/scoutui/version.rb +1 -1
- data/scoutui.gemspec +2 -0
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95773cc48b9ff71ee1e809d4c334cc78e58f793e
|
4
|
+
data.tar.gz: f2253aef2a5f532c1196bdd75bb77f5ed84aea1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e08d1f3d7e100eec17e598c4858d17a171e0419eca1d66a32808c2dfa50625ffac0d579be11de2be288d4600f4d9dfdfcfc099579aabda4731f20b6cd27fd7c6
|
7
|
+
data.tar.gz: a69dee7b822be4f69f6f7b9efcaa37a21f285abda72dbb482357d415b267522855716f8787c24032c2e3621c266715b4866ee8a0cb8a03d2e12fd5d71ecd39e1
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
require 'singleton'
|
4
|
+
require 'DataMgr'
|
5
|
+
|
6
|
+
module Scoutui::Base
|
7
|
+
|
8
|
+
class TestData
|
9
|
+
include Singleton
|
10
|
+
|
11
|
+
attr_accessor :testware
|
12
|
+
attr_accessor :dut
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@testware={}
|
16
|
+
end
|
17
|
+
|
18
|
+
def add(_id, _f)
|
19
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " add(#{_id}, #{_f})"
|
20
|
+
@testware[_id]=DataMgr::DataModel.new(_f)
|
21
|
+
|
22
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{@testware[_id]}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def addx(_id, _reqs)
|
26
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " add(#{_id}, #{_reqs}"
|
27
|
+
@requirements[_id]=_reqs
|
28
|
+
end
|
29
|
+
|
30
|
+
def get(_id, _locator)
|
31
|
+
rc=@testware[_id].getDataElement(_locator)
|
32
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " get(#{_id}, #{_locator}) : #{rc}"
|
33
|
+
rc
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
end
|
@@ -101,6 +101,7 @@ module Scoutui::Base
|
|
101
101
|
teardown()
|
102
102
|
|
103
103
|
rescue => ex
|
104
|
+
Scoutui::Utils::TestUtils.instance.setState(:abort, __FILE__ + (__LINE__).to_s + " : #{ex.class.to_s}: #{ex}")
|
104
105
|
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class.to_s} Error during processing: #{ex}"
|
105
106
|
Scoutui::Logger::LogMgr.instance.warn ex.backtrace
|
106
107
|
ensure
|
@@ -94,6 +94,8 @@ module Scoutui::Base
|
|
94
94
|
k=:lang
|
95
95
|
elsif k=='${browser}' || k=='__BROWSER__'
|
96
96
|
k=:browser
|
97
|
+
elsif k=='${role}' || k=='__ROLE__'
|
98
|
+
k=:role
|
97
99
|
elsif k.is_a?(Symbol)
|
98
100
|
foundKey=true
|
99
101
|
elsif k=='__random_email__'
|
@@ -115,7 +117,7 @@ module Scoutui::Base
|
|
115
117
|
foundKey=false
|
116
118
|
end
|
117
119
|
|
118
|
-
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " get(#{k}) => #{@globals.has_key?(k)}"
|
120
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " get(#{k}) => #{@globals.has_key?(k)}"
|
119
121
|
|
120
122
|
if @globals.has_key?(k) && foundKey
|
121
123
|
v=@globals[k]
|
@@ -830,9 +830,9 @@ module Scoutui::Base
|
|
830
830
|
|
831
831
|
totalWindows = my_driver.window_handles.length
|
832
832
|
|
833
|
-
Scoutui::Logger::LogMgr.instance.
|
834
|
-
Scoutui::Logger::LogMgr.instance.
|
835
|
-
Scoutui::Logger::LogMgr.instance.
|
833
|
+
Scoutui::Logger::LogMgr.instance.debug '-' * 72
|
834
|
+
Scoutui::Logger::LogMgr.instance.debug " [Pre-cmd]: Total Windows : #{totalWindows.to_s}"
|
835
|
+
Scoutui::Logger::LogMgr.instance.debug "#{i.to_s}. Processing #{e.inspect}"
|
836
836
|
i+=1
|
837
837
|
|
838
838
|
Scoutui::Utils::TestUtils.instance.setReq('UI')
|
@@ -1076,6 +1076,30 @@ module Scoutui::Base
|
|
1076
1076
|
|
1077
1077
|
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " ====== assertResults : #{_assertResult}"
|
1078
1078
|
|
1079
|
+
|
1080
|
+
|
1081
|
+
if e[STEP_KEY].has_key?("highlight") && e[STEP_KEY]["highlight"].has_key?("locators")
|
1082
|
+
_cmd="Highlight"
|
1083
|
+
|
1084
|
+
begin
|
1085
|
+
_c = Scoutui::Commands::Highlight.new('highlight')
|
1086
|
+
|
1087
|
+
if e[STEP_KEY]["highlight"].has_key?("assert") && e[STEP_KEY]["highlight"]["assert"].to_s.match(/\s*true\s*$/)
|
1088
|
+
_c.enableAsserts()
|
1089
|
+
else
|
1090
|
+
_c.disableAsserts()
|
1091
|
+
end
|
1092
|
+
|
1093
|
+
_pg={"page" => { "locators" => e[STEP_KEY]["highlight"]["locators"]} }
|
1094
|
+
_c.run(driver: my_driver, dut: _pg)
|
1095
|
+
|
1096
|
+
rescue => ex
|
1097
|
+
puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
|
1098
|
+
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
1099
|
+
end
|
1100
|
+
|
1101
|
+
end
|
1102
|
+
|
1079
1103
|
if !_assertResult && Scoutui::Utils::TestUtils.instance.isFailFast?
|
1080
1104
|
Scoutui::Utils::TestUtils.instance.setState(:abort, 'Failed assertion with failfast enabled.')
|
1081
1105
|
return
|
@@ -1165,7 +1189,13 @@ module Scoutui::Base
|
|
1165
1189
|
processExpected(my_driver, e)
|
1166
1190
|
processAssertions(my_driver, e)
|
1167
1191
|
|
1168
|
-
|
1192
|
+
if e[STEP_KEY].has_key?("highlight") && e[STEP_KEY]["highlight"].has_key?("locators")
|
1193
|
+
_cmd="Highlight"
|
1194
|
+
_c = Scoutui::Commands::Highlight.new('highlight')
|
1195
|
+
_c.run(driver: my_driver, dut: e[STEP_KEY])
|
1196
|
+
end
|
1197
|
+
|
1198
|
+
if !_region.nil?
|
1169
1199
|
eyeScout.check_window(_name, Scoutui::Base::UserVars.instance.normalize(_region))
|
1170
1200
|
else
|
1171
1201
|
eyeScout.check_window(_name)
|
@@ -12,10 +12,12 @@ module Scoutui::Commands
|
|
12
12
|
attr_accessor :executed_result
|
13
13
|
attr_accessor :stanza
|
14
14
|
attr_accessor :bm
|
15
|
+
attr_accessor :enableAssert
|
15
16
|
|
16
17
|
def initialize(_cmd, _drv=nil)
|
17
18
|
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " Command.init: #{_cmd.to_s}"
|
18
19
|
|
20
|
+
@enableAssert=true
|
19
21
|
@bm=nil
|
20
22
|
@cmd=_cmd
|
21
23
|
|
@@ -31,6 +33,24 @@ module Scoutui::Commands
|
|
31
33
|
@executed_result=nil
|
32
34
|
end
|
33
35
|
|
36
|
+
def assert?
|
37
|
+
@enableAssert
|
38
|
+
end
|
39
|
+
|
40
|
+
def enableAssert()
|
41
|
+
enableAsserts()
|
42
|
+
end
|
43
|
+
def enableAsserts()
|
44
|
+
@enableAssert=true
|
45
|
+
end
|
46
|
+
def disableAssert()
|
47
|
+
disableAsserts
|
48
|
+
end
|
49
|
+
|
50
|
+
def disableAsserts()
|
51
|
+
@enableAssert=false
|
52
|
+
end
|
53
|
+
|
34
54
|
def setResult(r)
|
35
55
|
Scoutui::Logger::LogMgr.instance.commands.debug " #{@cmd.to_s} : setResult(#{r.to_s})"
|
36
56
|
@executed=true
|
@@ -51,6 +51,11 @@ module Scoutui::Commands
|
|
51
51
|
_c = Scoutui::Commands::Pause.new(nil)
|
52
52
|
_c.execute(e);
|
53
53
|
|
54
|
+
elsif Scoutui::Commands::Utils.instance.isLoadData?(_action)
|
55
|
+
_cmd='loaddata'
|
56
|
+
_c = Scoutui::Commands::LoadData.new(e)
|
57
|
+
_c.run(driver: my_driver, dut: e)
|
58
|
+
|
54
59
|
elsif Scoutui::Commands::Utils.instance.isLoadRequirements?(_action)
|
55
60
|
_cmd='loadrequirements'
|
56
61
|
_c = Scoutui::Commands::LoadRequirements.new(e)
|
@@ -50,14 +50,11 @@ module Scoutui::Commands
|
|
50
50
|
if q.has_key?('frame')
|
51
51
|
Scoutui::Commands::Utils.instance.setEnableFrameSearch(q['frame'])
|
52
52
|
elt = q['locator']
|
53
|
-
|
54
|
-
# puts __FILE__ + (__LINE__).to_s + " highlight with frame #{q['frame']} with locator #{q['locator']} - PAUSE"
|
55
53
|
end
|
56
54
|
|
57
55
|
|
58
56
|
_loc = Scoutui::Base::UserVars.instance.normalize(elt)
|
59
57
|
|
60
|
-
# obj = Scoutui::Base::QBrowser.getObject(@drv, loc, Scoutui::Commands::Utils.instance.getTimeout)
|
61
58
|
obj = Scoutui::Base::QBrowser.findElement(@drv,
|
62
59
|
_loc,
|
63
60
|
Scoutui::Commands::Utils.instance.getFrameSearch(),
|
@@ -76,8 +73,12 @@ module Scoutui::Commands
|
|
76
73
|
|
77
74
|
rc &&= _rc
|
78
75
|
|
79
|
-
|
80
|
-
|
76
|
+
if assert?
|
77
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(!obj.nil?, "Verify object #{elt} to highlight exists : #{obj.class.to_s}")
|
78
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('highlight').add(_rc, "Verify highlight #{_rc} performed for #{elt}")
|
79
|
+
else
|
80
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " highlight(#{elt} : #{obj.class.to_s}"
|
81
|
+
end
|
81
82
|
|
82
83
|
end
|
83
84
|
|
@@ -31,7 +31,7 @@ module Scoutui::Commands
|
|
31
31
|
rc=true
|
32
32
|
rescue => ex
|
33
33
|
Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{$!}"
|
34
|
-
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{
|
34
|
+
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
35
35
|
end
|
36
36
|
|
37
37
|
rc
|
@@ -113,19 +113,34 @@ module Scoutui::Commands
|
|
113
113
|
obj.send_keys("")
|
114
114
|
@drv.action.send_keys(:enter).perform
|
115
115
|
else
|
116
|
-
_uservars = _val.scan(/\$\{(.*?)\}/)
|
117
116
|
|
118
|
-
|
119
|
-
for i in 0 .. (_uservars.size - 1)
|
117
|
+
if _val.match(/^\s*TestData\(.*\)\.getData\(.*\)\s*$/)
|
120
118
|
|
121
|
-
|
122
|
-
|
119
|
+
_dataID=_val.match(/^\s*TestData\((.*)\)\.getData\(.*\)\s*$/)[1].to_s
|
120
|
+
_getter=_val.match(/^\s*TestData\((.*)\)\.(getData\(.*\))\s*$/)[2].to_s
|
123
121
|
|
124
|
-
|
125
|
-
|
126
|
-
|
122
|
+
# _v2=_val
|
123
|
+
|
124
|
+
_v2=Scoutui::Base::TestData.instance.get(_dataID, _getter)
|
125
|
+
|
126
|
+
puts __FILE__ + (__LINE__).to_s + " getData ==> #{_v2}"
|
127
|
+
else
|
128
|
+
|
129
|
+
_uservars = _val.scan(/\$\{(.*?)\}/)
|
130
|
+
|
131
|
+
_v2 = _val
|
132
|
+
for i in 0 .. (_uservars.size - 1)
|
127
133
|
|
128
|
-
|
134
|
+
_t = Scoutui::Base::UserVars.instance.get(_uservars[i][0])
|
135
|
+
puts __FILE__ + (__LINE__).to_s + " translate(#{_uservars[i][0]}) => #{_t}"
|
136
|
+
|
137
|
+
if !_t.nil? && _uservars[i][0]!=_t
|
138
|
+
_v2.gsub!("\$\{#{_uservars[i][0]}\}", _t)
|
139
|
+
end
|
140
|
+
|
141
|
+
puts __FILE__ + (__LINE__).to_s + " value => #{_v2}"
|
142
|
+
|
143
|
+
end
|
129
144
|
|
130
145
|
end
|
131
146
|
|
@@ -24,6 +24,7 @@ module Scoutui::Commands
|
|
24
24
|
'submitform',
|
25
25
|
'type',
|
26
26
|
'click',
|
27
|
+
'loaddata',
|
27
28
|
'loadrequirements',
|
28
29
|
'mouseover',
|
29
30
|
'navigate',
|
@@ -256,6 +257,11 @@ module Scoutui::Commands
|
|
256
257
|
!_action.match(/fillform\(/i).nil?
|
257
258
|
end
|
258
259
|
|
260
|
+
def isLoadData?(_action)
|
261
|
+
!_action.match(/^\s*loaddata\s*$/i).nil?
|
262
|
+
end
|
263
|
+
|
264
|
+
|
259
265
|
def isLoadRequirements?(_action)
|
260
266
|
!_action.match(/^\s*loadrequirements\s*$/i).nil?
|
261
267
|
end
|
@@ -324,6 +330,8 @@ module Scoutui::Commands
|
|
324
330
|
@totalCommands['click']+=1
|
325
331
|
elsif isMouseOver?(cmd)
|
326
332
|
@totalCommands['mouseover']+=1
|
333
|
+
elsif isLoadData?(cmd)
|
334
|
+
@totalCommands['loaddata']+=1
|
327
335
|
elsif isLoadRequirements?(cmd)
|
328
336
|
@totalCommands['loadrequirements']+=1
|
329
337
|
elsif isSelect?(cmd)
|
data/lib/scoutui/utils/utils.rb
CHANGED
@@ -34,7 +34,7 @@ module Scoutui::Utils
|
|
34
34
|
@currentTest={:reqid => 'UI', :testcase => '00' }
|
35
35
|
|
36
36
|
[:accounts, :browser, :capabilities, :diffs_dir, :test_file, :host, :loc, :title, :viewport,
|
37
|
-
:userid, :password, :json_config_file, :page_model, :test_config,
|
37
|
+
:userid, :password, :role, :json_config_file, :page_model, :test_config,
|
38
38
|
:debug].each do |o|
|
39
39
|
@options[o]=nil
|
40
40
|
end
|
@@ -251,7 +251,9 @@ module Scoutui::Utils
|
|
251
251
|
opt.on('--eyes:viewport [resolution]') { |o| @options[:viewport] = o }
|
252
252
|
|
253
253
|
|
254
|
-
opt.on('--role ROLE') { |o|
|
254
|
+
opt.on('--role ROLE') { |o|
|
255
|
+
@options[:role]=o
|
256
|
+
}
|
255
257
|
|
256
258
|
opt.on('-s', '--sauce', "Toggle SauceLabs") {
|
257
259
|
@options[:enable_sauce]=true
|
@@ -284,6 +286,7 @@ module Scoutui::Utils
|
|
284
286
|
Scoutui::Logger::LogMgr.instance.info "Browser => #{@options[:browser]}"
|
285
287
|
Scoutui::Logger::LogMgr.instance.info "UserID => #{@options[:userid]}"
|
286
288
|
Scoutui::Logger::LogMgr.instance.info "Password => #{@options[:password]}"
|
289
|
+
Scoutui::Logger::LogMgr.instance.info "Role => #{@options[:role]}"
|
287
290
|
Scoutui::Logger::LogMgr.instance.info "Eyes => #{@options[:enable_eyes]}"
|
288
291
|
Scoutui::Logger::LogMgr.instance.info "Test Cfg => #{@options[:json_config_file]}"
|
289
292
|
Scoutui::Logger::LogMgr.instance.info "Match Level => #{@options[:match_level]}"
|
@@ -410,7 +413,7 @@ module Scoutui::Utils
|
|
410
413
|
|
411
414
|
Scoutui::Logger::LogMgr.instance.setLevel(@options[:log_level])
|
412
415
|
|
413
|
-
[:accounts, :browser, :dut, :host, :userid, :password].each do |k|
|
416
|
+
[:accounts, :browser, :dut, :host, :role, :userid, :password].each do |k|
|
414
417
|
|
415
418
|
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " opt[test_config].has_key(#{k.to_s}) => #{@options[:test_config].has_key?(k.to_s)}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
416
419
|
|
data/lib/scoutui/version.rb
CHANGED
data/scoutui.gemspec
CHANGED
@@ -33,4 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency "logging"
|
34
34
|
spec.add_development_dependency "sauce_whisk"
|
35
35
|
spec.add_development_dependency "testmgr", "0.3.2.pre"
|
36
|
+
spec.add_development_dependency "tiny_tds"
|
37
|
+
spec.add_development_dependency "DataMgr", ">= 0.1.1.1.pre"
|
36
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scoutui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.3.
|
4
|
+
version: 2.0.3.34.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Kim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -164,6 +164,34 @@ dependencies:
|
|
164
164
|
- - '='
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: 0.3.2.pre
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: tiny_tds
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: DataMgr
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 0.1.1.1.pre
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.1.1.1.pre
|
167
195
|
description: Leverage a fully functional e2e framework that's integrated with Applitool's
|
168
196
|
Eyes and Sauce Labs!
|
169
197
|
email:
|
@@ -239,6 +267,7 @@ files:
|
|
239
267
|
- lib/scoutui/base/q_browser.rb
|
240
268
|
- lib/scoutui/base/q_form.rb
|
241
269
|
- lib/scoutui/base/requirements.rb
|
270
|
+
- lib/scoutui/base/test_data.rb
|
242
271
|
- lib/scoutui/base/test_scout.rb
|
243
272
|
- lib/scoutui/base/test_settings.rb
|
244
273
|
- lib/scoutui/base/user_vars.rb
|