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