taf 0.3.7 → 0.3.8
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/bin/taf +23 -2
- data/lib/taf.rb +48 -0
- data/lib/taf/browser.rb +103 -0
- data/lib/taf/cmd_line.rb +74 -0
- data/lib/taf/create_directories.rb +53 -0
- data/lib/taf/json_parser.rb +48 -0
- data/lib/taf/junit_report.rb +73 -0
- data/lib/taf/my_log.rb +21 -0
- data/lib/taf/parser.rb +37 -0
- data/lib/taf/report.rb +110 -0
- data/lib/taf/report_summary.rb +56 -0
- data/lib/taf/screenshot.rb +30 -0
- data/lib/taf/test_engine.rb +82 -0
- data/lib/taf/test_steps.rb +38 -0
- data/lib/taf/test_steps/handlers/base.rb +90 -0
- data/lib/taf/test_steps/handlers/base/browser_back.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_forward.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_open.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_quit.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_refresh.rb +21 -0
- data/lib/taf/test_steps/handlers/base/capture_alert.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_box.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_boxdata.rb +35 -0
- data/lib/taf/test_steps/handlers/base/check_browser_title.rb +21 -0
- data/lib/taf/test_steps/handlers/base/check_logs.rb +25 -0
- data/lib/taf/test_steps/handlers/base/check_screendata.rb +23 -0
- data/lib/taf/test_steps/handlers/base/check_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/click_button.rb +33 -0
- data/lib/taf/test_steps/handlers/base/execute_system_command.rb +23 -0
- data/lib/taf/test_steps/handlers/base/handle_browser_window.rb +23 -0
- data/lib/taf/test_steps/handlers/base/ipause.rb +21 -0
- data/lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb +23 -0
- data/lib/taf/test_steps/handlers/base/login.rb +59 -0
- data/lib/taf/test_steps/handlers/base/open_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/ping_test.rb +27 -0
- data/lib/taf/test_steps/handlers/base/radio_button.rb +24 -0
- data/lib/taf/test_steps/handlers/base/select_dropdown.rb +24 -0
- data/lib/taf/test_steps/handlers/base/send_special_keys.rb +22 -0
- data/lib/taf/test_steps/handlers/base/write_box_data.rb +35 -0
- data/lib/taf/version.rb +5 -0
- metadata +41 -43
- data/lib/functions/handlers.rb +0 -6
- data/lib/functions/handlers/base_handler.rb +0 -91
- data/lib/functions/handlers/browser_back.rb +0 -21
- data/lib/functions/handlers/browser_forward.rb +0 -21
- data/lib/functions/handlers/browser_quit.rb +0 -21
- data/lib/functions/handlers/browser_refresh.rb +0 -21
- data/lib/functions/handlers/capture_alert.rb +0 -22
- data/lib/functions/handlers/check_box.rb +0 -21
- data/lib/functions/handlers/check_boxdata.rb +0 -35
- data/lib/functions/handlers/check_browser_title.rb +0 -21
- data/lib/functions/handlers/check_logs.rb +0 -23
- data/lib/functions/handlers/check_screendata.rb +0 -21
- data/lib/functions/handlers/check_url.rb +0 -22
- data/lib/functions/handlers/click_button.rb +0 -33
- data/lib/functions/handlers/execute_system_command.rb +0 -23
- data/lib/functions/handlers/handle_browser_window.rb +0 -23
- data/lib/functions/handlers/ipause.rb +0 -21
- data/lib/functions/handlers/list_all_dropdowns_values.rb +0 -23
- data/lib/functions/handlers/login.rb +0 -59
- data/lib/functions/handlers/open_url.rb +0 -35
- data/lib/functions/handlers/ping_test.rb +0 -27
- data/lib/functions/handlers/radio_button.rb +0 -22
- data/lib/functions/handlers/select_dropdown.rb +0 -24
- data/lib/functions/handlers/send_special_keys.rb +0 -22
- data/lib/functions/handlers/write_box_data.rb +0 -35
- data/lib/main.rb +0 -31
- data/lib/parser/json_parser.rb +0 -50
- data/lib/parser/parser.rb +0 -49
- data/lib/report/junit_report.rb +0 -74
- data/lib/report/report.rb +0 -116
- data/lib/report/report_summary.rb +0 -53
- data/lib/taf_config.rb +0 -46
- data/lib/utils/browser.rb +0 -98
- data/lib/utils/cmd_line.rb +0 -71
- data/lib/utils/create_directories.rb +0 -50
- data/lib/utils/exceptions.rb +0 -7
- data/lib/utils/logger.rb +0 -21
- data/lib/utils/screenshot.rb +0 -30
- data/lib/utils/test_engine.rb +0 -77
- data/lib/utils/test_steps.rb +0 -38
- data/lib/version.rb +0 -21
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Back function.
|
7
|
+
class BrowserBack < Base
|
8
|
+
register :browser_back
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.back
|
12
|
+
Taf::MyLog.log.info('Browser navigated back')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser failed to navigate back')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Forward function.
|
7
|
+
class BrowserForward < Base
|
8
|
+
register :browser_forward
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.forward
|
12
|
+
Taf::MyLog.log.info('Browser navigated forward')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser failed to navigate forward')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Open function.
|
7
|
+
class BrowserOpen < Base
|
8
|
+
register :browser_open
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.open_browser
|
12
|
+
Taf::MyLog.log.info('Browser has opened successfully')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser has failed to open')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Quit function.
|
7
|
+
class BrowserQuit < Base
|
8
|
+
register :browser_quit
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.quit
|
12
|
+
Taf::MyLog.log.info('Browser has closed successfully')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser has failed to close')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Refresh function.
|
7
|
+
class BrowserRefresh < Base
|
8
|
+
register :browser_refresh
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.refresh
|
12
|
+
Taf::MyLog.log.info('The Browser has been refreshed')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('The Browser failed to refresh')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Capture Alert function.
|
7
|
+
class CaptureAlert < Base
|
8
|
+
register :capture_alert
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.div(class: 'alert').exist?
|
12
|
+
alertmsg = Taf::Browser.b.div(class: 'alert').text
|
13
|
+
Taf::MyLog.log.info("Alert shown: #{alertmsg}")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn('No Alert Found')
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Box function.
|
7
|
+
class CheckBox < Base
|
8
|
+
register :check_box
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.checkbox("#{@locate}": @value).wait_until(&:exists?)
|
12
|
+
.click
|
13
|
+
Taf::MyLog.log.info("Check box: #{@value} has been selected")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn("Check box: #{@value} does not exist")
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Box Data function.
|
7
|
+
class CheckBoxdata < Base
|
8
|
+
register :check_box_data
|
9
|
+
|
10
|
+
def perform
|
11
|
+
elms = %i[textarea text_field iframe]
|
12
|
+
|
13
|
+
found_box = elms.map do |elm|
|
14
|
+
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
+
end.compact
|
16
|
+
|
17
|
+
raise 'Multiple matches' if found_box.select { |i| i }.empty?
|
18
|
+
|
19
|
+
index = found_box.index(true)
|
20
|
+
return unless index
|
21
|
+
|
22
|
+
ele = Taf::Browser.b.send(elms[index], "#{@locate}": @value)
|
23
|
+
|
24
|
+
ele.wait_until(&:exists?)
|
25
|
+
(ele.value == @value2)
|
26
|
+
Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{value2}")
|
27
|
+
true
|
28
|
+
rescue StandardError
|
29
|
+
Taf::MyLog.log.warn("Textbox: #{@value} does not exist")
|
30
|
+
false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Browser Title function.
|
7
|
+
class CheckTitle < Base
|
8
|
+
register :check_browser_title
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.wait_until { Taf::Browser.b.title.eql? @value }
|
12
|
+
Taf::MyLog.log.info("Browser title: #{@value}")
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn("Title not found: #{@value}")
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check a log file function.
|
7
|
+
class CheckLogs < Base
|
8
|
+
register :check_log_file
|
9
|
+
|
10
|
+
def perform
|
11
|
+
result = system 'egrep -i ' + @value + ' ' + @value2 + ' > ' + output
|
12
|
+
if result == true
|
13
|
+
Taf::MyLog.log.info \
|
14
|
+
"Data has matched: #{@value} in LogFile: #{@value2}"
|
15
|
+
return true
|
16
|
+
else
|
17
|
+
Taf::MyLog.log.warn \
|
18
|
+
"Problem finding: #{@value} in LogFile: #{@value2}"
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Screendata text function.
|
7
|
+
class CheckScreendata < Base
|
8
|
+
register :check_screen_data
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.wait_until do
|
12
|
+
Taf::Browser.b.element.text.include? @value
|
13
|
+
end
|
14
|
+
Taf::MyLog.log.info("Text found: #{@value}")
|
15
|
+
true
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("Text not found: #{@value}")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check URL function.
|
7
|
+
class CheckUrl < Base
|
8
|
+
register :check_url
|
9
|
+
|
10
|
+
def perform
|
11
|
+
if Taf::Browser.b.url == @value
|
12
|
+
Taf::MyLog.log.info("URL: #{@value} is correct")
|
13
|
+
true
|
14
|
+
else
|
15
|
+
Taf::MyLog.log.warn("URL: #{@value} is incorrect")
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Click Button function.
|
7
|
+
class ClickButton < Base
|
8
|
+
register :click_button
|
9
|
+
|
10
|
+
def perform
|
11
|
+
elms = %i[button span a div link image h1 h2 h3 h4]
|
12
|
+
|
13
|
+
found_button = elms.map do |elm|
|
14
|
+
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
+
end.compact
|
16
|
+
|
17
|
+
raise 'Multiple matches' if found_button.select { |i| i }.empty?
|
18
|
+
|
19
|
+
index = found_button.index(true)
|
20
|
+
return unless index
|
21
|
+
|
22
|
+
Taf::Browser.b.send(elms[index], "#{@locate}": @value)
|
23
|
+
.wait_until(&:exists?).click
|
24
|
+
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
25
|
+
true
|
26
|
+
rescue StandardError
|
27
|
+
Taf::MyLog.log.warn("Button: #{@value} does not exist")
|
28
|
+
false
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Execute System Command function.
|
7
|
+
class ExecuteSystemCommand < Base
|
8
|
+
register :execute_system_command
|
9
|
+
|
10
|
+
def perform
|
11
|
+
b_result = system @value
|
12
|
+
if b_result == true
|
13
|
+
Taf::MyLog.log.info("Cmd has been executed sucessfully #{@value}")
|
14
|
+
return true
|
15
|
+
else
|
16
|
+
Taf::MyLog.log.warn("Theres a problem executing command #{@value}")
|
17
|
+
return false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Handle Browser Window function.
|
7
|
+
class HandleBrowserWindow < Base
|
8
|
+
register :handle_browser_window
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.window(title: @value.to_s).use
|
12
|
+
sleep 3
|
13
|
+
Taf::Browser.b.title.eql?(@value.to_s)
|
14
|
+
Taf::MyLog.log.info("Window title: #{@value} is correct")
|
15
|
+
true
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("Window not found: #{@value}")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Pause the test function.
|
7
|
+
class Ipause < Base
|
8
|
+
register :ipause
|
9
|
+
|
10
|
+
def perform
|
11
|
+
sleep(@value.to_i)
|
12
|
+
Taf::MyLog.log.info('Wait completed for seconds: ' + @value.to_s)
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Wait failed for seconds: ' + @value.to_s)
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# List all Dropdown Values function.
|
7
|
+
class ListAllDropdownValues < Base
|
8
|
+
register :list_all_dropdown_values
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.element("#{@locate}": @value).wait_until(&:exists?)
|
12
|
+
Taf::Browser.b.select_list("#{@locate}": @value).options.each do |i|
|
13
|
+
Taf::MyLog.log.info("List of dropdown for #{@value} are: #{i.text}")
|
14
|
+
return true
|
15
|
+
end
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("List dropdown: #{@value} does not exist")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Logins function.
|
7
|
+
class Login < Base
|
8
|
+
register :login
|
9
|
+
|
10
|
+
def perform
|
11
|
+
user = @value2
|
12
|
+
user = ENV[user.to_s] if ENV[user.to_s]
|
13
|
+
|
14
|
+
login_user(user)
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.error "unable to find login: #{@value}"
|
17
|
+
raise Taf::LoginTypeFailed
|
18
|
+
end
|
19
|
+
|
20
|
+
def login_user(user)
|
21
|
+
case @value.downcase
|
22
|
+
when 'portal_login'
|
23
|
+
portal_login(user)
|
24
|
+
when 'sso_login'
|
25
|
+
sso_login(user)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def portal_login(user)
|
32
|
+
url = ENV['PORTAL_URL']
|
33
|
+
pass = ENV['PORTAL_USER_PASS']
|
34
|
+
b_title = 'Log in'
|
35
|
+
b_title_sucess = 'Home'
|
36
|
+
user_elm = 'user_email'
|
37
|
+
pass_elm = 'user_password'
|
38
|
+
|
39
|
+
Taf::Browser.b.goto(url)
|
40
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
41
|
+
mem_word_check(user, b_title_sucess)
|
42
|
+
end
|
43
|
+
|
44
|
+
def sso_login(user)
|
45
|
+
pass = ENV['SSO_USER_PASS']
|
46
|
+
# b_title = 'Log in to rh-sso'
|
47
|
+
# b_title_sucess = 'RHS-SSO Admin Console'
|
48
|
+
b_title = ''
|
49
|
+
b_title_sucess = ''
|
50
|
+
user_elm = 'username'
|
51
|
+
pass_elm = 'password'
|
52
|
+
|
53
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
54
|
+
login_check(b_title_sucess, user)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|