scoutui 2.0.3.57.pre → 2.0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -2
  3. data/README.md +0 -7
  4. data/lib/scoutui/base/q_browser.rb +13 -4
  5. data/lib/scoutui/base/q_har_mgr.rb +63 -0
  6. data/lib/scoutui/base/visual_test_framework.rb +8 -3
  7. data/lib/scoutui/commands/clauses/do_until.rb +0 -4
  8. data/lib/scoutui/commands/click_object.rb +1 -0
  9. data/lib/scoutui/commands/strategy.rb +55 -0
  10. data/lib/scoutui/utils/utils.rb +14 -3
  11. data/lib/scoutui/version.rb +1 -1
  12. data/scoutui.gemspec +2 -3
  13. metadata +11 -57
  14. data/bin/scoutui_driver +0 -1
  15. data/examples/benchmark/ex.rb +0 -16
  16. data/examples/capabilities/win10.chrome46.json +0 -6
  17. data/examples/carmax/appmodel/search_results.json +0 -27
  18. data/examples/carmax/commands/commands.yml +0 -63
  19. data/examples/cmdshell/commands/hello.yml +0 -22
  20. data/examples/converters/jsonupdate.rb +0 -31
  21. data/examples/ex2/appmodel/common.json +0 -51
  22. data/examples/ex2/appmodel/page_model.json +0 -106
  23. data/examples/ex2/appmodel/register.model.json +0 -42
  24. data/examples/ex2/commands/commands.basic.appmodel.yml +0 -8
  25. data/examples/ex2/commands/commands.yml +0 -115
  26. data/examples/ex2/commands/ex1.yml +0 -7
  27. data/examples/ex2/commands/ex1c.yml +0 -8
  28. data/examples/ex2/commands/ex1d.yml +0 -22
  29. data/examples/ex2/commands/ex2.hover.yml +0 -43
  30. data/examples/ex2/commands/ex2.yml +0 -24
  31. data/examples/ex2/data.json +0 -6
  32. data/examples/ex2/test-configs/test.config.basic.json +0 -12
  33. data/examples/ex2/test-configs/test.config.json +0 -31
  34. data/examples/ex2/tests/run-test.sh +0 -125
  35. data/examples/ex2/tests/test-basic-appmodel.sh +0 -14
  36. data/examples/ex2/tests/test-example.sh +0 -39
  37. data/examples/ex2/tests/test-example1a.sh +0 -16
  38. data/examples/ex2/tests/test-example1b.sh +0 -13
  39. data/examples/ex2/tests/test-example1c.sh +0 -15
  40. data/examples/ex2/tests/test-example1d.sh +0 -15
  41. data/examples/ex2/tests/test-example2.forms.eyes.sh +0 -40
  42. data/examples/ex2/tests/test-example2.hover.eyes.sh +0 -40
  43. data/examples/ex2/tests/test-example2.hover.sh +0 -26
  44. data/examples/ex2/tests/test-example2.sh +0 -43
  45. data/examples/ex2/tests/test-example3.sauce.sh +0 -77
  46. data/examples/ex2/tests/test-example3.sh +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e7e0c96bd8d139c2267806a2c7859c98de00141
4
- data.tar.gz: 8ff1e669ca8791686138a75b996addca919ecf5e
3
+ metadata.gz: 34ed84007ef4998e7b2cc820d506924afd43cda3
4
+ data.tar.gz: b2158277a8b948fff0289325448946a5cf7c1fbf
5
5
  SHA512:
