scoutui 2.0.3.50.pre → 2.0.3.51.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/scoutui/appmodel/q_model.rb +9 -2
- data/lib/scoutui/base/assertions.rb +19 -2
- data/lib/scoutui/base/q_browser.rb +119 -3
- data/lib/scoutui/base/visual_test_framework.rb +113 -13
- data/lib/scoutui/commands/commands.rb +3 -1
- data/lib/scoutui/commands/select_object.rb +6 -2
- data/lib/scoutui/commands/type.rb +14 -2
- data/lib/scoutui/commands/update_url.rb +7 -0
- data/lib/scoutui/commands/utils.rb +2 -0
- data/lib/scoutui/utils/utils.rb +8 -0
- 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: 6c5cc805fe6fbfbc8493fbba16daf30ce96ed97a
|
4
|
+
data.tar.gz: 6713d51d7c4dda1a06c7ed3da8be5ab87d08eee2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c185fb0012d0fa6176d1112f58a41cbccadc92535803a74bf57cae78aa267656baaaf158e2165d4d574e2652ce60c5a57c88db3d9466849839663f74d70bb8a
|
7
|
+
data.tar.gz: 47cf0a7f0360242c67f9dadb5c36c671e4e530831f08335021356b0c14411c3a68d5ffe126f7ad18a833e664d50d008a54cf513c333fd0169ac0e8551363a648
|
@@ -71,9 +71,16 @@ module Scoutui::ApplicationModel
|
|
71
71
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " -- process page --" if Scoutui::Utils::TestUtils.instance.isDebug?
|
72
72
|
hit=@app_model[_obj]
|
73
73
|
elsif getter.downcase=='get'
|
74
|
-
|
74
|
+
|
75
|
+
if !hit.nil? && hit.has_key?(_obj)
|
76
|
+
hit=hit[_obj]
|
77
|
+
else
|
78
|
+
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Missing getter : #{_obj.to_s}"
|
79
|
+
return nil
|
80
|
+
end
|
81
|
+
|
75
82
|
else
|
76
|
-
Scoutui::Logger::LogMgr.instance.
|
83
|
+
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " getter : #{getter} is unknown."
|
77
84
|
return nil
|
78
85
|
end
|
79
86
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HIT => #{hit}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
@@ -184,7 +184,16 @@ module Scoutui::Base
|
|
184
184
|
end
|
185
185
|
|
186
186
|
def isVisibleCmd?(_a)
|
187
|
-
_a.is_a?(String) &&
|
187
|
+
_a.is_a?(String) &&
|
188
|
+
( _a.match(/^\s*[!]*visible\((.*)\)\s*$/i) ||
|
189
|
+
_a.match(/^\s*[!]*visible\((.*)?,\s*(\d+)\s*\)$/) )
|
190
|
+
|
191
|
+
|
192
|
+
# if xpath.match(/^\s*!visible\((.*,\s*\d+\s*)\)$/)
|
193
|
+
# _e = xpath.match(/^\s*!visible\((.*),\s*\d+\s*\)$/)[1].to_s.strip
|
194
|
+
# _timeout=xpath.match(/^\s*!visible\((.*),\s*(\d+)\s*\)$/)[2].to_i
|
195
|
+
# end
|
196
|
+
|
188
197
|
end
|
189
198
|
|
190
199
|
|
@@ -438,6 +447,8 @@ module Scoutui::Base
|
|
438
447
|
def isVisible?(my_driver, _execute_when, _enableAsserts=true)
|
439
448
|
rc=true
|
440
449
|
|
450
|
+
_tm = Scoutui::Commands::Utils.instance.getTimeout
|
451
|
+
|
441
452
|
begin
|
442
453
|
|
443
454
|
_t = isVisibleFrameCmd?(_execute_when)
|
@@ -454,7 +465,13 @@ module Scoutui::Base
|
|
454
465
|
end
|
455
466
|
|
456
467
|
elsif isVisibleCmd?(_execute_when)
|
468
|
+
|
469
|
+
if _execute_when.match(/^\s*[!]*visible\((.*)?,\s*(\d+)\s*\)$/)
|
470
|
+
_locator = _execute_when.match(/^\s*[!]*visible\((.*)?,\s*(\d+)\s*\)$/)[1].to_s
|
471
|
+
_tm = _execute_when.match(/^\s*[!]*visible\((.*)?,\s*(\d+)\s*\)$/)[2].to_i
|
472
|
+
else
|
457
473
|
_locator = _execute_when.match(/^\s*[!]*visible\((.*)\)\s*$/i)[1].to_s
|
474
|
+
end
|
458
475
|
|
459
476
|
|
460
477
|
_locator = Scoutui::Base::UserVars.instance.normalize(_locator)
|
@@ -465,7 +482,7 @@ module Scoutui::Base
|
|
465
482
|
|
466
483
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible => #{_locator}"
|
467
484
|
|
468
|
-
_obj = Scoutui::Base::QBrowser.findElement(my_driver, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
485
|
+
_obj = Scoutui::Base::QBrowser.findElement(my_driver, _locator, Scoutui::Commands::Utils.instance.getFrameSearch(), _tm) # Scoutui::Commands::Utils.instance.getTimeout)
|
469
486
|
|
470
487
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " obj => #{_obj}"
|
471
488
|
|
@@ -19,10 +19,7 @@ module Scoutui::Base
|
|
19
19
|
begin
|
20
20
|
Selenium::WebDriver::Wait.new(timeout: _timeout).until {
|
21
21
|
rc=drv.find_element(:xpath => xpath).displayed?
|
22
|
-
|
23
22
|
obj=getObject(drv, obj, _timeout=nil)
|
24
|
-
|
25
|
-
|
26
23
|
}
|
27
24
|
rescue => ex
|
28
25
|
;
|
@@ -423,6 +420,124 @@ module Scoutui::Base
|
|
423
420
|
obj
|
424
421
|
end
|
425
422
|
|
423
|
+
|
424
|
+
# 5150
|
425
|
+
def self.findElements(opts)
|
426
|
+
puts __FILE__ + (__LINE__).to_s + " findElements(#{opts})"
|
427
|
+
driver=opts[:driver]
|
428
|
+
locator=opts[:locator]
|
429
|
+
locateBy=:xpath
|
430
|
+
hits=nil
|
431
|
+
|
432
|
+
|
433
|
+
if locator.match(/^\s*css\s*\=\s*/i)
|
434
|
+
locateBy = :css
|
435
|
+
locator = locator.match(/css\s*\=\s*(.*)/i)[1].to_s
|
436
|
+
elsif locator.match(/^#/i)
|
437
|
+
locateBy = :css
|
438
|
+
end
|
439
|
+
|
440
|
+
puts __FILE__ + (__LINE__).to_s + " driver : #{driver.class}"
|
441
|
+
puts __FILE__ + (__LINE__).to_s + " locator : #{locator}"
|
442
|
+
|
443
|
+
begin
|
444
|
+
_timeout=Scoutui::Commands::Utils.instance.getTimeout
|
445
|
+
Selenium::WebDriver::Wait.new(timeout: _timeout).until { hits=driver.find_elements( locateBy => locator) }
|
446
|
+
|
447
|
+
rescue => ex
|
448
|
+
puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
|
449
|
+
puts ex.backtrace
|
450
|
+
|
451
|
+
end
|
452
|
+
hits
|
453
|
+
end
|
454
|
+
|
455
|
+
def self.hasParent?(element, parent_xpath)
|
456
|
+
|
457
|
+
parent=nil
|
458
|
+
if element.is_a?(Selenium::WebDriver::Element)
|
459
|
+
begin
|
460
|
+
parent = element.find_element(:xpath, parent_xpath)
|
461
|
+
rescue Selenium::WebDriver::Error::NoSuchElementError
|
462
|
+
;
|
463
|
+
end
|
464
|
+
|
465
|
+
end
|
466
|
+
|
467
|
+
parent
|
468
|
+
end
|
469
|
+
|
470
|
+
# 5150
|
471
|
+
# http://stackoverflow.com/questions/14288917/selenium-webdriver-get-attributes-after-finding-an-element
|
472
|
+
def self.isAccessible(opts)
|
473
|
+
|
474
|
+
puts __FILE__ + (__LINE__).to_s + " == isAccessible(#{opts}) =="
|
475
|
+
hits = Scoutui::Base::QBrowser.findElements(opts)
|
476
|
+
|
477
|
+
puts __FILE__ + (__LINE__).to_s + " HITS => #{hits.length}"
|
478
|
+
|
479
|
+
|
480
|
+
i=0
|
481
|
+
begin
|
482
|
+
hits.each do | obj |
|
483
|
+
if obj.displayed?
|
484
|
+
puts __FILE__ + (__LINE__).to_s + " #{i}. #{obj.tag_name}"
|
485
|
+
|
486
|
+
tagName=obj.tag_name.to_s.strip
|
487
|
+
|
488
|
+
## Verify labels are present for user input elements
|
489
|
+
if tagName.match(/(textarea|input)/) && obj.attribute('id')
|
490
|
+
id=obj['id'].to_s
|
491
|
+
|
492
|
+
# parent_li = obj.find_element(:xpath, './../label')
|
493
|
+
parent_li = Scoutui::Base::QBrowser.hasParent?(obj, "./../label[@for='#{id}']")
|
494
|
+
|
495
|
+
Testmgr::TestReport.instance.getReq('WCAG').testcase(tagName).add(!parent_li.nil?, "Verify matching label (id=#{id.to_s}) exists for #{tagName}.")
|
496
|
+
|
497
|
+
if parent_li
|
498
|
+
forId = parent_li['for']
|
499
|
+
puts __FILE__ + (__LINE__).to_s + " parent: #{parent_li.tag_name}"
|
500
|
+
puts __FILE__ + (__LINE__).to_s + " assert <id, for>: #{id}, #{forId}"
|
501
|
+
|
502
|
+
Testmgr::TestReport.instance.getReq('WCAG').testcase(tagName).add(id==forId, "Verify matching label for #{tagName} has same id (#{id}) and for (#{forId}) values")
|
503
|
+
else
|
504
|
+
puts __FILE__ + (__LINE__).to_s + " => Missing associated label for #{tagName}"
|
505
|
+
end
|
506
|
+
|
507
|
+
|
508
|
+
#---------------------------------------------------#
|
509
|
+
|
510
|
+
elsif tagName.match(/(img)/)
|
511
|
+
|
512
|
+
src=obj.attribute('src')
|
513
|
+
alt=obj.attribute('alt')
|
514
|
+
longdesc=obj.attribute('longdesc')
|
515
|
+
|
516
|
+
puts __FILE__ + (__LINE__).to_s + " ** #{i}. process #{tagName} <alt, longdesc>::<#{alt.nil?}, #{longdesc.nil?}, #{src}> **"
|
517
|
+
|
518
|
+
Testmgr::TestReport.instance.getReq('WCAG').testcase(tagName).add(!(alt.nil? && longdesc.nil?), "Verify alt/longdesc (#{alt.to_s} exists for img[#{i}] (#{src})")
|
519
|
+
|
520
|
+
|
521
|
+
else
|
522
|
+
puts __FILE__ + (__LINE__).to_s + " == #{tagName} out of scope for Acccessibility"
|
523
|
+
|
524
|
+
end
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
i+=1
|
529
|
+
end
|
530
|
+
end
|
531
|
+
|
532
|
+
rescue => ex
|
533
|
+
puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
|
534
|
+
puts ex.backtrace
|
535
|
+
end
|
536
|
+
|
537
|
+
|
538
|
+
end
|
539
|
+
|
540
|
+
|
426
541
|
def self.findElement(drv, _locator, _frames, _timeout=nil)
|
427
542
|
|
428
543
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " findElement(#{_locator}, #{Scoutui::Commands::Utils.instance.getFrameSearch})"
|
@@ -621,6 +736,7 @@ module Scoutui::Base
|
|
621
736
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " By => #{locateBy.to_s}"
|
622
737
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Locator => #{locator}"
|
623
738
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Visible_When => #{visible_when}"
|
739
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Timeout => #{_timeout}"
|
624
740
|
|
625
741
|
Selenium::WebDriver::Wait.new(timeout: _timeout).until { rc=drv.find_element( locateBy => locator) }
|
626
742
|
|
@@ -57,6 +57,10 @@ module Scoutui::Base
|
|
57
57
|
|
58
58
|
Scoutui::Base::Assertions.instance.assertPageElement(k, page_elt, _obj, my_driver, _req)
|
59
59
|
|
60
|
+
if page_elt.has_key?('asserts')
|
61
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ** process Asserts #{page_elt['asserts']} **"
|
62
|
+
STDIN.gets
|
63
|
+
end
|
60
64
|
|
61
65
|
|
62
66
|
elsif sub_elts > 0
|
@@ -108,6 +112,7 @@ module Scoutui::Base
|
|
108
112
|
|
109
113
|
if _v.has_key?('reqid')
|
110
114
|
_req=_v['reqid'].to_s
|
115
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " temporary update REQID to #{_req}"
|
111
116
|
end
|
112
117
|
|
113
118
|
if _v.has_key?('locator')
|
@@ -118,7 +123,25 @@ module Scoutui::Base
|
|
118
123
|
|
119
124
|
_obj = Scoutui::Base::QBrowser.getFirstObject(my_driver, _locator, Scoutui::Commands::Utils.instance.getTimeout())
|
120
125
|
|
121
|
-
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " HIT #{_locator} => #{(!_obj.nil?).to_s}"
|
126
|
+
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " HIT #{_locator} => #{(!_obj.nil?).to_s}"
|
127
|
+
end
|
128
|
+
|
129
|
+
|
130
|
+
if _v.has_key?('asserts')
|
131
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ** process Asserts **"
|
132
|
+
_v['asserts'].each do | _ass|
|
133
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{_ass}"
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
# Should be refactored (TBD)
|
138
|
+
_backupReq = Scoutui::Utils::TestUtils.instance.getReq()
|
139
|
+
Scoutui::Utils::TestUtils.instance.setReq(_req) if !_req.nil?
|
140
|
+
|
141
|
+
_assertResult=processAsserts(my_driver, _v["asserts"])
|
142
|
+
|
143
|
+
Scoutui::Utils::TestUtils.instance.setReq(_backupReq) if !_req.nil?
|
144
|
+
|
122
145
|
end
|
123
146
|
|
124
147
|
if Scoutui::Base::Assertions.instance.visible_when_always(_k, _v, _obj, _req)
|
@@ -153,9 +176,13 @@ module Scoutui::Base
|
|
153
176
|
|
154
177
|
|
155
178
|
end
|
179
|
+
|
180
|
+
else
|
181
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Unknown: #{_k} : #{_v}"
|
156
182
|
end
|
157
183
|
|
158
184
|
|
185
|
+
|
159
186
|
rescue => ex
|
160
187
|
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{ex}"
|
161
188
|
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
@@ -186,6 +213,11 @@ module Scoutui::Base
|
|
186
213
|
end
|
187
214
|
|
188
215
|
# next
|
216
|
+
|
217
|
+
elsif page_elt.is_a?(Hash) && page_elt.has_key?('asserts')
|
218
|
+
# 5150
|
219
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ** asserts from PageElement verification **"
|
220
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " =============="; STDIN.gets
|
189
221
|
end
|
190
222
|
|
191
223
|
|
@@ -319,6 +351,7 @@ module Scoutui::Base
|
|
319
351
|
processConditions(my_driver, e, 'assertions')
|
320
352
|
end
|
321
353
|
|
354
|
+
# recsult=processAsserts(my_driver, e[STEP_KEY]["asserts"])
|
322
355
|
def self.processAsserts(my_driver, _execute_when, _enableAsserts=true)
|
323
356
|
|
324
357
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " processAsserts#{_execute_when}"
|
@@ -334,34 +367,60 @@ module Scoutui::Base
|
|
334
367
|
|
335
368
|
_rc=nil
|
336
369
|
|
370
|
+
_bm=nil
|
337
371
|
|
338
372
|
_assertType=Scoutui::Base::Assertions.instance.isValidAssertType(_a)
|
339
373
|
|
340
|
-
|
374
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " assertType : #{_assertType}"
|
341
375
|
|
376
|
+
if !_assertType.nil?
|
342
377
|
|
343
378
|
if _assertType[:cmd].match(/^\s*isEnabled\s*$/i) # Scoutui::Base::Assertions.instance.isEnabledCmd?(_a)
|
344
|
-
|
379
|
+
|
380
|
+
_bm=Benchmark.measure {
|
381
|
+
_rc=Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _a, _enableAsserts)
|
382
|
+
}
|
383
|
+
|
345
384
|
elsif _assertType[:cmd]=='visible'
|
346
|
-
|
385
|
+
|
386
|
+
_bm=Benchmark.measure {
|
387
|
+
_rc=Scoutui::Base::Assertions.instance.isVisible?(my_driver, _a, _enableAsserts)
|
388
|
+
}
|
389
|
+
|
347
390
|
elsif _assertType[:cmd]=='isSelected'
|
348
|
-
|
391
|
+
_bm=Benchmark.measure {
|
392
|
+
_rc=Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _a)
|
393
|
+
}
|
394
|
+
|
349
395
|
elsif _assertType[:cmd]=='isText'
|
350
|
-
|
396
|
+
_bm=Benchmark.measure {
|
397
|
+
_rc=Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _a)
|
398
|
+
}
|
399
|
+
|
351
400
|
elsif _assertType[:cmd]=='isValue'
|
352
|
-
|
401
|
+
_bm=Benchmark.measure {
|
402
|
+
_rc=Scoutui::Base::Assertions.instance.isEnabled?(my_driver, _a)
|
403
|
+
}
|
353
404
|
end
|
354
405
|
|
355
406
|
elsif Scoutui::Base::Assertions.instance.isRoleCmd?(_a)
|
356
|
-
|
407
|
+
_bm=Benchmark.measure {
|
408
|
+
_rc=Scoutui::Base::Assertions.instance.isRole?(_a)
|
409
|
+
}
|
357
410
|
# elsif Scoutui::Base::Assertions.instance.isVisibleCmd?(_a)
|
358
411
|
# _rc=Scoutui::Base::Assertions.instance.isVisible?(my_driver, _a)
|
359
412
|
elsif Scoutui::Base::Assertions.instance.isSelectedCmd?(_a)
|
360
|
-
|
413
|
+
_bm=Benchmark.measure {
|
414
|
+
_rc=Scoutui::Base::Assertions.instance.isSelected?(my_driver, _a)
|
415
|
+
}
|
361
416
|
elsif Scoutui::Base::Assertions.instance.isValueCmd?(_a)
|
362
|
-
|
417
|
+
_bm=Benchmark.measure {
|
418
|
+
_rc=Scoutui::Base::Assertions.instance.isValue?(my_driver, _a)
|
419
|
+
}
|
363
420
|
elsif Scoutui::Base::Assertions.instance.isTitleCmd?(_a)
|
364
|
-
|
421
|
+
_bm=Benchmark.measure {
|
422
|
+
_rc=Scoutui::Base::Assertions.instance.isTitle(my_driver, _a)
|
423
|
+
}
|
365
424
|
elsif _a.match(/^\s*(req|requirement)\s*\((.*)\)\s*$/i)
|
366
425
|
|
367
426
|
_reqID=_a.match(/^\s*(req|requirement)\s*\((.*)\)\s*$/i)[2].to_s
|
@@ -371,15 +430,45 @@ module Scoutui::Base
|
|
371
430
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{_reqAsserts}"
|
372
431
|
|
373
432
|
_req = Scoutui::Utils::TestUtils.instance.setReq(_reqID)
|
374
|
-
|
433
|
+
|
434
|
+
_bm=Benchmark.measure {
|
435
|
+
_rc=processAsserts(my_driver, _reqAsserts, _enableAsserts)
|
436
|
+
}
|
437
|
+
|
375
438
|
Scoutui::Utils::TestUtils.instance.setReq(_req)
|
439
|
+
|
440
|
+
|
441
|
+
elsif !_a.match(/^page\([\w\d]+\)/).nil?
|
442
|
+
|
443
|
+
puts __FILE__ + (__LINE__).to_s + "\n\n=== Validate Page ==="
|
444
|
+
|
445
|
+
_obj = processPageElement(my_driver, nil, _a)
|
446
|
+
|
447
|
+
# 5150
|
448
|
+
puts __FILE__ + (__LINE__).to_s + " *** WHAT type of assertion => #{_obj}"; STDIN.gets
|
449
|
+
|
450
|
+
elsif !_a.match(/^\s*accessibility\s*$/).nil?
|
451
|
+
puts __FILE__ + (__LINE__).to_s + " *** Accessibility ***"
|
452
|
+
|
453
|
+
|
454
|
+
# 5150
|
455
|
+
# Get all displayed textareas
|
456
|
+
['//textarea', '//img'].each do |elt_wcag|
|
457
|
+
Scoutui::Base::QBrowser.isAccessible({ :driver => my_driver, :locator => elt_wcag })
|
458
|
+
end
|
459
|
+
|
460
|
+
# textAreas = Scoutui::Base::QBrowser.getObjects( { :driver => my_driver, :locator => '//textarea' })
|
376
461
|
end
|
377
462
|
|
378
463
|
if !_rc.nil?
|
379
464
|
|
380
465
|
if _enableAsserts
|
381
466
|
Scoutui::Logger::LogMgr.instance.asserts.info __FILE__ + (__LINE__).to_s + " Verify #{_a} - #{_rc}"
|
382
|
-
|
467
|
+
|
468
|
+
|
469
|
+
_testcase = Scoutui::Utils::TestUtils.instance.getTC() || "visible_when"
|
470
|
+
|
471
|
+
Testmgr::TestReport.instance.getReq(_req).get_child(_testcase).add(_rc, "Assert #{_a}", _bm.real)
|
383
472
|
end
|
384
473
|
|
385
474
|
Scoutui::Commands::Utils.instance.resetFrameSearch()
|
@@ -847,6 +936,7 @@ module Scoutui::Base
|
|
847
936
|
_skip = e[STEP_KEY]["skip"]
|
848
937
|
_region = e[STEP_KEY]["region"]
|
849
938
|
_reqid = e[STEP_KEY]["reqid"]
|
939
|
+
_testcase = e[STEP_KEY]["testcase"]
|
850
940
|
_execute_when = e[STEP_KEY]["execute_when"]
|
851
941
|
_use_frames = e[STEP_KEY]["frames"]
|
852
942
|
|
@@ -873,6 +963,10 @@ module Scoutui::Base
|
|
873
963
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " REQID was not provided"
|
874
964
|
end
|
875
965
|
|
966
|
+
if !(_testcase.nil? || _testcase.empty?)
|
967
|
+
Scoutui::Utils::TestUtils.instance.setTC(_testcase)
|
968
|
+
end
|
969
|
+
|
876
970
|
|
877
971
|
if !_execute_when.nil? && !_execute_when.to_s.empty?
|
878
972
|
|
@@ -1233,6 +1327,12 @@ module Scoutui::Base
|
|
1233
1327
|
processExpected(my_driver, e)
|
1234
1328
|
processAssertions(my_driver, e)
|
1235
1329
|
_assertResult=processAsserts(my_driver, e[STEP_KEY]["asserts"]) # 5150
|
1330
|
+
|
1331
|
+
if e[STEP_KEY].has_key?('accessible') && e[STEP_KEY]['accessible'].to_s.match(/true/)
|
1332
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ** Accessibility **"
|
1333
|
+
STDIN.gets
|
1334
|
+
end
|
1335
|
+
|
1236
1336
|
Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " ====== assertResults : #{_assertResult}"
|
1237
1337
|
|
1238
1338
|
if e[STEP_KEY].has_key?("highlight") && e[STEP_KEY]["highlight"].has_key?("locators")
|
@@ -102,7 +102,9 @@ module Scoutui::Commands
|
|
102
102
|
_caborted=true
|
103
103
|
end
|
104
104
|
|
105
|
-
|
105
|
+
_testcase = Scoutui::Utils::TestUtils.instance.getTC() || _cmd.downcase
|
106
|
+
|
107
|
+
Testmgr::TestReport.instance.getReq(_req).get_child(_testcase).add(!_caborted, "Assert command assign did not abort")
|
106
108
|
end
|
107
109
|
end
|
108
110
|
|
@@ -8,6 +8,8 @@ module Scoutui::Commands
|
|
8
8
|
|
9
9
|
def execute(drv, e=nil)
|
10
10
|
|
11
|
+
_seekTime={ :start => 0, :end => 0 }
|
12
|
+
|
11
13
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " SelectObject.execute(#{e})"
|
12
14
|
@drv=drv if !drv.nil?
|
13
15
|
|
@@ -30,7 +32,9 @@ module Scoutui::Commands
|
|
30
32
|
puts __FILE__ + (__LINE__).to_s + " frames => #{e['page']['frames']}";
|
31
33
|
end
|
32
34
|
|
35
|
+
_seekTime[:start]=Time.now
|
33
36
|
obj = Scoutui::Base::QBrowser.findElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
37
|
+
_seekTime[:end]=Time.now
|
34
38
|
|
35
39
|
|
36
40
|
if !obj.nil? && obj.tag_name.downcase.match(/(select)/)
|
@@ -57,8 +61,8 @@ module Scoutui::Commands
|
|
57
61
|
Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
58
62
|
end
|
59
63
|
|
60
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('select').add(!obj.nil?, "Verify object to select exists #{_xpath} : #{obj.class.to_s}")
|
61
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('select').add(_rc, "Verify selected text #{_val}")
|
64
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('select').add(!obj.nil?, Scoutui::Base::UserVars.instance.normalize("Verify object to select exists #{_xpath} : #{obj.class.to_s}"), _seekTime[:end] - _seekTime[:start])
|
65
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('select').add(_rc, Scoutui::Base::UserVars.instance.normalize("Verify selected text #{_val}"))
|
62
66
|
setResult(_rc)
|
63
67
|
|
64
68
|
end
|
@@ -52,6 +52,8 @@ module Scoutui::Commands
|
|
52
52
|
def execute(drv=nil, pageElt=nil)
|
53
53
|
@drv=drv if !drv.nil?
|
54
54
|
|
55
|
+
_tm={:start => 0, :end => 0 }
|
56
|
+
|
55
57
|
_isKb=false
|
56
58
|
_rc=false
|
57
59
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
@@ -83,8 +85,12 @@ module Scoutui::Commands
|
|
83
85
|
|
84
86
|
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + "Process TYPE #{_val} into #{_xpath}"
|
85
87
|
|
88
|
+
_tm[:start]=Time.now
|
89
|
+
|
86
90
|
obj = Scoutui::Base::QBrowser.getElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
87
91
|
|
92
|
+
_tm[:end]=Time.now
|
93
|
+
|
88
94
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " type(#{_val})"
|
89
95
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " tag : #{obj.tag_name}" if obj.is_a?(Selenium::WebDriver::Element)
|
90
96
|
|
@@ -107,6 +113,9 @@ module Scoutui::Commands
|
|
107
113
|
end
|
108
114
|
true if obj.displayed?
|
109
115
|
}
|
116
|
+
|
117
|
+
_tm[:end]=Time.now
|
118
|
+
|
110
119
|
rescue Selenium::WebDriver::Error::TimeOutError => ex
|
111
120
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Timeout waiting for display?: #{_xpath}"
|
112
121
|
end
|
@@ -119,6 +128,7 @@ module Scoutui::Commands
|
|
119
128
|
(0..3).each do |j|
|
120
129
|
if Scoutui::Base::QBrowser.isStale?(obj)
|
121
130
|
obj = Scoutui::Base::QBrowser.getElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
131
|
+
_tm[:end]=Time.now
|
122
132
|
else
|
123
133
|
break
|
124
134
|
end
|
@@ -181,12 +191,14 @@ module Scoutui::Commands
|
|
181
191
|
_inRow=0
|
182
192
|
sleep 0.5
|
183
193
|
obj = Scoutui::Base::QBrowser.getElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
194
|
+
_tm[:end]=Time.now
|
184
195
|
else
|
185
196
|
_inRow+=1
|
186
197
|
|
187
198
|
break if _inRow >= 3
|
188
199
|
|
189
200
|
obj = Scoutui::Base::QBrowser.getElement(@drv, _xpath, Scoutui::Commands::Utils.instance.getFrameSearch(), Scoutui::Commands::Utils.instance.getTimeout)
|
201
|
+
_tm[:end]=Time.now
|
190
202
|
end
|
191
203
|
|
192
204
|
end
|
@@ -242,8 +254,8 @@ module Scoutui::Commands
|
|
242
254
|
|
243
255
|
|
244
256
|
if !_isKb
|
245
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(!obj.nil?, "Verify object #{_xpath} to type #{_val} exists : #{obj.class.to_s}")
|
246
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(_rc, "Verify typed data #{_rc}", (_endTime - _startTime))
|
257
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(!obj.nil?, Scoutui::Base::UserVars.instance.normalize("Verify object #{_xpath} to type #{_val} exists : #{obj.class.to_s}"), _tm[:end]-_tm[:start])
|
258
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('type').add(_rc, Scoutui::Base::UserVars.instance.normalize("Verify typed data #{_rc}"), (_endTime - _startTime))
|
247
259
|
end
|
248
260
|
|
249
261
|
setResult(_rc)
|
@@ -6,6 +6,8 @@ module Scoutui::Commands
|
|
6
6
|
def execute(drv, _e=nil)
|
7
7
|
@drv=drv if !drv.nil?
|
8
8
|
|
9
|
+
_duration=nil
|
10
|
+
|
9
11
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
10
12
|
|
11
13
|
baseUrl = Scoutui::Base::UserVars.instance.getHost()
|
@@ -48,6 +50,11 @@ module Scoutui::Commands
|
|
48
50
|
end
|
49
51
|
|
50
52
|
|
53
|
+
_testcase = Scoutui::Utils::TestUtils.instance.getTC() || "navigate"
|
54
|
+
|
55
|
+
Testmgr::TestReport.instance.getReq(_req).testcase(_testcase).add(_rc, Scoutui::Base::UserVars.instance.normalize("Verify navigate to url #{normUrl}"), _duration)
|
56
|
+
|
57
|
+
|
51
58
|
setResult(_rc)
|
52
59
|
|
53
60
|
end
|
data/lib/scoutui/utils/utils.rb
CHANGED
@@ -111,10 +111,18 @@ module Scoutui::Utils
|
|
111
111
|
@currentTest[:reqid]
|
112
112
|
end
|
113
113
|
|
114
|
+
def getTC()
|
115
|
+
@currentTest[:testcase]
|
116
|
+
end
|
117
|
+
|
114
118
|
def setReq(_r='UI')
|
115
119
|
@currentTest[:reqid]=_r
|
116
120
|
end
|
117
121
|
|
122
|
+
def setTC(_tc=nil)
|
123
|
+
@currentTest[:testcase]=_tc
|
124
|
+
end
|
125
|
+
|
118
126
|
def loadModel(f=nil)
|
119
127
|
if f.nil?
|
120
128
|
return nil
|
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.51.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-10-
|
11
|
+
date: 2016-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|