scoutui 2.0.5.3 → 2.0.5.4

Sign up to get free protection for your applications and to get access to all the features.
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