6
- metadata.gz: 539d55d57c15b8b6cd5b52f9bff5ae105bdc4911ec780b26b48a4247f37d8b26649da83b3e81bbb9ca376a3b7ab649b7f30fce1561a464872942acce68464b37
7
- data.tar.gz: cda66bb0d63614c4c1760df13ed9e233cc588d864792d1e8c2a75e1c16baa224ea40e3846053f3ccb982492e61fd212b24a8509c2ddf00e112687e70348483e1
6
+ metadata.gz: c48105b8807085f336963b8975e43ab4d93f94b1c291ecdb4569fc6c6a1ac7d3a1355abd4752023c65ea0b3e9acae0cc9bfb8df66bb8d2e54f8581e9cd9ed5a2
7
+ data.tar.gz: ce395f4c6c40dbc38ebd317f1d97f471f90ea3c05bafc992d57264f5e05324b36f71d616178885771e8556f1b7be99d4e2bbce16fd2a30370648796fcd39df49
data/.gitignore CHANGED
@@ -4,7 +4,9 @@
4
4
  /_yardoc/
5
5
  /coverage/
6
6
  /doc/
7
+ /pkg/
7
8
  /spec/reports/
8
- /test/gateway
9
9
  /tmp/
10
- /test/travel
10
+ /.idea
11
+ /.travis.yml
12
+
data/README.md CHANGED
@@ -59,13 +59,6 @@ To run unit tests:
59
59
  To run a specific unit test:
60
60
 
61
61
  $ rspec spec/json_spec.rb
62
-
63
- To build:
64
-
65
- $ bundle exec rake build
66
-
67
- To push the build (gem)
68
- $ gem push <gem file>
69
62
 
70
63
  ## Running the examples
71
64
 
@@ -92,6 +92,10 @@ module Scoutui::Base
92
92
 
93
93
  rescue Selenium::WebDriver::Error::NoSuchAlertError
94
94
  ;
95
+
96
+ rescue Selenium::WebDriver::Error::WebDriverError
97
+ # Support for phantomjs/ghostdriver per switch_to.alert()
98
+ ;
95
99
  end
96
100
 
97
101
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " existsAlert?() => #{rc}"
@@ -364,16 +368,21 @@ module Scoutui::Base
364
368
 
365
369
  def self.getElement(drv, _locator, _frames, _timeout=nil)
366
370
 
367
- Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " getElement(#{_locator})"
371
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "== getElement(#{_locator}) =="
368
372
  _isntStale=true
369
373
  obj = Scoutui::Base::QBrowser.findElement(drv,
370
374
  _locator,
371
375
  _frames,
372
376
  _timeout)
373
377
 
374
- Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | locator: #{_locator}"
375
- Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | obj : #{obj}"
376
- Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | stale : " + Scoutui::Base::QBrowser.isStale?(obj).to_s
378
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | locator : #{_locator}"
379
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | obj : #{obj}"
380
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | stale : " + Scoutui::Base::QBrowser.isStale?(obj).to_s
381
+ if obj.is_a?(Selenium::WebDriver::Element)
382
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | displayed : " + obj.displayed?.to_s
383
+ Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " | enabled : " + obj.enabled?.to_s
384
+ end
385
+
377
386
 
378
387
  cnt=0
379
388
  if obj.is_a?(Selenium::WebDriver::Element) && Scoutui::Base::QBrowser.isStale?(obj) && !_locator.nil?
