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,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Open URL function.
7
+ class OpenUrl < Base
8
+ register :open_url
9
+
10
+ def perform
11
+ url = if ENV[@value]
12
+ ENV[@value.to_s]
13
+ else
14
+ @value
15
+ end
16
+ Taf::Browser.b.goto(url)
17
+ true
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Png Test function.
7
+ class PingTest < Base
8
+ register :ping_test
9
+
10
+ # TODO: retry every 'x' until timeout reached.
11
+ def perform
12
+ check = Net::Ping::HTTP.new(@value)
13
+
14
+ check.ping?
15
+ sleep 5
16
+ if check.ping?
17
+ Taf::MyLog.log.info("pinged: #{@value}")
18
+ return true
19
+ else
20
+ Taf::MyLog.log.warn("Failed to ping: #{@value}")
21
+ return false
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Radio Button function.
7
+ class RadioButton < Base
8
+ register :radio_button
9
+
10
+ def perform
11
+ Taf::Browser.b.radio("#{@locate}": @value).wait_until(&:exists?)
12
+ Taf::Browser.b
13
+ .radio("#{@locate}": @value, "#{@locate2}": @value2.to_s)
14
+ .set
15
+ Taf::MyLog.log.info("Radio button: #{@value2} has been selected")
16
+ true
17
+ rescue StandardError
18
+ Taf::MyLog.log.warn("Radio button: #{@value2} does not exist")
19
+ false
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Select Dropdown function.
7
+ class SelectDropdown < Base
8
+ register :select_dropdown
9
+
10
+ def perform
11
+ ele = Taf::Browser.b.select_list("#{@locate}": @value)
12
+
13
+ ele.wait_until(&:exists?)
14
+ ele.option("#{@locate2}": @value2.to_s).select
15
+ Taf::MyLog.log.info("Dropdown item: #{@value2} has been selected")
16
+ true
17
+ rescue StandardError
18
+ Taf::MyLog.log.warn("Dropdown item: #{@value2} has NOT been selected")
19
+ false
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Send a Special Key function.
7
+ class SendSpecialKeys < Base
8
+ register :send_special_keys
9
+
10
+ def perform
11
+ Taf::Browser.b.send_keys :"#{@value}"
12
+ sleep 1
13
+ Taf::MyLog.log.info("Browser Sent key: :#{@value} successfully")
14
+ true
15
+ rescue StandardError
16
+ Taf::MyLog.log.warn("Browser Failed to Send key: :#{@value}")
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
+ # Write box data function.
7
+ class WriteBoxdata < Base
8
+ register :write_box_data
9
+
10
+ def perform
11
+ txt = @value2
12
+ txt = ENV[txt.to_s] if ENV[txt.to_s]
13
+ elms = %i[textarea text_field iframe]
14
+
15
+ found_box = elms.map do |elm|
16
+ Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
17
+ end.compact
18
+
19
+ raise 'Multiple matches' if found_box.select { |i| i }.empty?
20
+
21
+ index = found_box.index(true)
22
+ return unless index
23
+
24
+ Taf::Browser.b.send(elms[index], "#{@locate}": @value)
25
+ .wait_until(&:exists?).send_keys txt
26
+ Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{txt}")
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,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ VERSION = '0.3.8'
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Perrett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-28 00:00:00.000000000 Z
11
+ date: 2019-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -173,47 +173,45 @@ extensions: []
173
173
  extra_rdoc_files: []
174
174
  files:
175
175
  - bin/taf
