scoutui 2.0.1 → 2.0.2
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 +4 -4
- data/examples/capabilities/win10.chrome46.json +6 -0
- data/examples/ex1/test-example.sh +4 -4
- data/examples/ex1/test.config.json +1 -1
- data/examples/ex2/appmodel/common.json +51 -0
- data/examples/ex2/appmodel/page_model.json +106 -0
- data/examples/ex2/appmodel/register.model.json +42 -0
- data/examples/ex2/commands/commands.basic.appmodel.yml +8 -0
- data/examples/ex2/commands/commands.yml +115 -0
- data/examples/ex2/commands/ex1.yml +7 -0
- data/examples/ex2/commands/ex1c.yml +8 -0
- data/examples/ex2/commands/ex1d.yml +22 -0
- data/examples/ex2/commands/ex2.hover.yml +43 -0
- data/examples/ex2/commands/ex2.yml +24 -0
- data/examples/ex2/data.json +6 -0
- data/examples/ex2/test-configs/test.config.basic.json +12 -0
- data/examples/ex2/{test.config.json → test-configs/test.config.json} +8 -2
- data/examples/ex2/tests/run-test.sh +125 -0
- data/examples/ex2/tests/test-basic-appmodel.sh +14 -0
- data/examples/ex2/{test-example.sh → tests/test-example.sh} +3 -3
- data/examples/ex2/tests/test-example1a.sh +16 -0
- data/examples/ex2/tests/test-example1b.sh +13 -0
- data/examples/ex2/tests/test-example1c.sh +15 -0
- data/examples/ex2/tests/test-example1d.sh +15 -0
- data/examples/ex2/tests/test-example2.forms.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.eyes.sh +40 -0
- data/examples/ex2/tests/test-example2.hover.sh +26 -0
- data/examples/ex2/tests/test-example2.sh +43 -0
- data/examples/ex2/tests/test-example3.sauce.sh +77 -0
- data/examples/ex2/tests/test-example3.sh +41 -0
- data/lib/scoutui/appmodel/q_model.rb +105 -0
- data/lib/scoutui/base/assertions.rb +570 -10
- data/lib/scoutui/base/q_applitools.rb +2 -2
- data/lib/scoutui/base/q_browser.rb +38 -5
- data/lib/scoutui/base/q_form.rb +7 -7
- data/lib/scoutui/base/test_scout.rb +2 -1
- data/lib/scoutui/base/user_vars.rb +29 -2
- data/lib/scoutui/base/visual_test_framework.rb +308 -24
- data/lib/scoutui/commands/click_object.rb +86 -13
- data/lib/scoutui/commands/commands.rb +20 -7
- data/lib/scoutui/commands/jsalert/action_jsalert.rb +1 -1
- data/lib/scoutui/commands/mouse_over.rb +94 -8
- data/lib/scoutui/commands/select_object.rb +1 -1
- data/lib/scoutui/commands/select_window.rb +43 -0
- data/lib/scoutui/commands/strategy.rb +40 -3
- data/lib/scoutui/commands/type.rb +99 -11
- data/lib/scoutui/commands/update_url.rb +1 -1
- data/lib/scoutui/commands/utils.rb +43 -5
- data/lib/scoutui/commands/verify_element.rb +38 -7
- data/lib/scoutui/eyes/eye_factory.rb +7 -1
- data/lib/scoutui/eyes/eye_scout.rb +20 -7
- data/lib/scoutui/utils/utils.rb +59 -1
- data/lib/scoutui/version.rb +1 -1
- data/scoutui.gemspec +5 -4
- metadata +77 -39
- data/examples/ex2/commands.yml +0 -35
- data/examples/ex2/page_model.json +0 -28
@@ -4,36 +4,109 @@ module Scoutui::Commands
|
|
4
4
|
|
5
5
|
class ClickObject < Command
|
6
6
|
|
7
|
+
def _whenClicked(page_elt)
|
8
|
+
|
9
|
+
if page_elt.is_a?(Hash) && page_elt.has_key?('when_clicked')
|
10
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Verify #{page_elt['when_clicked']}"
|
11
|
+
|
12
|
+
page_elt['when_clicked'].each do |_elt|
|
13
|
+
|
14
|
+
_r = _elt.keys[0].to_s
|
15
|
+
|
16
|
+
_pg = _elt[_r]
|
17
|
+
|
18
|
+
# _c = Scoutui::Commands::VerifyElement.new("verifyelement(" + _elt + ")")
|
19
|
+
# _c.execute(@drv)
|
20
|
+
|
21
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " _whenClicked -> assertions (#{_pg}, #{_r.to_s})"
|
22
|
+
|
23
|
+
|
24
|
+
if _pg.is_a?(Array)
|
25
|
+
_pg.each do |_pg2|
|
26
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg2, _r)
|
27
|
+
end
|
28
|
+
elsif _pg.is_a?(String)
|
29
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg, _r)
|
30
|
+
else
|
31
|
+
puts __FILE__ + (__LINE__).to_s + " => #{_pg}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " IsVisible #{isVisible} - PAUSE"; gets
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
7
41
|
|
8
42
|
def execute(drv)
|
9
43
|
@drv=drv if !drv.nil?
|
10
44
|
|
11
|
-
|
12
|
-
|
45
|
+
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
46
|
+
_locator = @cmd.match(/click\s*\((.*)\)/)[1].to_s.strip
|
47
|
+
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " clickObject => #{_locator}"
|
48
|
+
|
49
|
+
# _vars = _locator.scan(/(\$\{.*?\})/)
|
50
|
+
# _vars.each do | _v|
|
51
|
+
# if _v.length==1
|
52
|
+
#
|
53
|
+
# _u = Scoutui::Base::UserVars.instance.get(_v[0].to_s)
|
54
|
+
# puts __FILE__ + (__LINE__).to_s + " Normalize(#{_v}) => #{_u}"
|
55
|
+
#
|
56
|
+
# _locator.gsub!(_v[0].to_s, _u)
|
57
|
+
# end
|
58
|
+
#
|
59
|
+
# end
|
13
60
|
|
14
|
-
_xpath = Scoutui::Base::UserVars.instance.get(_xpath)
|
15
61
|
|
16
|
-
|
62
|
+
# _locator = Scoutui::Base::UserVars.instance.get(_locator)
|
63
|
+
_locator = Scoutui::Base::UserVars.instance.normalize(_locator)
|
64
|
+
|
65
|
+
Scoutui::Logger::LogMgr.instance.command.info __FILE__ + (__LINE__).to_s + " | translate : #{_locator}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
17
66
|
|
18
67
|
_clicked=false
|
19
68
|
|
20
69
|
begin
|
21
|
-
obj = Scoutui::Base::QBrowser.getObject(@drv,
|
70
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)
|
71
|
+
|
72
|
+
|
22
73
|
|
23
74
|
if obj
|
24
|
-
|
25
|
-
|
75
|
+
|
76
|
+
# Refactor in qbrowser
|
77
|
+
|
78
|
+
wait = Selenium::WebDriver::Wait.new(:timeout => Scoutui::Commands::Utils.instance.getTimeout)
|
79
|
+
|
80
|
+
isDisplayed=false
|
81
|
+
isDisplayed = wait.until {
|
82
|
+
true if obj.displayed?
|
83
|
+
}
|
84
|
+
|
85
|
+
if isDisplayed
|
86
|
+
obj.click
|
87
|
+
_clicked=true
|
88
|
+
|
89
|
+
page_elt = Scoutui::Utils::TestUtils.instance.getPageElement(_locator)
|
90
|
+
|
91
|
+
Scoutui::Logger::LogMgr.instance.debug "PageElement(#{_locator}) => #{page_elt}"
|
92
|
+
|
93
|
+
_whenClicked(page_elt)
|
94
|
+
else
|
95
|
+
Scoutui::Logger::LogMgr.instance.warn __FILE__ + (__LINE__).to_s + " Unable to click object that is not displayed."
|
96
|
+
end
|
97
|
+
|
26
98
|
end
|
27
99
|
|
28
|
-
rescue
|
29
|
-
|
100
|
+
rescue => ex
|
101
|
+
Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{$!}"
|
102
|
+
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
30
103
|
end
|
31
104
|
|
32
|
-
Scoutui::Logger::LogMgr.instance.asserts.info "Verify object to click exists #{
|
33
|
-
Scoutui::Logger::LogMgr.instance.asserts.info "Verify clicked #{
|
105
|
+
Scoutui::Logger::LogMgr.instance.asserts.info "Verify object to click exists #{_locator} : #{obj.class.to_s} - #{!obj.nil?.to_s}"
|
106
|
+
Scoutui::Logger::LogMgr.instance.asserts.info "Verify clicked #{_locator} - #{_clicked.to_s}"
|
34
107
|
|
35
|
-
Testmgr::TestReport.instance.getReq(
|
36
|
-
Testmgr::TestReport.instance.getReq(
|
108
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('click').add(!obj.nil?, "Verify object to click exists #{_locator} : #{obj.class.to_s}")
|
109
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('click').add(_clicked, "Verify clicked #{_locator}")
|
37
110
|
|
38
111
|
setResult(_clicked)
|
39
112
|
end
|
@@ -6,7 +6,7 @@ module Scoutui::Commands
|
|
6
6
|
|
7
7
|
|
8
8
|
def self.processCommands(commandList, my_driver)
|
9
|
-
|
9
|
+
Scoutui::Logger::LogMgr.instance.debug " enter [processCommands]"
|
10
10
|
commandList.each do |cmd|
|
11
11
|
begin
|
12
12
|
rc=processCommand(cmd[:command], cmd[:e], my_driver)
|
@@ -14,35 +14,45 @@ module Scoutui::Commands
|
|
14
14
|
Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
|
15
15
|
Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{e.backtrace.join("\n\t")}"
|
16
16
|
end
|
17
|
-
|
18
17
|
end
|
19
18
|
|
19
|
+
Scoutui::Logger::LogMgr.instance.debug " exit [processCommands]"
|
20
20
|
end
|
21
21
|
|
22
|
+
|
22
23
|
def self.processCommand(_action, e, my_driver)
|
23
|
-
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + "
|
24
|
+
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " enter [processCommand(#{_action})"
|
24
25
|
|
25
26
|
_aborted=false
|
26
27
|
_cmd=nil
|
27
|
-
_totalWindows = my_driver.window_handles.length
|
28
28
|
|
29
29
|
rc=true
|
30
30
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
31
31
|
|
32
32
|
begin
|
33
33
|
|
34
|
+
_totalWindows = my_driver.window_handles.length
|
35
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Current Total Windows : #{_totalWindows}"
|
36
|
+
|
34
37
|
_c=nil
|
35
38
|
|
36
39
|
if Scoutui::Commands::Utils.instance.isPause?(_action)
|
37
40
|
_cmd='pause'
|
38
41
|
_c = Scoutui::Commands::Pause.new(nil)
|
39
42
|
_c.execute(e);
|
40
|
-
|
43
|
+
elsif Scoutui::Commands::Utils.instance.isSelectWindow?(_action)
|
44
|
+
_cmd='SelectWindow'
|
45
|
+
_c = Scoutui::Commands::SelectWindow.new(_action)
|
46
|
+
_c.execute(my_driver)
|
41
47
|
elsif Scoutui::Commands::Utils.instance.isClick?(_action)
|
42
48
|
_cmd='Click'
|
43
49
|
_c = Scoutui::Commands::ClickObject.new(_action)
|
44
50
|
_c.execute(my_driver)
|
45
51
|
|
52
|
+
if e["page"].has_key?('then')
|
53
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " then => #{e['page']['then]']}"
|
54
|
+
end
|
55
|
+
|
46
56
|
elsif Scoutui::Commands::Utils.instance.isExistsAlert?(_action)
|
47
57
|
_cmd='ExistsAlert'
|
48
58
|
_c = Scoutui::Commands::JsAlert::ExistsAlert.new(_action)
|
@@ -122,10 +132,13 @@ module Scoutui::Commands
|
|
122
132
|
end
|
123
133
|
|
124
134
|
if my_driver.window_handles.length > _totalWindows
|
125
|
-
Scoutui::Logger::LogMgr.instance.info " New Window generated"
|
135
|
+
Scoutui::Logger::LogMgr.instance.info " New Window generated from command #{_cmd}."
|
126
136
|
end
|
127
137
|
|
128
|
-
Testmgr::TestReport.instance.getReq(_req).get_child(_cmd.downcase).add(!_aborted, "Verify command did not abort")
|
138
|
+
Testmgr::TestReport.instance.getReq(_req).get_child(_cmd.downcase).add(!_aborted, "Verify command #{_cmd} did not abort")
|
139
|
+
|
140
|
+
Scoutui::Logger::LogMgr.instance.commands.debug __FILE__ + (__LINE__).to_s + " exit [processCommand(#{_action})"
|
141
|
+
|
129
142
|
_c
|
130
143
|
end
|
131
144
|
|
@@ -15,7 +15,7 @@ module Scoutui::Commands::JsAlert
|
|
15
15
|
|
16
16
|
_action=@cmd.match(/(exist[s]*_*alert|existAlert|existsAlert|existsJsAlert|existsJsConfirm|existsJsPrompt)\s*\((.*)\)/i)[2].to_s.strip
|
17
17
|
|
18
|
-
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ExistsAlert(#{_action})"
|
18
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ExistsAlert(#{_action})"
|
19
19
|
|
20
20
|
alert=nil
|
21
21
|
|
@@ -3,24 +3,110 @@ module Scoutui::Commands
|
|
3
3
|
|
4
4
|
class MouseOver < Command
|
5
5
|
|
6
|
+
|
7
|
+
def _whenHovered(page_elt)
|
8
|
+
|
9
|
+
if page_elt.is_a?(Hash) && page_elt.has_key?('when_hovered')
|
10
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Verify #{page_elt['when_hovered']}"
|
11
|
+
|
12
|
+
page_elt['when_hovered'].each do |_elt|
|
13
|
+
|
14
|
+
_r = _elt.keys[0].to_s
|
15
|
+
|
16
|
+
_pg = _elt[_r]
|
17
|
+
|
18
|
+
# _c = Scoutui::Commands::VerifyElement.new("verifyelement(" + _elt + ")")
|
19
|
+
# _c.execute(@drv)
|
20
|
+
|
21
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " processPageElement(#{_pg})"
|
22
|
+
|
23
|
+
|
24
|
+
if _pg.is_a?(Array)
|
25
|
+
_pg.each do |_pg2|
|
26
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg2, _r)
|
27
|
+
end
|
28
|
+
elsif _pg.is_a?(String)
|
29
|
+
isVisible=Scoutui::Base::Assertions.instance.isVisible(@drv, _pg, _r)
|
30
|
+
else
|
31
|
+
puts __FILE__ + (__LINE__).to_s + " => #{_pg}"
|
32
|
+
end
|
33
|
+
|
34
|
+
# Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " IsVisible #{isVisible} - PAUSE"; gets
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
6
43
|
def execute(drv=nil)
|
7
44
|
_rc=false
|
8
45
|
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
9
46
|
|
47
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " MouseOver.execute(#{@cmd})"
|
48
|
+
|
10
49
|
@drv=drv if !drv.nil?
|
11
50
|
|
12
51
|
begin
|
13
|
-
|
14
|
-
obj = Scoutui::Base::QBrowser.getObject(@drv,
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
52
|
+
_locator = @cmd.match(/mouseover\s*\((.*)\)/)[1].to_s.strip
|
53
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, _locator, Scoutui::Commands::Utils.instance.getTimeout)
|
54
|
+
|
55
|
+
if !obj.nil?
|
56
|
+
@drv.action.move_to(obj).perform
|
57
|
+
_rc=true
|
58
|
+
|
59
|
+
|
60
|
+
page_elt = Scoutui::Utils::TestUtils.instance.getPageElement(_locator)
|
61
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " PageElement(#{_locator}) => #{page_elt}"
|
62
|
+
_whenHovered(page_elt)
|
63
|
+
|
64
|
+
|
65
|
+
#------------
|
66
|
+
|
67
|
+
appModel = Scoutui::Utils::TestUtils.instance.getAppModel()
|
68
|
+
|
69
|
+
triggers = appModel.itemize('visible_when', 'mouseover', _locator)
|
70
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " triggers => #{triggers}"
|
71
|
+
|
72
|
+
if !(triggers.nil? || triggers.empty?)
|
73
|
+
|
74
|
+
triggers.each do |_pageObj|
|
75
|
+
_tObj=nil
|
76
|
+
|
77
|
+
if !_pageObj.match(/^page\([\w\d]+\)/).nil?
|
78
|
+
# _tObj = Scoutui::Base::VisualTestFramework.processPageElement(@drv, 'peter', _pageObj)
|
79
|
+
|
80
|
+
_tLocator = Scoutui::Utils::TestUtils.instance.getPageElement(_pageObj)
|
81
|
+
_tObj = Scoutui::Base::QBrowser.getFirstObject(@drv, _tLocator['locator'])
|
82
|
+
|
83
|
+
else
|
84
|
+
_tObj = Scoutui::Base::QBrowser.getFirstObject(@drv, _pageObj, Scoutui::Commands::Utils.instance.getTimeout())
|
85
|
+
end
|
86
|
+
|
87
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " HIT #{_pageObj} => #{!_tObj.nil?}"
|
88
|
+
|
89
|
+
Scoutui::Logger::LogMgr.instance.asserts.info "Verify #{_pageObj} is visible when mouseover #{_locator} - #{!_tObj.nil?.to_s}"
|
90
|
+
Testmgr::TestReport.instance.getReq(_req).get_child('mouseover').add(!_tObj.nil?, "Verify #{_pageObj} is visible when mouseover #{_locator}")
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
rescue => ex
|
100
|
+
Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{$!}"
|
101
|
+
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
19
102
|
end
|
20
103
|
|
21
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('mouseover').add(!obj.nil?, "Verify object #{
|
22
|
-
Testmgr::TestReport.instance.getReq(_req).testcase('mousseover').add(_rc, "Verify mouseover #{_rc}")
|
104
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('mouseover').add(!obj.nil?, "Verify object #{_locator} to mouseover exists : #{obj.class.to_s}")
|
105
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('mousseover').add(_rc, "Verify mouseover #{_rc} performed for #{_locator}")
|
23
106
|
setResult(_rc)
|
107
|
+
|
108
|
+
|
109
|
+
|
24
110
|
end
|
25
111
|
|
26
112
|
|
@@ -23,7 +23,7 @@ module Scoutui::Commands
|
|
23
23
|
|
24
24
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + "Process SELECT #{_val} into #{_xpath}" if Scoutui::Utils::TestUtils.instance.isDebug?
|
25
25
|
|
26
|
-
obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath)
|
26
|
+
obj = Scoutui::Base::QBrowser.getObject(@drv, _xpath, Scoutui::Commands::Utils.instance.getTimeout)
|
27
27
|
|
28
28
|
if !obj.nil? && obj.tag_name.downcase.match(/(select)/)
|
29
29
|
|
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
module Scoutui::Commands
|
3
|
+
|
4
|
+
class SelectWindow < Command
|
5
|
+
|
6
|
+
def execute(drv=nil)
|
7
|
+
_rc=false
|
8
|
+
_req = Scoutui::Utils::TestUtils.instance.getReq()
|
9
|
+
_window_id=nil
|
10
|
+
|
11
|
+
@drv=drv if !drv.nil?
|
12
|
+
|
13
|
+
puts __FILE__ + (__LINE__).to_s + " SELECT WINDOW +++++++++++++++"
|
14
|
+
|
15
|
+
begin
|
16
|
+
_window_id = @cmd.match(/select_window\s*\((.*)\)/)[1].to_s.strip
|
17
|
+
|
18
|
+
puts __FILE__ + (__LINE__).to_s + " ==> WindowID : #{_window_id}"
|
19
|
+
puts __FILE__ + (__LINE__).to_s + " ==> handles : #{@drv.window_handles.length.to_s}"
|
20
|
+
|
21
|
+
i=0
|
22
|
+
@drv.window_handles.each do |_w|
|
23
|
+
puts __FILE__ + (__LINE__).to_s + "#{i}. #{_w.class.to_s}"
|
24
|
+
@drv.switch_to.window(_w)
|
25
|
+
puts __FILE__ + (__LINE__).to_s + " Title : #{@drv.title.to_s}"
|
26
|
+
end
|
27
|
+
|
28
|
+
_rc=true
|
29
|
+
rescue => ex
|
30
|
+
Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
|
31
|
+
Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
32
|
+
end
|
33
|
+
|
34
|
+
Testmgr::TestReport.instance.getReq(_req).testcase('select_window').add(_rc, "Verify select_window #{_window_id} command passed #{_rc}")
|
35
|
+
setResult(_rc)
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'testmgr'
|
2
|
-
|
2
|
+
require 'sauce_whisk'
|
3
3
|
|
4
4
|
module Scoutui::Commands
|
5
5
|
|
@@ -24,6 +24,7 @@ module Scoutui::Commands
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def navigate(url)
|
27
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " [enter]:navigate(#{url})"
|
27
28
|
rc = false
|
28
29
|
begin
|
29
30
|
processCommand('navigate(' + url + ')', nil)
|
@@ -38,9 +39,37 @@ module Scoutui::Commands
|
|
38
39
|
|
39
40
|
def report()
|
40
41
|
Testmgr::TestReport.instance.report()
|
42
|
+
# Testmgr::TestReport.instance.generateReport()
|
41
43
|
end
|
42
44
|
|
43
45
|
def quit()
|
46
|
+
|
47
|
+
begin
|
48
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " quit()"
|
49
|
+
|
50
|
+
|
51
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " ===== Page Coverage ====="
|
52
|
+
Scoutui::Utils::TestUtils.instance.getPageCoverage().each do |_c|
|
53
|
+
Scoutui::Logger::LogMgr.instance.debug " #{_c}"
|
54
|
+
end
|
55
|
+
|
56
|
+
metrics=Testmgr::TestReport.instance.getMetrics()
|
57
|
+
Scoutui::Logger::LogMgr.instance.info "Metrics => #{metrics}"
|
58
|
+
|
59
|
+
if Scoutui::Utils::TestUtils.instance.sauceEnabled?
|
60
|
+
job_id = @drv.session_id
|
61
|
+
|
62
|
+
SauceWhisk::Jobs.change_status job_id, metrics[:rc]
|
63
|
+
|
64
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Update Sauce tests with job_id #{job_id} to #{metrics[:rc]}"
|
65
|
+
end
|
66
|
+
|
67
|
+
rescue => ex
|
68
|
+
Scoutui::Logger::LogMgr.instance.warn "Error during processing: #{$!}"
|
69
|
+
Scoutui::Logger::LogMgr.instance.warn "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
70
|
+
end
|
71
|
+
|
72
|
+
|
44
73
|
@drv.quit()
|
45
74
|
end
|
46
75
|
|
@@ -49,6 +78,7 @@ module Scoutui::Commands
|
|
49
78
|
end
|
50
79
|
|
51
80
|
def processCommand(_action, e=nil)
|
81
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " [enter]:processCommand(#{_action})"
|
52
82
|
Scoutui::Commands::processCommand(_action, e, getDriver())
|
53
83
|
end
|
54
84
|
|
@@ -121,6 +151,8 @@ module Scoutui::Commands
|
|
121
151
|
tmpCaps = caps
|
122
152
|
|
123
153
|
if caps.has_key?(:browser) && caps[:browser].match(/edge/i)
|
154
|
+
|
155
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Capabilities[browser] : EDGE"
|
124
156
|
caps = Selenium::WebDriver::Remote::Capabilities.edge()
|
125
157
|
elsif caps.has_key?(:browser) && caps[:browser].match(/chrome/i)
|
126
158
|
caps = Selenium::WebDriver::Remote::Capabilities.chrome()
|
@@ -130,10 +162,15 @@ module Scoutui::Commands
|
|
130
162
|
caps = Selenium::WebDriver::Remote::Capabilities.internet_explorer()
|
131
163
|
end
|
132
164
|
|
165
|
+
|
133
166
|
tmpCaps.each_pair do |k, v|
|
167
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " caps[#{k.to_s}] = #{v}"
|
134
168
|
caps[k.to_s]=v
|
135
169
|
end
|
136
170
|
|
171
|
+
|
172
|
+
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Remote Caps => #{caps}"
|
173
|
+
|
137
174
|
elsif caps.has_key?(:deviceName) && caps[:deviceName].match(/(iphone|ipad)/i) && !caps[:deviceName].match(/simulator/i)
|
138
175
|
caps = Selenium::WebDriver::Remote::Capabilities.iphone()
|
139
176
|
caps['platform'] = 'OS X 10.10'
|
@@ -183,12 +220,12 @@ module Scoutui::Commands
|
|
183
220
|
@drv=Selenium::WebDriver.for :remote, :url => sauce_endpoint, :http_client => client, :desired_capabilities => caps # setup(caps)
|
184
221
|
end
|
185
222
|
|
186
|
-
rescue =>
|
223
|
+
rescue => ex
|
187
224
|
Scoutui::Logger::LogMgr.instance.debug "Error during processing: #{$!}"
|
188
225
|
Scoutui::Logger::LogMgr.instance.debug "Backtrace:\n\t#{ex.backtrace.join("\n\t")}"
|
189
226
|
end
|
190
227
|
|
191
|
-
|
228
|
+
|
192
229
|
else
|
193
230
|
Scoutui::Logger::LogMgr.instance.debug __FILE__ + (__LINE__).to_s + " Create WebDriver: #{browserType.to_s}"
|
194
231
|
@drv=Selenium::WebDriver.for browserType.to_sym, :profile => @profile
|