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