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
@@ -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