176
- - lib/functions/handlers.rb
177
- - lib/functions/handlers/base_handler.rb
178
- - lib/functions/handlers/browser_back.rb
179
- - lib/functions/handlers/browser_forward.rb
180
- - lib/functions/handlers/browser_quit.rb
181
- - lib/functions/handlers/browser_refresh.rb
182
- - lib/functions/handlers/capture_alert.rb
183
- - lib/functions/handlers/check_box.rb
184
- - lib/functions/handlers/check_boxdata.rb
185
- - lib/functions/handlers/check_browser_title.rb
186
- - lib/functions/handlers/check_logs.rb
187
- - lib/functions/handlers/check_screendata.rb
188
- - lib/functions/handlers/check_url.rb
189
- - lib/functions/handlers/click_button.rb
190
- - lib/functions/handlers/execute_system_command.rb
191
- - lib/functions/handlers/handle_browser_window.rb
192
- - lib/functions/handlers/ipause.rb
193
- - lib/functions/handlers/list_all_dropdowns_values.rb
194
- - lib/functions/handlers/login.rb
195
- - lib/functions/handlers/open_url.rb
196
- - lib/functions/handlers/ping_test.rb
197
- - lib/functions/handlers/radio_button.rb
198
- - lib/functions/handlers/select_dropdown.rb
199
- - lib/functions/handlers/send_special_keys.rb
200
- - lib/functions/handlers/write_box_data.rb
201
- - lib/main.rb
202
- - lib/parser/json_parser.rb
203
- - lib/parser/parser.rb
204
- - lib/report/junit_report.rb
205
- - lib/report/report.rb
206
- - lib/report/report_summary.rb
207
- - lib/taf_config.rb
208
- - lib/utils/browser.rb
209
- - lib/utils/cmd_line.rb
210
- - lib/utils/create_directories.rb
211
- - lib/utils/exceptions.rb
212
- - lib/utils/logger.rb
213
- - lib/utils/screenshot.rb
214
- - lib/utils/test_engine.rb
215
- - lib/utils/test_steps.rb
216
- - lib/version.rb
176
+ - lib/taf.rb
177
+ - lib/taf/browser.rb
178
+ - lib/taf/cmd_line.rb
179
+ - lib/taf/create_directories.rb
180
+ - lib/taf/json_parser.rb
181
+ - lib/taf/junit_report.rb
182
+ - lib/taf/my_log.rb
183
+ - lib/taf/parser.rb
184
+ - lib/taf/report.rb
185
+ - lib/taf/report_summary.rb
186
+ - lib/taf/screenshot.rb
187
+ - lib/taf/test_engine.rb
188
+ - lib/taf/test_steps.rb
189
+ - lib/taf/test_steps/handlers/base.rb
190
+ - lib/taf/test_steps/handlers/base/browser_back.rb
191
+ - lib/taf/test_steps/handlers/base/browser_forward.rb
192
+ - lib/taf/test_steps/handlers/base/browser_open.rb
193
+ - lib/taf/test_steps/handlers/base/browser_quit.rb
194
+ - lib/taf/test_steps/handlers/base/browser_refresh.rb
195
+ - lib/taf/test_steps/handlers/base/capture_alert.rb
196
+ - lib/taf/test_steps/handlers/base/check_box.rb
197
+ - lib/taf/test_steps/handlers/base/check_boxdata.rb
198
+ - lib/taf/test_steps/handlers/base/check_browser_title.rb
199
+ - lib/taf/test_steps/handlers/base/check_logs.rb
200
+ - lib/taf/test_steps/handlers/base/check_screendata.rb
201
+ - lib/taf/test_steps/handlers/base/check_url.rb
202
+ - lib/taf/test_steps/handlers/base/click_button.rb
203
+ - lib/taf/test_steps/handlers/base/execute_system_command.rb
204
+ - lib/taf/test_steps/handlers/base/handle_browser_window.rb
205
+ - lib/taf/test_steps/handlers/base/ipause.rb
206
+ - lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb
207
+ - lib/taf/test_steps/handlers/base/login.rb
208
+ - lib/taf/test_steps/handlers/base/open_url.rb
209
+ - lib/taf/test_steps/handlers/base/ping_test.rb
210
+ - lib/taf/test_steps/handlers/base/radio_button.rb
211
+ - lib/taf/test_steps/handlers/base/select_dropdown.rb
212
+ - lib/taf/test_steps/handlers/base/send_special_keys.rb
213
+ - lib/taf/test_steps/handlers/base/write_box_data.rb
214
+ - lib/taf/version.rb
217
215
  homepage: https://github.com/Aperrett/TAF
218
216
  licenses:
