scoutui 2.0.5.3 → 2.0.5.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db798dd9204d670c8e974c52ceb79caf4f341be2
4
- data.tar.gz: 3fe4396541ad339a40b15b22dd81b73857b868fd
3
+ metadata.gz: bbf796808a18143060a52ebcb6221e3d4a0bb388
4
+ data.tar.gz: 841d44e21a34f8f5d2db8fd55c0e27e1d9c0b710
5
5
  SHA512:
6
- metadata.gz: 77616d28177972da4e747ce348d05c73d09f26f35021cc5240968590e994442441b5eb477f7bb889132a6a8993ace38111a7906bb02dc248288d91d694654f6a
7
- data.tar.gz: e0afdb0325c6356a76ffe5c6d95a21c12e91066e68017a7e9dd8787b9ea88d4e4d9563d507bdb698a31fc3537a59f99841489ec2397b2ee2bf2df8d2e4c9c163
6
+ metadata.gz: 851555770f4079642021e5e9579d802e27031f4af7a8a0b88641b10ae1200ce5d4b110f315974b376aec837a9171626246eb639566c62ae0805c5f95fa5276c3
7
+ data.tar.gz: 75361076e0fa9eb6b02fceb7c3abe2f057edee95499d59e42aa89c2e48215f7ab1ffaa8728e197307c5dd1694963111c568892c709e53304cfdce9eec2069ec7
@@ -20,7 +20,7 @@ module Scoutui::Base
20
20
  { :cmd => 'visible', :pattern => '^\s*[!]*visible\((.*)\)\s*$', :parse => nil },
21
21
  { :cmd => 'isUrl', :pattern => '^\s*isUrl\((.*)\)\s*$', :parse => lambda { |_a| _parseWith('isUrl', _a) } },
22
22
  { :cmd => 'url', :pattern => '^\s*url\((.*)\)\s*$', :parse => lambda { |_a| _parseWith('url', _a) } },
23
- { :cmd => 'compare', :pattern => '/^\s*(\$\{.*\})\s*(==|!=)(.*)$', :parse => nil }
23
+ { :cmd => 'compare', :pattern => '^\s*(\$\{.*\})\s*(==|!=)(.*)$', :parse => nil }
24
24
  ]
25
25
 
26
26
  end
@@ -430,7 +430,7 @@ module Scoutui::Base
430
430
  if _obj.is_a?(Selenium::WebDriver::Element)
431
431
  _v = _obj.text.to_s
432
432
 