@@ -0,0 +1,63 @@
1
+ require 'singleton'
2
+ #require 'browsermob/proxy'
3
+
4
+
5
+ module Scoutui::Base
6
+
7
+ class QHarMgr
8
+ include Singleton
9
+
10
+ attr_accessor :proxy_binary
11
+ attr_accessor :proxy
12
+ attr_accessor :seleniumProfile
13
+
14
+
15
+ def initialize()
16
+ puts __FILE__ + (__LINE__).to_s + " -- start BrowserMob --" if Scoutui::Utils::TestUtils.instance.isDebug?
17
+ @proxy_binary = BrowserMob::Proxy::Server.new(ENV['BROWSER_MOB_BIN'], { :port => 8088 })
18
+ end
19
+
20
+ def start()
21
+ puts __FILE__ + (__LINE__).to_s + " --start --"
22
+ @proxy_binary.start
23
+ @proxy = @proxy_binary.create_proxy
24
+ @seleniumProfile = @proxy.selenium_proxy # Needed by Selenium instance
25
+
26
+ @proxy.new_har(:capture_headers => true)
27
+ end
28
+
29
+
30
+ def getSeleniumProfile()
31
+ puts __FILE__ + (__LINE__).to_s + " == getSeleniumProfile() => #{@seleniumProfile} --"
32
+ @seleniumProfile
33
+ end
34
+
35
+ def stop(save_as=nil)
36
+ puts __FILE__ + (__LINE__).to_s + " -- stop(#{save_as.to_s} --"
37
+ # @proxy.close
38
+
39
+ if !save_as.nil?
40
+ @proxy.har.save_to(save_as)
41
+ end
42
+
43
+ @proxy.close
44
+ end
45
+
46
+ def capture_traffic
47
+ # @proxy.new_har
48
+ yield
49
+ @proxy.har
50
+ end
51
+
52
+ def run(n)
53
+ puts __FILE__ + (__LINE__).to_s + " -- run --"
54
+ @har = capture_traffic { yield }
55
+ # @proxy.close
56
+ # @har.save_to(n)
57
+ end
58
+
59
+
60
+ end
61
+
62
+
63
+ end
@@ -987,8 +987,6 @@ module Scoutui::Base
987
987
 
988
988
  Scoutui::Commands::Utils.instance.reset(e)
989
989
 
990
- puts __FILE__ + (__LINE__).to_s + " page => #{e}"
991
-
992
990
  if e[STEP_KEY].has_key?("timeout")
993
991
  Scoutui::Commands::Utils.instance.setTimeout(e[STEP_KEY]["timeout"])
994
992
  end
@@ -1412,7 +1410,14 @@ module Scoutui::Base
1412
1410
  if Scoutui::Utils::TestUtils.instance.screenShots?
1413
1411
  _saveScreenAs=Scoutui::Utils::TestUtils.instance.sanitize_filename(_name)
1414
1412
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ScreenSave : #{_saveScreenAs}"
1415
- my_driver.save_screenshot("/tmp/#{_saveScreenAs}.png")
1413
+
1414
+
1415
+ if !File.directory?(Scoutui::Utils::TestUtils.instance.screenShotsDir)
1416
+ FileUtils::mkdir_p Scoutui::Utils::TestUtils.instance.screenShotsDir
1417
+ end
1418
+
1419
+ _fullPath=Scoutui::Utils::TestUtils.instance.screenShotsDir + '/' + _saveScreenAs + '.png'
1420
+ my_driver.save_screenshot(_fullPath)
1416
1421
  end
1417
1422
 
1418
1423
  if isSnapIt(e)
@@ -94,10 +94,6 @@ module Scoutui::Commands
94
94
  if untilList.is_a?(Array) && untilList.size==1 && untilList[0]==true
95
95
  _expected=false
96
96
  _alwaystrue=true
97
- elsif untilList.is_a?(Array) && untilList.size==1 && untilList[0]==false
98
- _loop=false
99
- _bUntil=true
100
- _alwaystrue=true
101
97
  else
102
98
  _expected=Scoutui::Base::VisualTestFramework::processAsserts(@drv, untilList, false)
103
99
  end
@@ -205,6 +205,7 @@ module Scoutui::Commands
205
205
 
206
206
  if !_clicked
207
207
  Scoutui::Logger::LogMgr.instance.asserts.info __FILE__ + (__LINE__).to_s + " FAILED CLICK: #{_locator}"
208
+ # @drv.save_screenshot("/tmp/clickobject.failed.png")
208
209
  end
209
210
 
210
211
  setResult(_clicked)
@@ -94,6 +94,7 @@ module Scoutui::Commands
94
94
 
95
95
  @profile=nil
96
96
  browserType = Scoutui::Base::UserVars.instance.getBrowserType()
97
+ caps = Scoutui::Utils::TestUtils.instance.getCapabilities()
97
98
 
98
99
  if false
99
100
  if !browserType.to_s.match(/chrome/i).nil?
@@ -238,6 +239,60 @@ module Scoutui::Commands
238
239
  # https://wiki.saucelabs.com/display/DOCS/Setting+Up+Reporting+between+Sauce+Labs+and+Jenkins
