scoutui 2.0.3.25.pre → 2.0.3.26.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/ex6/tests/test.sh +1 -1
- data/lib/scoutui/base/assertions.rb +163 -0
- data/lib/scoutui/base/visual_test_framework.rb +77 -1
- data/lib/scoutui/commands/utils.rb +2 -2
- data/lib/scoutui/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c6783826768bc5977a384aa09b0e27983ad1288
|
4
|
+
data.tar.gz: 42feaae713b7d18c646bb03ae2a69a2486426868
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 981d41edbbe8bc9d4b2139653eb30cdbb0b32adebe99962b41fff99cfaa99ba9a5149bd6ff8d12e68205f7c252dbde42cc33c925369cd6cf1ce32312f2f343f7
|
7
|
+
data.tar.gz: faeb7c953e1eb6cfd5b83d12f2bcc5e12a14cb7749f213e0e31bbb54ee562eaa65c01f5685471a334208b4ce1415124f3662a93ac8c1ce61d27cad66085466bb
|
data/examples/ex6/tests/test.sh
CHANGED
@@ -51,7 +51,7 @@ run1()
|
|
51
51
|
|
52
52
|
ruby $SCOUTUI_BIN \
|
53
53
|
--config ${TESTCFG} \
|
54
|
-
--user "expense.admin@scoutui.com" --password password1 \
|
54
|
+
--user "expense.admin@scoutui.com" --password password1 --role qa \
|
55
55
|
--diff /tmp/vt \
|
56
56
|
--pages ../appmodel/model.json \
|
57
57
|
--eyes:run false \
|
@@ -15,6 +15,167 @@ module Scoutui::Base
|
|
15
15
|
@drv=_drv
|
16
16
|
end
|
17
17
|
|
18
|
+
def isValue?(my_driver, page_elt)
|
19
|
+
|
20
|
+
rc = false
|
21
|
+
_txt = nil
|
22
|
+
|
23
|
+
if page_elt.is_a?(String) && page_elt.match(/^\s*(text|value)\s*\(/)
|
24
|
+
#
|
25
|
+
# text(page(home).get(elt))
|
26
|
+
# value(page(home).get(elt))
|
27
|
+
#
|
28
|
+
_processed=true
|
29
|
+
condition = page_elt.match(/(value|text)\((.*)\)/)[1].to_s
|
30
|
+
tmpObj = page_elt.match(/(value|text)\((.*)\)/)[2].to_s
|
31
|
+
expectedVal = page_elt.match(/(value|text)\s*\(.*\)\s*\=\s*(.*)/)[2].to_s
|
32
|
+
|
33
|
+
xpath = Scoutui::Base::UserVars.instance.get(tmpObj)
|
34
|
+
|
35
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " locator : #{xpath}"; #gets
|
36
|
+
|
37
|
+
obj = Scoutui::Base::QBrowser.getObject(my_driver, xpath, Scoutui::Commands::Utils.instance.getTimeout)
|
38
|
+
|
39
|
+
puts __FILE__ + (__LINE__).to_s + " #{condition} : #{obj}"
|
40
|
+
|
41
|
+
if !obj.nil?
|
42
|
+
if condition.match(/^text/)
|
43
|
+
_txt = obj.text
|
44
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " text : #{_txt}"
|
45
|
+
expected_regex = Regexp.new(expectedVal)
|
46
|
+
rc = !_txt.to_s.match(expected_regex).nil?
|
47
|
+
elsif condition.match(/^value/)
|
48
|
+
_txt = obj.attribute('value')
|
49
|
+
expected_regex = Regexp.new(expectedVal)
|
50
|
+
rc = !_txt.to_s.match(expected_regex).nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "txt/val: #{_txt} rc => #{rc}"
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
rc
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
def isEnabled?(my_driver, _execute_when)
|
63
|
+
rc=true
|
64
|
+
|
65
|
+
_locator = _execute_when.match(/^\s*[!]*isEnabled\((.*)\)\s*$/i)[1].to_s
|
66
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isChecked => #{_locator}"
|
67
|
+
|
68
|
+
_obj = Scoutui::Base::QBrowser.findElement(my_driver, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
69
|
+
|
70
|
+
_state = _obj.enabled?
|
71
|
+
|
72
|
+
puts __FILE__ + (__LINE__).to_s + " _obj.enabled? => #{_state}"
|
73
|
+
|
74
|
+
if _execute_when.match(/^\s*!isEnabled/i) && _state
|
75
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " !isEnabled(#{_locator}) : false"
|
76
|
+
rc=false
|
77
|
+
elsif _execute_when.match(/^\s*isEnabled/i) && !_state
|
78
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isEnabled(#{_locator}) : false"
|
79
|
+
rc=false
|
80
|
+
end
|
81
|
+
|
82
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isEnabled?(#{_execute_when}) => #{rc}"
|
83
|
+
rc
|
84
|
+
end
|
85
|
+
|
86
|
+
def isSelected?(my_driver, _execute_when)
|
87
|
+
rc=true
|
88
|
+
|
89
|
+
_locator = _execute_when.match(/^\s*[!]*(isSelected|selected)\((.*)\)\s*$/i)[2].to_s
|
90
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isChecked => #{_locator}"
|
91
|
+
|
92
|
+
_obj = Scoutui::Base::QBrowser.findElement(my_driver, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
93
|
+
|
94
|
+
_state = _obj.selected?
|
95
|
+
puts __FILE__ + (__LINE__).to_s + " _obj.selected? => #{_state}"
|
96
|
+
|
97
|
+
if _execute_when.match(/^\s*!(isSelected|selected)/i) && _state
|
98
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " !isSelected(#{_locator}) : false"
|
99
|
+
rc=false
|
100
|
+
elsif _execute_when.match(/^\s*(isSelected|selected)/i) && !_state
|
101
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelected(#{_locator}) : false"
|
102
|
+
rc=false
|
103
|
+
end
|
104
|
+
|
105
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelected?(#{_execute_when}) => #{rc}"
|
106
|
+
rc
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
def isVisible?(my_driver, _execute_when)
|
111
|
+
rc=true
|
112
|
+
|
113
|
+
begin
|
114
|
+
_locator = _execute_when.match(/^\s*[!]*visible\((.*)\)\s*$/i)[1].to_s
|
115
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible => #{_locator}"
|
116
|
+
|
117
|
+
_obj = Scoutui::Base::QBrowser.findElement(my_driver, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
118
|
+
|
119
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " obj => #{_obj}"
|
120
|
+
|
121
|
+
_state = false
|
122
|
+
if !_obj.nil? && _obj.is_a?(Selenium::WebDriver::Element)
|
123
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => Scoutui::Commands::Utils.instance.getTimeout)
|
124
|
+
_state = wait.until { _obj.displayed? }
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
puts __FILE__ + (__LINE__).to_s + " _obj.displayed? => #{_state}"
|
129
|
+
|
130
|
+
if _execute_when.match(/^\s*!visible/i) && _state
|
131
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " !visible(#{_locator}) : false"
|
132
|
+
rc=false
|
133
|
+
elsif _execute_when.match(/^\s*visible/i) && !_state
|
134
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible(#{_locator}) : false"
|
135
|
+
rc=false
|
136
|
+
end
|
137
|
+
|
138
|
+
rescue => ex
|
139
|
+
rc=false
|
140
|
+
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class.to_s}"
|
141
|
+
puts __FILE__ + (__LINE__).to_s + "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
142
|
+
end
|
143
|
+
|
144
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible?(#{_execute_when}) => #{rc}"
|
145
|
+
rc
|
146
|
+
end
|
147
|
+
|
148
|
+
|
149
|
+
def isRole?(_execute_when)
|
150
|
+
|
151
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isRole?(#{_execute_when})"
|
152
|
+
|
153
|
+
rc=false
|
154
|
+
|
155
|
+
if _execute_when.match(/^\s*(isrole|role)\s*(.*)\s*$/i)
|
156
|
+
_role = _execute_when.match(/^\s*(isrole|role)\s*(.*)\s*$/i)[2].to_s
|
157
|
+
_expected_role = Scoutui::Utils::TestUtils.instance.getRole()
|
158
|
+
|
159
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " Trigger: expected : #{_expected_role.to_s}, actual: #{_role.to_s}"
|
160
|
+
|
161
|
+
if !_expected_role.nil?
|
162
|
+
if _role.match(/#{_expected_role}/i)
|
163
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " role matches"
|
164
|
+
rc=true
|
165
|
+
else
|
166
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " roles do not match"
|
167
|
+
end
|
168
|
+
|
169
|
+
elsif _expected_role.nil?
|
170
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " Skip role based assertion since role was not provided"
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
|
175
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isRole() => #{rc}"
|
176
|
+
rc
|
177
|
+
end
|
178
|
+
|
18
179
|
|
19
180
|
def assertPage(my_driver, _pg, _req=nil)
|
20
181
|
if _req.nil?
|
@@ -191,6 +352,8 @@ module Scoutui::Base
|
|
191
352
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isEanbled(#{page_elt}"
|
192
353
|
end
|
193
354
|
|
355
|
+
|
356
|
+
|
194
357
|
#
|
195
358
|
# { reqid : <pageElt> }
|
196
359
|
def isVisible(my_driver, page_elt, _req=nil, _immediate=false)
|
@@ -453,14 +453,19 @@ module Scoutui::Base
|
|
453
453
|
|
454
454
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
455
455
|
|
456
|
-
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + "
|
456
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + "processExpected()"
|
457
457
|
|
458
458
|
Scoutui::Base::Assertions.instance.setDriver(my_driver)
|
459
459
|
|
460
460
|
if e[STEP_KEY].has_key?('expected')
|
461
|
+
|
461
462
|
expected_list=e[STEP_KEY]['expected']
|
463
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{expected_list}"
|
464
|
+
|
462
465
|
|
463
466
|
if expected_list.is_a?(Array)
|
467
|
+
|
468
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process Arr of Expected"
|
464
469
|
expected_list.each do |_condition|
|
465
470
|
verifyCondition(my_driver, _condition)
|
466
471
|
end
|
@@ -819,6 +824,77 @@ module Scoutui::Base
|
|
819
824
|
next
|
820
825
|
end
|
821
826
|
|
827
|
+
elsif _execute_when.is_a?(String) && _execute_when.match(/^\s*[!]*isEnabled\((.*)\)\s*$/i)
|
828
|
+
|
829
|
+
|
830
|
+
if !Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _execute_when)
|
831
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isEnabled => false"
|
832
|
+
next
|
833
|
+
end
|
834
|
+
|
835
|
+
elsif _execute_when.is_a?(String) && _execute_when.match(/^\s*[!]*isSelected\((.*)\)\s*$/i)
|
836
|
+
|
837
|
+
if !Scoutui::Base::Assertions.instance.isSelected?(my_driver, _execute_when)
|
838
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelected => false"
|
839
|
+
next
|
840
|
+
end
|
841
|
+
|
842
|
+
elsif _execute_when.is_a?(Array)
|
843
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process series of execute_when : #{_execute_when}"
|
844
|
+
|
845
|
+
_executeIt=true
|
846
|
+
|
847
|
+
_execute_when.each do |_a|
|
848
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " exeucute_when => #{_a}"
|
849
|
+
|
850
|
+
if _a.is_a?(String) && _a.match(/^\s*[!]*isEnabled\((.*)\)\s*$/i)
|
851
|
+
if !Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _a)
|
852
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isEnabled #{_e} : failed"
|
853
|
+
_executeIt=false
|
854
|
+
end
|
855
|
+
|
856
|
+
|
857
|
+
elsif _a.is_a?(String) && _a.match(/^\s*(isrole|role)\(.*\)\s*/i)
|
858
|
+
|
859
|
+
if !Scoutui::Base::Assertions.instance.isRole?(_a)
|
860
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isRole #{_a} : failed"
|
861
|
+
_executeIt = false
|
862
|
+
end
|
863
|
+
|
864
|
+
elsif _a.is_a?(String) && _a.match(/^\s*[!]*visible\((.*)\)\s*$/i)
|
865
|
+
|
866
|
+
if !Scoutui::Base::Assertions.instance.isVisible?(my_driver, _a)
|
867
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible #{_a} : failed"
|
868
|
+
_executeIt = false
|
869
|
+
end
|
870
|
+
|
871
|
+
elsif _a.is_a?(String) && _a.match(/^\s*[!]*(isSelected|selected)\((.*)\)\s*$/i)
|
872
|
+
|
873
|
+
if !Scoutui::Base::Assertions.instance.isSelected?(my_driver, _a)
|
874
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelected => false"
|
875
|
+
_executeIt=false
|
876
|
+
end
|
877
|
+
|
878
|
+
elsif _a.is_a?(String) && _a.match(/(value|text)\s*\(.*\)\s*\=\s*(.*)/i)
|
879
|
+
|
880
|
+
if !Scoutui::Base::Assertions.instance.isValue?(my_driver, _a)
|
881
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " value doesnt match"
|
882
|
+
_executeIt = false
|
883
|
+
end
|
884
|
+
|
885
|
+
end
|
886
|
+
|
887
|
+
if !_executeIt
|
888
|
+
break
|
889
|
+
end
|
890
|
+
|
891
|
+
end
|
892
|
+
|
893
|
+
if !_executeIt
|
894
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Dont execute"
|
895
|
+
next
|
896
|
+
end
|
897
|
+
|
822
898
|
|
823
899
|
elsif _execute_when.is_a?(String)
|
824
900
|
_rc=Scoutui::Base::Assertions.instance.isVisible(my_driver, _execute_when, _reqid, true)
|
@@ -184,7 +184,7 @@ module Scoutui::Commands
|
|
184
184
|
|
185
185
|
def isSelectWindow?(_action)
|
186
186
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isSelectWindow?(#{_action})"
|
187
|
-
!_action.match(
|
187
|
+
!_action.match(/^\s*select_window/i).nil?
|
188
188
|
end
|
189
189
|
|
190
190
|
def isExistsAlert?(_action)
|
@@ -236,7 +236,7 @@ module Scoutui::Commands
|
|
236
236
|
end
|
237
237
|
|
238
238
|
def isSelect?(_action)
|
239
|
-
!_action.nil? && _action.match(
|
239
|
+
!_action.nil? && _action.match(/^\s*select\s*\(/i)
|
240
240
|
end
|
241
241
|
|
242
242
|
def isNavigate?(_action)
|
data/lib/scoutui/version.rb
CHANGED
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.26.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-07-
|
11
|
+
date: 2016-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|