433
- puts __FILE__ + (__LINE__).to_s + " isText(#{_locator.to_s}) : #{_v} (tagname: #{_obj.tag_name}, displayed: #{_obj.displayed?.to_s}"
433
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " isText(#{_locator.to_s}) : #{_v} (tagname: #{_obj.tag_name}, displayed: #{_obj.displayed?.to_s}"
434
434
  rc=!_v.match(/#{_t['expected_value']}/).nil?
435
435
 
436
436
  if _t['cmd'].match(/^!\s*is[tT]ext/i)
@@ -498,11 +498,17 @@ module Scoutui::Base
498
498
 
499
499
  if !_t.nil?
500
500
  _locator = _t['locator']
501
+
502
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Locator : #{_locator}"
501
503
  _locator = Scoutui::Base::UserVars.instance.normalize(_locator)
502
504
 
505
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Normalize() => #{_locator}"
506
+
503
507
 
504
508
  _locator = Scoutui::Base::UserVars.instance.get(_locator)
505
509
 
510
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Get(#{_locator}) : #{_locator}"
511
+
506
512
  if _t.has_key?('frame') && !_t['frame'].nil?
507
513
  Scoutui::Commands::Utils.instance.setEnableFrameSearch(_t['frame'])
508
514
  end
@@ -516,16 +522,22 @@ module Scoutui::Base
516
522
  _locator = _execute_when.match(/^\s*[!]*visible\((.*)\)\s*$/i)[1].to_s
517
523
  end
518
524
 
519
-
525
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Locator : #{_locator}"
520
526
  _locator = Scoutui::Base::UserVars.instance.normalize(_locator)
527
+
528
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Normalize() => #{_locator}"
529
+
521
530
  _locator = Scoutui::Base::UserVars.instance.get(_locator)
531
+
532
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Get(#{_locator}) : #{_locator}"
533
+
522
534
  else
523
535
  Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " invalid visible cmd: #{_execute_when}"
524
536
  end
525
537
 
526
538
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " visible => #{_locator}"
527
539
 
528
- (0..3).each do |_retry|
540
+ (0..1).each do |_retry|
529
541
  begin
530
542
  wait = Selenium::WebDriver::Wait.new(:timeout => 10)
531
543
 
@@ -544,17 +556,17 @@ module Scoutui::Base
544
556
  break if _state
545
557
 
546
558
  rescue Selenium::WebDriver::Error::TimeOutError
547
- puts __FILE__ + (__LINE__).to_s + " Timed out => #{_locator}"
559
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Timed out => #{_locator}"
548
560
 
549
561
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
550
- puts __FILE__ + (__LINE__).to_s + " StaleElementReferenceError: retry #{_retry} : #{_locator}";
562
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " StaleElementReferenceError: retry #{_retry} : #{_locator}";
551
563
  sleep(0.5)
552
564
  end
553
565
  end
554
566
 
555
567
 
556
568
  if !_state
557
- puts __FILE__ + (__LINE__).to_s + " Paused due to fail to find #{_locator}"; #STDIN.gets();
569
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Paused due to fail to find #{_locator}"; #STDIN.gets();
558
570
  end
559
571
 
560
572
  if !_enableAsserts
@@ -310,7 +310,7 @@ module Scoutui::Base
310
310
 
311
311
  rescue => ex
312
312
  Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex}"
313
- puts ex.backtrace
313
+ Scoutui::Logger::LogMgr.instance.warn ex.backtrace
314
314
  end
315
315
 
316
316
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | isStale?(#{_obj}) : nosuch=#{_noSuch}, stale=#{_isStale}"
@@ -444,7 +444,7 @@ module Scoutui::Base
444
444
 
445
445
  # 5150
446
446
  def self.findElements(opts)
447
- puts __FILE__ + (__LINE__).to_s + " findElements(#{opts})"
447
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " findElements(#{opts})"
448
448
  driver=opts[:driver]
449
449
  locator=opts[:locator]
450
450
  locateBy=:xpath
@@ -458,16 +458,16 @@ module Scoutui::Base
458
458
  locateBy = :css
459
459
  end
460
460
 
461
- puts __FILE__ + (__LINE__).to_s + " driver : #{driver.class}"
462
- puts __FILE__ + (__LINE__).to_s + " locator : #{locator}"
461
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " driver : #{driver.class}"
462
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " locator : #{locator}"
463
463
 
464
464
  begin
465
465
  _timeout=Scoutui::Commands::Utils.instance.getTimeout
466
466
  Selenium::WebDriver::Wait.new(timeout: _timeout).until { hits=driver.find_elements( locateBy => locator) }
467
467
 
468
468
  rescue => ex
469
- puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
470
- puts ex.backtrace
469
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class}"
470
+ Scoutui::Logger::LogMgr.instance.warn ex.backtrace
471
471
 
472
472
  end
473
473
  hits
@@ -492,17 +492,17 @@ module Scoutui::Base
492
492
  # http://stackoverflow.com/questions/14288917/selenium-webdriver-get-attributes-after-finding-an-element
493
493
  def self.isAccessible(opts)
494
494
 
495
- puts __FILE__ + (__LINE__).to_s + " == isAccessible(#{opts}) =="
495
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == isAccessible(#{opts}) =="
496
496
  hits = Scoutui::Base::QBrowser.findElements(opts)
497
497
 
498
- puts __FILE__ + (__LINE__).to_s + " HITS => #{hits.length}"
498
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HITS => #{hits.length}"
499
499
 
500
500
 
501
501
  i=0
502
502
  begin
503
503
  hits.each do | obj |
504
504
  if obj.displayed?
505
- puts __FILE__ + (__LINE__).to_s + " #{i}. #{obj.tag_name}"
505
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " #{i}. #{obj.tag_name}"
506
506
 
507
507
  tagName=obj.tag_name.to_s.strip
508
508
 
@@ -517,12 +517,12 @@ module Scoutui::Base
517
517
 
518
518
  if parent_li
519
519
  forId = parent_li['for']
520
- puts __FILE__ + (__LINE__).to_s + " parent: #{parent_li.tag_name}"
521
- puts __FILE__ + (__LINE__).to_s + " assert <id, for>: #{id}, #{forId}"
520
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " parent: #{parent_li.tag_name}"
521
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " assert <id, for>: #{id}, #{forId}"
522
522
 
523
523
  Testmgr::TestReport.instance.getReq('WCAG').testcase(tagName).add(id==forId, "Verify matching label for #{tagName} has same id (#{id}) and for (#{forId}) values")
524
524
  else
525
- puts __FILE__ + (__LINE__).to_s + " => Missing associated label for #{tagName}"
525
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => Missing associated label for #{tagName}"
526
526
  end
527
527
 
528
528
 
@@ -534,13 +534,13 @@ module Scoutui::Base
534
534
  alt=obj.attribute('alt')
535
535
  longdesc=obj.attribute('longdesc')
536
536
 
537
- puts __FILE__ + (__LINE__).to_s + " ** #{i}. process #{tagName} <alt, longdesc>::<#{alt.nil?}, #{longdesc.nil?}, #{src}> **"
537
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ** #{i}. process #{tagName} <alt, longdesc>::<#{alt.nil?}, #{longdesc.nil?}, #{src}> **"
538
538
 
539
539
  Testmgr::TestReport.instance.getReq('WCAG').testcase(tagName).add(!(alt.nil? && longdesc.nil?), "Verify alt/longdesc (#{alt.to_s} exists for img[#{i}] (#{src})")
540
540
 
541
541
 
542
542
  else
543
- puts __FILE__ + (__LINE__).to_s + " == #{tagName} out of scope for Acccessibility"
543
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == #{tagName} out of scope for Acccessibility"
544
544
 
545
545
  end
546
546
 
@@ -551,8 +551,8 @@ module Scoutui::Base
551
551
  end
552
552
 
553
553
  rescue => ex
554
- puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
555
- puts ex.backtrace
554
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class}"
555
+ Scoutui::Logger::LogMgr.instance.warn ex.backtrace
556
556
  end
557
557
 
558
558
 
@@ -560,7 +560,7 @@ module Scoutui::Base
560
560
 
561
561
  def self.findElementwithinFrame(drv, _locator, _frames, _timeout=nil)
562
562
 
563
- puts __FILE__ + (__LINE__).to_s + " frameElementWithinFrame(#{_locator}, #{_frames}"
563
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " frameElementWithinFrame(#{_locator}, #{_frames}"
564
564
 
565
565
  # 5150
566
566
 
@@ -583,7 +583,7 @@ module Scoutui::Base
583
583
 
584
584
  end
585
585
 
586
- puts __FILE__ + (__LINE__).to_s + " [return]:frameElementsWithinFrame(#{_locator}, #{_frames}) => #{obj.class}"
586
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " [return]:frameElementsWithinFrame(#{_locator}, #{_frames}) => #{obj.class}"
587
587
  obj
588
588
  end
589
589
 
@@ -609,7 +609,7 @@ module Scoutui::Base
609
609
 
610
610
  if Scoutui::ApplicationModel::QModel.isPageObject?(_locator) # _locator.match(/^page\([\w\d]+\)/)
611
611
  pg = Scoutui::Utils::TestUtils.instance.getPageElement(_locator)
612
- puts __FILE__ + (__LINE__).to_s + " [parseLocator]: pageObject(#{_locator}) => #{pg}"
612
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " [parseLocator]: pageObject(#{_locator}) => #{pg}"
613
613
 
614
614
  if pg.is_a?(Hash)
615
615
 
@@ -647,8 +647,8 @@ module Scoutui::Base
647
647
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " parseIt2: #{locator} => #{rc}"
648
648
 
649
649
  if rc
650
- puts "o rc[1] : #{rc[1]}"
651
- puts "o rc[2] : #{rc[2]}"
650
+ Scoutui::Logger::LogMgr.instance.debug "o rc[1] : #{rc[1]}"
651
+ Scoutui::Logger::LogMgr.instance.debug "o rc[2] : #{rc[2]}"
652
652
  return { 'locator' => rc[2] }
653
653
  end
654
654
 
@@ -680,11 +680,11 @@ module Scoutui::Base
680
680
 
681
681
  else
682
682
 
683
- puts __FILE__ + (__LINE__).to_s + " Analyze locator : #{_locator}"
683
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Analyze locator : #{_locator}"
684
684
 
685
685
  _parsed = Scoutui::Base::QBrowser.parseLocator(_locator)
686
686
 
687
- puts __FILE__ + (__LINE__).to_s + " _parsed(#{_locator}) => #{_parsed}"
687
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " _parsed(#{_locator}) => #{_parsed}"
688
688
 
689
689
  if _parsed.has_key?('frame') && _parsed.has_key?('locator')
690
690
  obj = Scoutui::Base::QBrowser.findElementwithinFrame(drv, _parsed['locator'], _parsed['frame'], _timeout)
@@ -990,7 +990,7 @@ module Scoutui::Base
990
990
  drv.execute_script("hlt = function(c) { c#{parents}.style.border='solid 1px rgb(#{color}, 0, 0)'; }; return hlt(arguments[0]);", element)
991
991
  end
992
992
  else
993
- puts __FILE__ + (__LINE__).to_s + " SKIP ANCES"
993
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " SKIP ANCES"
994
994
  end
995
995
 
996
996
  # Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " PAUSE on highlight"; gets
@@ -76,13 +76,34 @@ module Scoutui::Base
76
76
  _val.match(/^\s*TestData\(.*\)\.getData\(.*\)\s*$/)
77
77
  end
78
78
 
79
+ def _reduce(t)
80
+ s = t.clone
81
+ _vars = s.scan(/(\$\{.*?\})/)
82
+ _vars.each do | _v|
83
+ if _v.length==1
79
84
 
80
- def normalize(s)
85
+ _u = Scoutui::Base::UserVars.instance.get(_v[0].to_s)
86
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Normalize(#{_v}) => #{_u}"
81
87
 
82
- if s.is_a?(TrueClass) || s.nil? || s.empty?
83
- return s
88
+ s.gsub!(_v[0].to_s, _u)
89
+ end
90
+
91
+ end
92
+
93
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " _reduce(#{t}) => #{s}";
94
+ s
95
+ end
96
+
97
+ def normalize(src)
98
+
99
+
100
+
101
+ if src.is_a?(TrueClass) || src.nil? || src.empty?
102
+ return src
84
103
  end
85
104
 
105
+ s = src.clone
106
+
86
107
  begin
87
108
  if Scoutui::Base::UserVars.instance.isTestData?(s)
88
109
 
@@ -92,25 +113,28 @@ module Scoutui::Base
92
113
  return Scoutui::Base::TestData.instance.get(_dataID, _getter)
93
114
  end
94
115
 
95
- _vars = s.scan(/(\$\{.*?\})/)
96
- _vars.each do | _v|
97
- if _v.length==1
116
+ hydrate = _reduce(s)
117
+
118
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " hydrate(#{s}) => #{hydrate}"
98
119
 
99
- _u = Scoutui::Base::UserVars.instance.get(_v[0].to_s)
100
- puts __FILE__ + (__LINE__).to_s + " Normalize(#{_v}) => #{_u}"
120
+ while hydrate.match(/\$\{.*\}/)
121
+ _t = _reduce(hydrate)
101
122
 
102
- s.gsub!(_v[0].to_s, _u)
123
+ if _t==hydrate
124
+ break
103
125
  end
104
126
 
127
+ hydrate=_t
128
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " hydrate2() => #{hydrate}";
105
129
  end
106
130
 
107
131
  rescue => ex
108
- puts __FILE__ + (__LINE__).to_s + " #{ex.class}"
109
- puts ex.backtrace
132
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class}"
133
+ Scoutui::Logger::LogMgr.instance.warn ex.backtrace
110
134
  end
111
135
 
112
136
 
113
- s
137
+ hydrate
114
138
  end
115
139
 
116
140
  def get(_k)
@@ -149,7 +173,12 @@ module Scoutui::Base
149
173
  elsif !_rc.nil?
150
174
  k=_rc[1].to_s
151
175
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " User Var found => #{k}"
152
- if Scoutui::Utils::TestUtils.instance.getTestConfig().has_key?("user_vars")
176
+
177
+ if Scoutui::Utils::TestUtils.instance.getTestConfig().nil?
178
+
179
+ ;
180
+
181
+ elsif Scoutui::Utils::TestUtils.instance.getTestConfig().has_key?("user_vars")
153
182
 
154
183
  if Scoutui::Utils::TestUtils.instance.getTestConfig()["user_vars"].has_key?(k)
155
184
  v=Scoutui::Utils::TestUtils.instance.getTestConfig()["user_vars"][k].to_s
@@ -345,7 +345,7 @@ module Scoutui::Base
345
345
 
346
346
 
347
347
  def self.verifyCondition(my_driver, xpath)
348
- rc=false
348
+ wasProcessed=false
349
349
 
350
350
  if !xpath.match(/^page\([\w\d]+\)/).nil?
351
351
 
@@ -374,6 +374,8 @@ module Scoutui::Base
374
374
 
375
375
  _obj = Scoutui::Base::QBrowser.getFirstObject(my_driver, _locator)
376
376
 
377
+ wasProcessed=true
378
+
377
379
  Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " HIT #{_locator} => #{!_obj.nil?}"
378
380
  end
379
381
 
@@ -382,6 +384,7 @@ module Scoutui::Base
382
384
 
383
385
  end
384
386
 
387
+ wasProcessed
385
388
  end
386
389
 
387
390
  end
@@ -443,6 +446,11 @@ module Scoutui::Base
443
446
  _bm=Benchmark.measure {
444
447
  _rc=Scoutui::Base::Assertions.instance.isUrlMatch(my_driver, _a)
445
448
  }
449
+
450
+ elsif _assertType[:cmd]=='compare'
451
+ _bm=Benchmark.measure {
452
+ _rc=Scoutui::Base::Assertions.instance.compareValue(_a)
453
+ }
446
454
  end
447
455
 
448
456
  elsif Scoutui::Base::Assertions.instance.isRoleCmd?(_a)
@@ -465,9 +473,9 @@ module Scoutui::Base
465
473
  }
466
474
 
467
475
 
468
- elsif _a.match(/^\s*focused\(.*\)\s*$/)
476
+ elsif _a.match(/^\s*[fF]ocused\(.*\)\s*$/)
469
477
 
470
- _locator = _a.match(/^\s*focused\((.*)\)\s*$/)[1]
478
+ _locator = _a.match(/^\s*[fF]ocused\((.*)\)\s*$/)[1]
471
479
 
472
480
  _bm=Benchmark.measure {
473
481
  _activeElt = my_driver.switch_to.active_element
@@ -483,8 +491,8 @@ module Scoutui::Base
483
491
  puts __FILE__ + (__LINE__).to_s + " focused() - MATCHED"
484
492
  end
485
493
 
486
- elsif _a.match(/^\s*(focused\.[Vv]alue\((.*)\))\s*$/)
487
- _expectedValue = _a.match(/^\s*(focused.[Vv]alue\((.*)\))\s*$/)[2].to_s
494
+ elsif _a.match(/^\s*([fF]ocused\.[Vv]alue\((.*)\))\s*$/)
495
+ _expectedValue = _a.match(/^\s*([fF]ocused.[Vv]alue\((.*)\))\s*$/)[2].to_s
488
496
  _activeElt=nil
489
497
  _value=nil
490
498
 
@@ -506,9 +514,9 @@ module Scoutui::Base
506
514
 
507
515
 
508
516
 
509
- elsif _a.match(/^\s*(focused\.[Tt]ext\((.*)\))\s*$/)
517
+ elsif _a.match(/^\s*([!]*[fF]ocused\.[Tt]ext\((.*)\))\s*$/)
510
518
 
511
- _targetTxt = _a.match(/^\s*(focused.[Tt]ext\((.*)\))\s*$/)[2].to_s
519
+ _targetTxt = _a.match(/^\s*([!]*[fF]ocused.[Tt]ext\((.*)\))\s*$/)[2].to_s
512
520
 
513
521
 
514
522
  _targetTxt = Scoutui::Base::UserVars.instance.normalize(_targetTxt)
@@ -527,6 +535,12 @@ module Scoutui::Base
527
535
  end
528
536
 
529
537
  _rc=!(_activeElt.text.to_s.match(/#{_targetTxt}/).nil?) # || _activeElt.text.to_s==_targetTxt.to_s
538
+
539
+ if _a.match(/^\s*!focused/)
540
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " verify #{_targetTxt} != #{_activeElt.text} => #{_rc}"
541
+ _rc=!_rc
542
+ end
543
+
530
544
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " FocusedText : #{_activeElt.text} => #{_rc}"
531
545
  end
532
546
  }
@@ -746,11 +760,16 @@ module Scoutui::Base
746
760
  expected_list=e[STEP_KEY]['expected']
747
761
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{expected_list}"
748
762
 
763
+ _expectedResults=processAsserts(my_driver, expected_list, false)
764
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " expectedResults => #{_expectedResults}"
749
765
 
750
766
  if expected_list.is_a?(Array)
751
767
 
752
768
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process Arr of Expected"
769
+
753
770
  expected_list.each do |_condition|
771
+
772
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " processExpected.Condition : #{_condition}"
754
773
  verifyCondition(my_driver, _condition)
755
774
  end
756
775
  end
@@ -1309,7 +1328,7 @@ module Scoutui::Base
1309
1328
  _args=[]
1310
1329
 
1311
1330
  e[STEP_KEY]['executejs'][fcnToCall].each do |arg|
1312
- puts __FILE__ + (__LINE__).to_s + " ||| arg: #{arg}"
1331
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ||| arg: #{arg}"
1313
1332
 
1314
1333
  if arg.match(/^\s*\//)
1315
1334
  _args << Scoutui::Base::QBrowser.getObject(my_driver, arg, Scoutui::Commands::Utils.instance.getTimeout)
@@ -1331,7 +1350,7 @@ module Scoutui::Base
1331
1350
  end
1332
1351
 
1333
1352
 
1334
- puts __FILE__ + (__LINE__).to_s + " Execute => #{fcnToCall}(#{argString})"
1353
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Execute => #{fcnToCall}(#{argString})"
1335
1354
 
1336
1355
  # _obj = Scoutui::Base::QBrowser.getObject(my_driver, '//body', Scoutui::Commands::Utils.instance.getTimeout)
1337
1356
 
@@ -1415,6 +1434,7 @@ module Scoutui::Base
1415
1434
  processCommand(_action, e, my_driver)
1416
1435
  else
1417
1436
  if Scoutui::Utils::TestUtils.instance.isFailFast? && !_command.passed?
1437
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "FAIL FAST => #{_command.passed?}"
1418
1438
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Failfast.";
1419
1439
  Scoutui::Utils::TestUtils.instance.setState(:abort)
1420
1440
  takeScreenShot(my_driver, "step_#{i}.failed")
@@ -4,15 +4,26 @@ module Scoutui::Commands
4
4
  class DoUntil
5
5
 
6
6
  attr_accessor :drv
7
+ attr_accessor :passed
7
8
 
8
9
  def initialize(driver)
9
10
  @drv=driver
10
11
  @pageElt=nil
12
+ @passed=true
13
+ @executed=false
11
14
  end
12
15
 
16
+ def passed?
17
+ @passed
18
+ end
19
+
20
+ def wasExecuted?
21
+ @executed
22
+ end
13
23
 
14
24
  def execute(pageElt)
15
25
 
26
+ @executed=true
16
27
  rc=true
17
28
  cmdList=nil
18
29
 
@@ -34,11 +45,12 @@ module Scoutui::Commands
34
45
 
35
46
  def do_until(pageElt)
36
47
 
37
- puts __FILE__ + (__LINE__).to_s + " do_until : #{pageElt}"
48
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " do_until : #{pageElt}"
38
49
 
39
50
  thenList=nil
40
51
  untilList=nil
41
52
  whenPassed=nil
53
+ whenFailed=nil
42
54
  _alwaystrue=false
43
55
 
44
56
  if pageElt.is_a?(Hash) && pageElt.has_key?('page')
@@ -55,6 +67,10 @@ module Scoutui::Commands
55
67
  whenPassed=pageElt['page']['whenPassed']
56
68
  end
57
69
 
70
+ if pageElt['page'].has_key?('whenFailed') && pageElt['page']['whenFailed'].is_a?(Array)
71
+ whenFailed=pageElt['page']['whenFailed']
72
+ end
73
+
58
74
  elsif pageElt.is_a?(Hash) && pageElt.has_key?('do') && pageElt.has_key?('until')
59
75
  thenList = pageElt['do']
60
76
  untilList = pageElt['until']
@@ -64,6 +80,10 @@ module Scoutui::Commands
64
80
  whenPassed=pageElt['whenPassed']
65
81
  end
66
82
 
83
+ if pageElt.has_key?('whenFailed') && pageElt['whenFailed'].is_a?(Array)
84
+ whenFailed=pageElt['whenFailed']
85
+ end
86
+
67
87
  end
68
88
 
69
89
  if thenList # !pageElt.nil? && pageElt['page'].has_key?('do') && pageElt['page'].has_key?('until')
@@ -107,7 +127,7 @@ module Scoutui::Commands
107
127
 
108
128
  if _loop && untilList # !pageElt.nil? && pageElt['page'].has_key?('until')
109
129
 
110
- puts __FILE__ + (__LINE__).to_s + " untilList => #{untilList.class}, #{untilList.size}, #{untilList[0]}"
130
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " untilList => #{untilList.class}, #{untilList.size}, #{untilList[0]}"
111
131
 
112
132
  if untilList.is_a?(Array) && untilList.size==1 && untilList[0]==true
113
133
  _expected=false
@@ -153,9 +173,9 @@ module Scoutui::Commands
153
173
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ===== end.whenPassed : #{_whenPassed} ====="
154
174
 
155
175
 
156
- elsif !_bUntil && pageElt.has_key?('page') && pageElt['page'].has_key?('whenFailed') && pageElt['page']['whenFailed'].is_a?(Array)
176
+ elsif !_bUntil && !whenFailed.nil? #pageElt.has_key?('page') && pageElt['page'].has_key?('whenFailed') && pageElt['page']['whenFailed'].is_a?(Array)
157
177
 
158
- _whenFailed = execute(pageElt['page']['whenFailed'])
178
+ _whenFailed = execute(whenFailed) # execute(pageElt['page']['whenFailed'])
159
179
 
160
180
  elsif _alwaystrue
161
181
  _rc=true
@@ -169,10 +189,12 @@ module Scoutui::Commands
169
189
  _rc=true
170
190
  end
171
191
 
172
- _rc
192
+ @passed=_rc
173
193
  end
174
194
 
175
195
 
196
+
197
+
176
198
  end
177
199
 
178
200
  end
@@ -0,0 +1,116 @@
1
+
2
+ module Scoutui::Commands
3
+
4
+ class WhileDo < Command
5
+
6
+
7
+ def initialize(driver)
8
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " WhileDo.init()"
9
+ @drv=driver
10
+ @pageElt=nil
11
+ @passed=true
12
+
13
+ @executed_result=nil
14
+ end
15
+
16
+
17
+ def execute(pageElt)
18
+ setResult(while_do(pageElt))
19
+ end
20
+
21
+ def _process(untilList)
22
+
23
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " _process(#{untilList})"
24
+
25
+
26
+ if untilList.is_a?(Array) && untilList.size==1 && (untilList[0]==true || untilList[0]==false)
27
+ return untilList[0]
28
+ end
29
+
30
+ rc=Scoutui::Base::VisualTestFramework::processAsserts(@drv, untilList, false)
31
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " _process(#{untilList}) => #{rc}"
32
+
33
+ rc
34
+
35
+ end
36
+
37
+
38
+
39
+ def while_do(pageElt)
40
+
41
+ Scoutui::Logger::LogMgr.instance.info __FILE__ + (__LINE__).to_s + " do_until : #{pageElt}"
42
+
43
+ thenList=nil
44
+ untilList=nil
45
+ whenPassed=nil
46
+ whenFailed=nil
47
+ _alwaystrue=false
48
+
49
+ if pageElt.is_a?(Hash) && pageElt.has_key?('page')
50
+
51
+
52
+ if pageElt['page'].has_key?('while') && pageElt['page'].has_key?('do')
53
+ thenList=pageElt['page']['do']
54
+ whileList=pageElt['page']['while']
55
+ elsif pageElt['page'].has_key?('do')
56
+ thenList=pageElt['page']['do']
57
+ end
58
+
59
+ if pageElt['page'].has_key?('whenPassed') && pageElt['page']['whenPassed'].is_a?(Array)
60
+ whenPassed=pageElt['page']['whenPassed']
61
+ end
62
+
63
+ if pageElt['page'].has_key?('whenFailed') && pageElt['page']['whenFailed'].is_a?(Array)
64
+ whenFailed=pageElt['page']['whenFailed']
65
+ end
66
+
67
+ elsif pageElt.is_a?(Hash) && pageElt.has_key?('while') && pageElt.has_key?('do')
68
+ thenList = pageElt['do']
69
+ whileList = pageElt['while']
70
+
71
+
72
+ if pageElt.has_key?('whenPassed') && pageElt['whenPassed'].is_a?(Array)
73
+ whenPassed=pageElt['whenPassed']
74
+ end
75
+
76
+ if pageElt.has_key?('whenFailed') && pageElt['whenFailed'].is_a?(Array)
77
+ whenFailed=pageElt['whenFailed']
78
+ end
79
+
80
+ end
81
+
82
+ if thenList # !pageElt.nil? && pageElt['page'].has_key?('do') && pageElt['page'].has_key?('until')
83
+
84
+ _max = 25
85
+ _i=0
86
+ _historyElts={}
87
+
88
+ begin
89
+ while (_i < _max) && _process(whileList) do
90
+
91
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == process #{_i}. #{thenList}"
92
+
93
+ rc=Scoutui::Commands.simpleCommands(@drv, thenList)
94
+
95
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == returned process #{_i} => #{rc}"
96
+ _i+=1
97
+
98
+
99
+ end # while()
100
+
101
+ rescue => ex
102
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Error during processing: #{ex.message}"
103
+ Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
104
+ end
105
+
106
+ end
107
+
108
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ==== While Do Pause"; #STDIN.gets
109
+
110
+ setResult(@passed)
111
+ end
112
+
113
+
114
+ end
115
+
116
+ end
@@ -64,7 +64,7 @@ module Scoutui::Commands
64
64
  # _locator = Scoutui::Base::UserVars.instance.get(_locator)
65
65
  _locator = Scoutui::Base::UserVars.instance.normalize(_locator)
66
66
 
67
- Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " | translate : #{_locator}" if Scoutui::Utils::TestUtils.instance.isDebug?
67
+ Scoutui::Logger::LogMgr.instance.command.debug __FILE__ + (__LINE__).to_s + " | translate : #{_locator}"
68
68
 
69
69
  _clicked=false
70
70
 
@@ -96,7 +96,13 @@ module Scoutui::Commands
96
96
 
97
97
  if isEnabled # && obj.is_a?(Selenium::WebDriver::Element)
98
98
 
99
- @drv.action.move_to(obj).perform
99
+ begin
100
+ @drv.action.move_to(obj).perform
101
+ rescue => ex
102
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " #{ex.class.to_s}"
103
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + ex.backtrace.join("\n\t")
104
+ end
105
+
100
106
  bm=Benchmark.measure {
101
107
  obj.click
102
108
  }
@@ -52,6 +52,7 @@ module Scoutui::Commands
52
52
  end
53
53
 
54
54
  def setResult(r)
55
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " setResult(#{r}) - #{@cmd.to_s}"
55
56
  Scoutui::Logger::LogMgr.instance.commands.debug " #{@cmd.to_s} : setResult(#{r.to_s})"
56
57
  @executed=true
57
58
  @executed_result=r
@@ -33,6 +33,10 @@ module Scoutui::Commands
33
33
  if _subcmd.match(/^\s*press\(__TAB__\)$/)
34
34
  drv.action.send_keys(:tab).perform
35
35
 
36
+ elsif Scoutui::Commands::Utils.instance.isHighlight?(_subcmd)
37
+
38
+ processCommand(_subcmd, nil, drv)
39
+
36
40
  elsif _subcmd.match(/^\s*press\(__SHIFT_TAB__\)\s*$/)
37
41
  drv.action.key_down(:shift).send_keys(:tab).perform;
38
42
  drv.action.key_up(:shift).perform;
@@ -138,7 +142,7 @@ module Scoutui::Commands
138
142
 
139
143
  _text=_subcmd.match(/^\s*[fF]ocused.[Tt]ype[!]*\((.*)\)$/)[1].to_s
140
144
 
141
- puts __FILE__ + (__LINE__).to_s + " => #{_text} is empty : #{_text.empty?}"
145
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " => #{_text} is empty : #{_text.empty?}"
142
146
 
143
147
 
144
148
  _activeElt.send_keys(_text)
@@ -154,6 +158,9 @@ module Scoutui::Commands
154
158
  #_c = Scoutui::Commands::ClickObject.new(_subcmd)
155
159
  #_c.run(driver: drv)
156
160
 
161
+ elsif Scoutui::Commands::Utils.instance.isPause?(_subcmd)
162
+ processCommand(_subcmd, nil, drv)
163
+
157
164
  elsif _subcmd.match(/^\s*select\((.*)\)\s*$/)
158
165
 
159
166
  _c=Scoutui::Commands.processCommand(_subcmd, nil, drv)
@@ -243,7 +250,25 @@ module Scoutui::Commands
243
250
  Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " WebDriverError.switch_to.alert"
244
251
  end
245
252
 
246
- if Scoutui::Commands::Utils.instance.isPause?(_action)
253
+ if Scoutui::Commands::Utils.instance.isWhileDo?(_action)
254
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " === WhileDo ==="
255
+ _cmd='whileDo'
256
+ _c = Scoutui::Commands::WhileDo.new(my_driver)
257
+ _c.execute(e['page']['action'])
258
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " WHileDo Pause post-execute"; #STDIN.gets
259
+
260
+ elsif Scoutui::Commands::Utils.instance.isDoUntil?(_action)
261
+
262
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == process DoUntil : #{e}"
263
+ _cmd='doUntil'
264
+ _c = Scoutui::Commands::DoUntil.new(my_driver)
265
+ _c.do_until(e['page']['action'])
266
+
267
+
268
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Pause on DO_UNTIL => #{_c} passed? : #{_c.passed?}"; # STDIN.gets
269
+
270
+
271
+ elsif Scoutui::Commands::Utils.instance.isPause?(_action)
247
272
  _cmd='pause'
248
273
  _c = Scoutui::Commands::Pause.new(nil)
249
274
  _c.execute(e);
@@ -287,7 +312,8 @@ module Scoutui::Commands
287
312
  if e['page'].has_key?('vars')
288
313
  e['page']['vars'].each do |_a|
289
314
 
290
- Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process Assignment.var : #{_a}"
315
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " process assign var: #{_a}"
316
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Process Assignment.var : #{_a}"
291
317
 
292
318
  begin
293
319
  _caborted=false
@@ -299,9 +325,13 @@ module Scoutui::Commands
299
325
 
300
326
  _c = Scoutui::Commands::AssignVar.new(_a)
301
327
  _rc=_c.run(driver: my_driver, dut: e)
302
- _c.setResult(_rc)
328
+ # _c.setResult(_rc)
329
+
330
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " #{_a} => #{_rc}"
303
331
  rescue => ex
304
332
  _caborted=true
333
+ Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " #{ex.class.to_s} : Error during processing: #{ex.message}"
334
+ Scoutui::Logger::LogMgr.instance.warn " Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
305
335
  end
306
336
 
307
337
  _testcase = Scoutui::Utils::TestUtils.instance.getTC() || _cmd.downcase
@@ -312,6 +342,7 @@ module Scoutui::Commands
312
342
 
313
343
 
314
344
  elsif Scoutui::Commands::Utils.instance.isAssignVar?(_action)
345
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " == AssignVar : #{_action}"
315
346
  _cmd='assignvar'
316
347
  _c = Scoutui::Commands::AssignVar.new(_action)
317
348
  _c.run(driver: my_driver, dut: e)
@@ -16,7 +16,7 @@ module Scoutui::Commands
16
16
  '__TAB__' => { :val => :tab },
17
17
  '__SHIFT_TAB__' => {:val => :custom,
18
18
  :run => lambda { |drv|
19
- puts __FILE__ + (__LINE__).to_s + " *** SHIFT_TAB ***"
19
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " *** SHIFT_TAB ***"
20
20
  drv.action.key_down(:shift).send_keys(:tab).perform;
21
21
  drv.action.key_up(:shift).perform;
22
22
  }}
@@ -99,6 +99,8 @@ module Scoutui::Commands
99
99
 
100
100
  if KEYBOARD_CMDS.has_key?(_val)
101
101
  _val = KEYBOARD_CMDS[_val][:val]
102
+ else
103
+ _val=Scoutui::Base::UserVars.instance.normalize(_val)
102
104
  end
103
105
 
104
106
  _xpath="[focused]"
@@ -55,6 +55,8 @@ module Scoutui::Commands
55
55
  Testmgr::TestReport.instance.getReq(_req).testcase(_testcase).add(_rc, Scoutui::Base::UserVars.instance.normalize("Verify navigate to url #{normUrl}"), _duration)
56
56
 
57
57
 
58
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " update_url => #{_rc}"
59
+
58
60
  setResult(_rc)
59
61
 
60
62
  end
@@ -16,6 +16,7 @@ module Scoutui::Commands
16
16
  @command_list=['pause',
17
17
  'assignvar',
18
18
  'assignments',
19
+ 'doUntil',
19
20
  'existsAlert',
20
21
  'clickJsAlert',
21
22
  'dumpvars',
@@ -40,7 +41,8 @@ module Scoutui::Commands
40
41
  'uploadfiles',
41
42
  'verifyelt',
42
43
  'verifyelement',
43
- 'verifyform']
44
+ 'verifyform',
45
+ 'whileDo']
44
46
  @totalCommands={}
45
47
  @timeout=30
46
48
  @command_list.each do |c|
@@ -228,120 +230,132 @@ module Scoutui::Commands
228
230
  @timeout.to_i
229
231
  end
230
232
 
233
+ def isDoUntil?(_action)
234
+ _action.is_a?(Hash) && _action.has_key?('do') && !_action.has_key?('while')
235
+ end
236
+
237
+ def isWhileDo?(_action)
238
+ _action.is_a?(Hash) && _action.has_key?('while') && _action.has_key?('do')
239
+ end
240
+
231
241
  def isAssignments?(_action)
232
- !_action.match(/^\s*(assignments)\s*$/).nil?
242
+ _action.is_a?(String) && !_action.match(/^\s*(assignments)\s*$/).nil?
233
243
  end
234
244
 
235
245
  def isAssignVar?(_action)
236
- !_action.match(/assign\(([\w]+)\s*\,(.*)\)\s*$/i).nil?
246
+ _action.is_a?(String) && !_action.match(/assign\(([\w]+)\s*\,(.*)\)\s*$/i).nil?
237
247
  end
238
248
 
239
249
  def isSelectWindow?(_action)
240
- !_action.match(/^\s*select_window/i).nil?
250
+ _action.is_a?(String) && !_action.match(/^\s*select_window/i).nil?
241
251
  end
242
252
 
243
253
  def isExistsAlert?(_action)
244
- !_action.match(/(exist[s]*_*alert|existAlert|existsAlert|existsJsAlert|existsJsConfirm|existsJsPrompt)\(/i).nil?
254
+ _action.is_a?(String) && !_action.match(/(exist[s]*_*alert|existAlert|existsAlert|existsJsAlert|existsJsConfirm|existsJsPrompt)\(/i).nil?
245
255
  end
246
256
 
247
257
  def isFrame?(_action)
248
- _action.match(/^\s*(frame|switchframe|switch_frame)\s*\(/i)
258
+ _action.is_a?(String) && _action.match(/^\s*(frame|switchframe|switch_frame)\s*\(/i)
249
259
  end
250
260
 
251
261
  def isHighlight?(_action)
252
- _action.match(/^\s*(highlight)/i)
262
+ _action.is_a?(String) && _action.match(/^\s*(highlight)/i)
253
263
  end
254
264
 
255
265
  def isVerifyElt?(_action)
256
- !_action.match(/(verifyelt|verifyelement)\(/i).nil?
266
+ _action.is_a?(String) && !_action.match(/(verifyelt|verifyelement)\(/i).nil?
257
267
  end
258
268
 
259
269
  def isClick?(_action)
260
- !_action.match(/click\(/i).nil?
270
+ _action.is_a?(String) && !_action.match(/click\(/i).nil?
261
271
  end
262
272
 
263
273
  def isGetAlert?(_action)
264
- !_action.match(/(get_*alert|clickjsconfirm|clickjsprompt|clickjsalert)/i).nil?
274
+ _action.is_a?(String) && !_action.match(/(get_*alert|clickjsconfirm|clickjsprompt|clickjsalert)/i).nil?
265
275
  end
266
276
 
267
277
  def isFillForm?(_action)
268
- !_action.match(/fillform\(/i).nil?
278
+ _action.is_a?(String) && !_action.match(/fillform\(/i).nil?
269
279
  end
270
280
 
271
281
  def isConnect?(_action)
272
- !_action.match(/^\s*connect\s*$/i).nil?
282
+ _action.is_a?(String) && !_action.match(/^\s*connect\s*$/i).nil?
273
283
  end
274
284
 
275
285
  def isDumpVars?(_action)
276
- !_action.match(/^\s*dumpvars\s*$/i).nil?
286
+ _action.is_a?(String) && !_action.match(/^\s*dumpvars\s*$/i).nil?
277
287
  end
278
288
 
279
289
  def isLoadDB?(_action)
280
- !_action.match(/^\s*loaddb\s*$/i).nil?
290
+ _action.is_a?(String) && !_action.match(/^\s*loaddb\s*$/i).nil?
281
291
  end
282
292
 
283
293
  def isExecuteCommands?(_action)
284
- !_action.match(/^\s*executecommand[s]*\s*$/i).nil?
294
+ _action.is_a?(String) && !_action.match(/^\s*executecommand[s]*\s*$/i).nil?
285
295
  end
286
296
 
287
297
  def isDefineCommands?(_action)
288
- !_action.match(/^\s*definecommand[s]*\s*$/i).nil?
298
+ _action.is_a?(String) && !_action.match(/^\s*definecommand[s]*\s*$/i).nil?
289
299
  end
290
300
 
291
301
  def isLoadData?(_action)
292
- !_action.match(/^\s*loaddata\s*$/i).nil?
302
+ _action.is_a?(String) && !_action.match(/^\s*loaddata\s*$/i).nil?
293
303
  end
294
304
 
295
305
  def isLoadJs?(_action)
296
- !_action.match(/^\s*loadjs\s*$/i).nil?
306
+ _action.is_a?(String) && !_action.match(/^\s*loadjs\s*$/i).nil?
297
307
  end
298
308
 
299
309
 
300
310
  def isLoadRequirements?(_action)
301
- !_action.match(/^\s*loadrequirements\s*$/i).nil?
311
+ _action.is_a?(String) && !_action.match(/^\s*loadrequirements\s*$/i).nil?
302
312
  end
303
313
 
304
314
  def isMouseOver?(_action)
305
- !_action.match(/mouseover\(/).nil?
315
+ _action.is_a?(String) && !_action.match(/mouseover\(/).nil?
306
316
  end
307
317
 
308
318
  def isType?(_action)
309
- !_action.match(/type[\!]*\(/).nil?
319
+ _action.is_a?(String) && !_action.match(/type[\!]*\(/).nil?
310
320
  end
311
321
 
312
322
  def isSubmitForm?(_action)
313
- !_action.match(/submitform\(/).nil?
323
+ _action.is_a?(String) && !_action.match(/submitform\(/).nil?
314
324
  end
315
325
 
316
326
  def isVerifyForm?(_action)
317
- !_action.match(/verifyform\(/).nil?
327
+ _action.is_a?(String) && !_action.match(/verifyform\(/).nil?
318
328
  end
319
329
 
320
330
  def isPause?(_action)
321
- !_action.match(/pause/).nil?
331
+ _action.is_a?(String) && !_action.match(/pause/).nil?
322
332
  end
323
333
 
324
334
  def isSelect?(_action)
325
- !_action.nil? && _action.match(/^\s*select\s*\(/i)
335
+ !_action.nil? && _action.is_a?(String) && _action.match(/^\s*select\s*\(/i)
326
336
  end
327
337
 
328
338
  def isSleep?(_action)
329
- !_action.nil? && _action.match(/^\s*sleep\s*\(\s*\d+\s*\)\s*$/i)
339
+ !_action.nil? && _action.is_a?(String) && _action.match(/^\s*sleep\s*\(\s*\d+\s*\)\s*$/i)
330
340
  end
331
341
 
332
342
  def isUploadFiles?(_action)
333
- !_action.nil? && _action.match(/^\s*uploadfiles\s*$/i)
343
+ !_action.nil? && _action.is_a?(String) && _action.match(/^\s*uploadfiles\s*$/i)
334
344
  end
335
345
 
336
346
  def isNavigate?(_action)
337
- !_action.nil? && _action.match(/(navigate|url)\(/i)
347
+ !_action.nil? && _action.is_a?(String) && _action.match(/(navigate|url)\(/i)
338
348
  end
339
349
 
340
350
  def isValid?(cmd)
341
351
 
342
352
  rc=true
343
353
 
344
- if isPause?(cmd)
354
+ if isDoUntil?(cmd)
355
+ @totalCommands['doUntil']+=1
356
+ elsif isWhileDo?(cmd)
357
+ @totalCommands['whileDo']+=1
358
+ elsif isPause?(cmd)
345
359
  @totalCommands['pause']+=1
346
360
  elsif isAssignVar?(cmd)
347
361
  @totalCommands['assignvar']+=1
@@ -1,3 +1,3 @@
1
1
  module Scoutui
2
- VERSION = "2.0.5.3"
2
+ VERSION = "2.0.5.4"
3
3
  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.5.3
4
+ version: 2.0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Kim
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-26 00:00:00.000000000 Z
11
+ date: 2017-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -251,6 +251,7 @@ files:
251
251
  - lib/scoutui/commands/assign_var.rb
252
252
  - lib/scoutui/commands/clauses/do_until.rb
253
253
  - lib/scoutui/commands/clauses/then_clause.rb
254
+ - lib/scoutui/commands/clauses/while_do.rb
254
255
  - lib/scoutui/commands/click_object.rb
255
256
  - lib/scoutui/commands/command.rb
256
257
  - lib/scoutui/commands/commands.rb