239
240
  puts "SauceOnDemandSessionID=#{@drv.session_id} job-name=#{caps[:name]}"
240
241
 
242
+ elsif !caps.nil?
243
+
244
+ _YosemiteChromeBeta='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36'
245
+ _cap=Selenium::WebDriver::Remote::Capabilities.phantomjs('phantomjs.page.settings.userAgent' => _YosemiteChromeBeta)
246
+
247
+ if caps.has_key?(:browser) && caps[:browser].match(/(phantom|phantomjs|ghost|ghostdriver)/i)
248
+ selenium_server=Scoutui::Utils::TestUtils.instance.getSeleniumServer()
249
+ selenium_server='http://localhost:8001' if selenium_server.nil?
250
+
251
+ if caps.has_key?(:useragent)
252
+ _cap=Selenium::WebDriver::Remote::Capabilities.phantomjs('phantomjs.page.settings.userAgent' => caps[:useragent])
253
+ end
254
+
255
+ @drv=Selenium::WebDriver.for :remote, :url => selenium_server, :desired_capabilities => _cap
256
+
257
+ _viewport = Scoutui::Utils::TestUtils.instance.getViewPort()
258
+ if !_viewport.nil?
259
+ target_size = Selenium::WebDriver::Dimension.new(_viewport[:width], _viewport[:height])
260
+ @drv.manage.window.size = target_size
261
+ end
262
+
263
+ end
264
+
265
+
266
+ elsif browserType.match(/(phantom|phantomjs|ghost|ghostdriver)/i)
267
+
268
+ selenium_server=Scoutui::Utils::TestUtils.instance.getSeleniumServer()
269
+ selenium_server='http://localhost:8001' if selenium_server.nil?
270
+
271
+ ##
272
+ # caps
273
+ ##
274
+ _useragentChromeOnMac='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36'
275
+ _useragentWin81IE11='Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko'
276
+
277
+ _Win7IE10 = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)'
278
+
279
+ _Win10Edge13='#Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'
280
+
281
+ _Win10ChromeBeta='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.21 Safari/537.36'
282
+ _YosemiteChromeBeta='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36'
283
+
284
+ _useragent = _YosemiteChromeBeta
285
+
286
+ caps=Selenium::WebDriver::Remote::Capabilities.phantomjs('phantomjs.page.settings.userAgent' => _useragent)
287
+ # @drv=Selenium::WebDriver.for :phantomjs, :url => selenium_server, :desired_capabilities => caps
288
+ @drv=Selenium::WebDriver.for :remote, :url => selenium_server, :desired_capabilities => caps
289
+
290
+ _viewport = Scoutui::Utils::TestUtils.instance.getViewPort()
291
+ if !_viewport.nil?
292
+ target_size = Selenium::WebDriver::Dimension.new(_viewport[:width], _viewport[:height])
293
+ @drv.manage.window.size = target_size
294
+ end
295
+
241
296
  else
242
297
  Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Create WebDriver: #{browserType.to_s}"
243
298
  @drv=Selenium::WebDriver.for browserType.to_sym, :profile => @profile
@@ -34,7 +34,7 @@ module Scoutui::Utils
34
34
  @currentTest={:reqid => 'UI', :testcase => '00' }
35
35
 
36
36
  [:accounts, :browser, :capabilities, :diffs_dir, :dut,:test_file, :host, :loc, :title, :viewport,
37
- :userid, :password, :role, :json_config_file, :page_model, :report, :test_config,
37
+ :userid, :password, :role, :json_config_file, :page_model, :report, :selenium_server, :test_config,
38
38
  :debug].each do |o|
39
39
  @options[o]=nil
40
40
  end
@@ -54,6 +54,7 @@ module Scoutui::Utils
54
54
  @options[:debug]=false
55
55
  @options[:fail_fast]=false
56
56
  @options[:screenshots]=false
57
+ @options[:screenshots_dir]=nil
57
58
  @options[:retries]=1
