taf 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
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