219
217
  - MIT
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../taf_config.rb'
4
- Dir[File.expand_path('handlers/**/*.rb', __dir__)].each do |f|
5
- require f
6
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Base Hanfer file to contain all shared login functions
4
- module TestSteps
5
- require_relative '../../taf_config.rb'
6
- module Handlers
7
- # All Login functions function.
8
- class Base
9
- def initialize(step_attributes)
10
- @value = step_attributes[:testvalue]
11
- @value2 = step_attributes[:testvalue2]
12
- @locate = step_attributes[:locate]
13
- @locate2 = step_attributes[:locate2]
14
- end
15
-
16
- def self.register(name)
17
- TestSteps.handlers[name.to_s] = self
18
- end
19
-
20
- def self.perform(*args)
21
- new(*args).perform
22
- end
23
-
24
- def open_url_process(url)
25
- Browser.open_browser
26
- Browser.b.goto(url)
27
- end
28
-
29
- def login_process(b_title, user_elm, pass_elm, user, pass)
30
- if Browser.b.title.eql?(b_title)
31
- Browser.b.text_field(id: user_elm).wait_until(&:exists?).set user
32
- Browser.b.text_field(id: pass_elm).wait_until(&:exists?).set pass
33
- button = 'Sign in' || 'Log in'
34
- Browser.b.button(value: button).wait_until(&:exists?).click
35
- sleep 1
36
- else
37
- MyLog.log.warn("User: #{user} has failed to log in.")
38
- end
39
- end
40
-
41
- def login_check(b_title_sucess, user)
42
- if Browser.b.title.eql?(b_title_sucess)
43
- MyLog.log.info("User: #{user} has logged in successful.")
44
- true
45
- else
46
- MyLog.log.warn("User: #{user} has failed to log in.")
47
- false
48
- end
49
- end
50
-
51
- def mem_word_check(user, b_title_sucess)
52
- if Browser.b.title.eql?('Memorable word')
53
- portal_mem_word(user, b_title_sucess)
54
- elsif Browser.b.title.eql?(b_title_sucess)
55
- MyLog.log.info("User: #{user} has logged in successful.")
56
- true
57
- else
58
- MyLog.log.warn("User: #{user} has failed to log in.")
59
- false
60
- end
61
- end
62
-
63
- def portal_mem_word(user, b_title_sucess)
64
- password = ENV['PORTAL_MEM']
65
- nums = (1..256).to_a
66
- found_mem_nums = nums.each_with_object([]) do |num_val, mem_word|
67
- elm_id = "user_memorable_parts_#{num_val}"
68
- mem_word.push(num_val) if Browser.b.select(id: elm_id).exist?
69
- end.compact
70
-
71
- array_password = password.split('')
72
- array_password.map!(&:upcase)
73
-
74
- found_mem_nums.each do |mem_num|
75
- char = array_password[(mem_num - 1)]
76
- elm_id = "user_memorable_parts_#{mem_num}"
77
- Browser.b.select_list(id: elm_id).option(value: char.to_s).select
78
- end
79
-
80
- Browser.b.button(value: 'Sign in').wait_until(&:exists?).click
81
- if Browser.b.title.eql?(b_title_sucess)
82
- MyLog.log.info("User: #{user} has logged in successful.")
83
- return true
84
- else
85
- MyLog.log.warn("User: #{user} has failed to log in.")
86
- return false
87
- end
88
- end
89
- end
90
- end
91
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base_handler'
4
-
5
- module TestSteps
6
- module Handlers
7
- # Browser Back function.
8
- class BrowserBack < Base
9
- register :browser_back
10
-
11
- def perform
12
- Browser.b.back
13
- MyLog.log.info('Browser navigated back')
14
- true
15
- rescue StandardError
16
- MyLog.log.warn('Browser failed to navigate back')
17
- false
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base_handler'
4
-
5
- module TestSteps
6
- module Handlers
7
- # Browser Forward function.
8
- class BrowserForward < Base
9
- register :browser_forward
10
-
11
- def perform
12
- Browser.b.forward
13
- MyLog.log.info('Browser navigated forward')
14
- true
15
- rescue StandardError
16
- MyLog.log.warn('Browser failed to navigate forward')
17
- false
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base_handler'
4
-
5
- module TestSteps
6
- module Handlers
7
- # Browser Quit function.
8
- class BrowserQuit < Base
9
- register :browser_quit
10
-
11
- def perform
12
- Browser.b.quit
13
- MyLog.log.info('Browser has closed successfully')
14
- true
15
- rescue StandardError
16
- MyLog.log.warn('Browser has failed to close')
17
- false
18
- end
19
- end
20
- end
21
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'base_handler'
4
-
5
- module TestSteps
6
- module Handlers
7
- # Browser Refresh function.
8
- class BrowserRefresh < Base
9
- register :browser_refresh
10
-
11
- def perform
12
- Browser.b.refresh
13
- MyLog.log.info('The Browser has been refreshed')
14
- true
15
- rescue StandardError
16
- MyLog.log.warn('The Browser failed to refresh')
17
- false
18
- end
19
- end
20
- end
21
- end