58
59
 
59
60
 
@@ -283,8 +284,8 @@ module Scoutui::Utils
283
284
 
284
285
 
285
286
  opt.on('--screenshots Bool', [:true, :false]) { |o| @options[:screenshots] = !o.match(/true/i).nil? }
286
-
287
-
287
+ opt.on('--screenshots:run Bool', [:true, :false]) { |o| @options[:screenshots] = !o.match(/true/i).nil? }
288
+ opt.on('--screenshots:dir DIR') { |o| @options[:screenshots_dir] = o.to_s }
288
289
 
289
290
  opt.on('--role ROLE') { |o|
290
291
  @options[:role]=o
@@ -306,6 +307,8 @@ module Scoutui::Utils
306
307
  opt.on('--sauce:resolution Resolution') { |o| @options[:sauce_resolution] = o }
307
308
  opt.on('--sauce:version Version') { |o| @options[:sauce_version] = o }
308
309
 
310
+ opt.on('--seleniumserver URL') { |o| @options[:selenium_server] = o }
311
+
309
312
  opt.on('--viewport [resolution]') { |o|
310
313
  @options[:viewport] = o
311
314
  Scoutui::Base::UserVars.instance.set('eyes.viewport', @options[:viewport])
@@ -398,6 +401,10 @@ module Scoutui::Utils
398
401
  @options[:screenshots]
399
402
  end
400
403
 
404
+ def screenShotsDir
405
+ @options[:screenshots_dir]
406
+ end
407
+
401
408
  def getHost()
402
409
  @options[:host].to_s
403
410
  end
@@ -475,6 +482,10 @@ module Scoutui::Utils
475
482
  @options[:sauce_build] || nil
476
483
  end
477
484
 
485
+ def getSeleniumServer()
486
+ @options[:selenium_server]
487
+ end
488
+
478
489
  def getBrowser()
479
490
  getBrowserType()
480
491
  end
@@ -1,3 +1,3 @@
1
1
  module Scoutui
2
- VERSION = "2.0.3.57.pre"
2
+ VERSION = "2.0.4.0"
3
3
  end
data/scoutui.gemspec CHANGED
@@ -32,9 +32,8 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "json", ">= 1.8.3"
33
33
  spec.add_development_dependency "faker"
34
34
  spec.add_development_dependency "logging"
35
- spec.add_development_dependency "sauce_whisk"
35
+ spec.add_development_dependency "sauce_whisk", "0.0.21"
36
36
  spec.add_development_dependency "testmgr", ">= 0.3.2.pre"
37
- spec.add_development_dependency "tiny_tds"
38
- spec.add_development_dependency "DataMgr", ">= 0.1.1.1.pre"
37
+ spec.add_development_dependency "DataMgr", ">=0.2.0"
39
38
  spec.add_development_dependency "CmdShellMgr", ">= 0.1.1.2.pre"
40
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scoutui
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3.57.pre
4
+ version: 2.0.4.0
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-12-03 00:00:00.000000000 Z
11
+ date: 2016-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: sauce_whisk
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: 0.0.21
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: '0'
166
+ version: 0.0.21
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: testmgr
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -178,34 +178,20 @@ dependencies:
178
178
  - - ">="
179
179
  - !ruby/object:Gem::Version
180
180
  version: 0.3.2.pre
181
- - !ruby/object:Gem::Dependency
182
- name: tiny_tds
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
181
  - !ruby/object:Gem::Dependency
196
182
  name: DataMgr
197
183
  requirement: !ruby/object:Gem::Requirement
198
184
  requirements:
199
185
  - - ">="
200
186
  - !ruby/object:Gem::Version
201
- version: 0.1.1.1.pre
187
+ version: 0.2.0
202
188
  type: :development
203
189
  prerelease: false
204
190
  version_requirements: !ruby/object:Gem::Requirement
205
191
  requirements:
206
192
  - - ">="
207
193
  - !ruby/object:Gem::Version
208
- version: 0.1.1.1.pre
194
+ version: 0.2.0
209
195
  - !ruby/object:Gem::Dependency
210
196
  name: CmdShellMgr
211
197
  requirement: !ruby/object:Gem::Requirement
@@ -237,45 +223,12 @@ files:
237
223
  - README.md
238
224
  - Rakefile
239
225
  - bin/console
240
- - bin/scoutui_driver
241
226
  - bin/scoutui_driver.rb
242
227
  - bin/setup
243
- - examples/benchmark/ex.rb
244
- - examples/capabilities/win10.chrome46.json
245
- - examples/carmax/appmodel/search_results.json
246
- - examples/carmax/commands/commands.yml
247
- - examples/cmdshell/commands/hello.yml
248
- - examples/converters/jsonupdate.rb
249
228
  - examples/ex1/commands.holidays.yml
250
229
  - examples/ex1/commands.yml
251
230
  - examples/ex1/test-example.sh
252
231
  - examples/ex1/test.config.json
253
- - examples/ex2/appmodel/common.json
254
- - examples/ex2/appmodel/page_model.json
255
- - examples/ex2/appmodel/register.model.json
256
- - examples/ex2/commands/commands.basic.appmodel.yml
257
- - examples/ex2/commands/commands.yml
258
- - examples/ex2/commands/ex1.yml
259
- - examples/ex2/commands/ex1c.yml
260
- - examples/ex2/commands/ex1d.yml
261
- - examples/ex2/commands/ex2.hover.yml
262
- - examples/ex2/commands/ex2.yml
263
- - examples/ex2/data.json
264
- - examples/ex2/test-configs/test.config.basic.json
265
- - examples/ex2/test-configs/test.config.json
266
- - examples/ex2/tests/run-test.sh
267
- - examples/ex2/tests/test-basic-appmodel.sh
268
- - examples/ex2/tests/test-example.sh
269
- - examples/ex2/tests/test-example1a.sh
270
- - examples/ex2/tests/test-example1b.sh
271
- - examples/ex2/tests/test-example1c.sh
272
- - examples/ex2/tests/test-example1d.sh
273
- - examples/ex2/tests/test-example2.forms.eyes.sh
274
- - examples/ex2/tests/test-example2.hover.eyes.sh
275
- - examples/ex2/tests/test-example2.hover.sh
276
- - examples/ex2/tests/test-example2.sh
277
- - examples/ex2/tests/test-example3.sauce.sh
278
- - examples/ex2/tests/test-example3.sh
279
232
  - lib/scoutui.rb
280
233
  - lib/scoutui/appmodel/q_model.rb
281
234
  - lib/scoutui/base/assertions.rb
@@ -283,6 +236,7 @@ files:
283
236
  - lib/scoutui/base/q_applitools.rb
284
237
  - lib/scoutui/base/q_browser.rb
285
238
  - lib/scoutui/base/q_form.rb
239
+ - lib/scoutui/base/q_har_mgr.rb
286
240
  - lib/scoutui/base/requirements.rb
287
241
  - lib/scoutui/base/test_context.rb
288
242
  - lib/scoutui/base/test_data.rb
@@ -345,9 +299,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
345
299
  version: '0'
346
300
  required_rubygems_version: !ruby/object:Gem::Requirement
347
301
  requirements:
348
- - - ">"
302
+ - - ">="
349
303
  - !ruby/object:Gem::Version
350
- version: 1.3.1
304
+ version: '0'
351
305
  requirements: []
352
306
  rubyforge_project:
353
307
  rubygems_version: 2.6.2
data/bin/scoutui_driver DELETED
@@ -1 +0,0 @@
1
- scoutui_driver.rb
@@ -1,16 +0,0 @@
1
-
2
-
3
-
4
- def foo(opts)
5
-
6
- puts opts
7
-
8
-
9
- end
10
-
11
-
12
-
13
-
14
- foo(rover: 'Rover')
15
-
16
-
@@ -1,6 +0,0 @@
1
- {
2
- "platform": "Windows 10",
3
- "browser": "chrome",
4
- "version": "46.0",
5
- "screenResolution": "1024x768"
6
- }
@@ -1,27 +0,0 @@
1
- {
2
-
3
-
4
- "search_results": {
5
-
6
-
7
- "results": {
8
-
9
- "header": {
10
- "reqid": "REQ-HEADER",
11
- "locator": "//span[text()='Applied filters']",
12
- "visible_when": "title(Search Results)"
13
- }
14
-
15
-
16
- }
17
-
18
-
19
-
20
- }
21
-
22
-
23
-
24
-
25
-
26
-
27
- }
@@ -1,63 +0,0 @@
1
- page:
2
- name: Home
3
- description: Navigate to a specified URL and wait until the expected elements are present
4
- url: http://www.carmax.com
5
- ---
6
- page:
7
- name: Highlight Example
8
- action: highlight(page(main).get(nav).get(findYourCar))
9
- ---
10
- page:
11
- timeout: 5
12
- name: Click Find Your Car
13
- action: click(page(main).get(nav).get(findYourCar))
14
- expected:
15
- wait1: //header//*[text()='Pricex']
16
- ---
17
- page:
18
- name: Basic Search
19
- timeout: 5
20
- action: click(page(main).get(nav).get(basic_search))
21
- expected:
22
- wait: page(basic_search).get(free_text)
23
- assertions: [
24
- elvis: {
25
- "locator": "//button[@text()='Go']",
26
- "visible_when": "visible(page(basic_search).get(free_text))"
27
- },
28
- better_assert: {
29
- "locator": "page(basic_search)"
30
- }
31
- ]
32
- ---
33
- page:
34
- name: Popup
35
- timeout: 5
36
- execute_when: visible(//area[@alt='no'])
37
- action: click(//area[@alt='no'])
38
- ---
39
- page:
40
- name: Enter Porsche
41
- action: type(page(basic_search).get(free_text), Porsche 911)
42
- expected:
43
- wait: //a[contains(@href, 'Porsche%20911')]
44
- ---
45
- page:
46
- action: highlight(//a[contains(@href, 'Porsche%20911')])
47
- ---
48
- page:
49
- action: mouseover(//a[contains(@href, 'Porsche%20911')])
50
- ---
51
- page:
52
- action: click(page(basic_search).get(go))
53
- assertions: [
54
- assert1: {
55
- "locator": "page(search_results).get(results)"
56
- }
57
- ]
58
- ---
59
- page:
60
- name: Pause after Nav.
61
- action: pause
62
- skipit: false
63
-
@@ -1,22 +0,0 @@
1
- page:
2
- name: Assign my vars
3
- action: assignments
4
- vars:
5
- - assign(MyEntity, ScoutUI)
6
- ---
7
- page:
8
- name: Simple Cmd
9
- id: MultiLs
10
- action: defineCommand
11
- commands: sed -e 's/domain/${MyEntity}/g' /tmp/userlist-v2.txt > /tmp/mydata.txt
12
- ---
13
- page:
14
- name: Run Multi
15
- action: executeCommands
16
- commands:
17
- - id: MultiLs
18
- ---
19
- page:
20
- name: Pause afger MultiLs
21
- action: pause
22
- skip: false
@@ -1,31 +0,0 @@
1
-
2
-
3
- def iterate(h)
4
- h.each do |k, v|
5
- if v.is_a?(Hash) || v.is_a?(Array)
6
- iterate(v)
7
- else
8
- puts("k is #{k}, value is #{v}")
9
- if v.match(/peter/i)
10
- h[k]='Elvis'
11
- end
12
- end
13
- end
14
- end
15
-
16
-
17
- h={
18
- 'person': {
19
- 'first': 'Peter',
20
- 'last': 'Kim',
21
- 'address': {
22
- 'city': 'Manhattan peter',
23
- 'state': 'New York'
24
- }
25
- }
26
- }
27
-
28
-
29
- iterate(h)
30
-
31
- puts "h => #{h}"