taf 0.4.2 → 0.4.4
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.
- checksums.yaml +4 -4
- data/lib/taf.rb +8 -8
- data/lib/taf/cmd_line.rb +1 -1
- data/lib/taf/test_steps/handlers/base.rb +3 -1
- data/lib/taf/test_steps/handlers/base/check_boxdata.rb +12 -6
- data/lib/taf/test_steps/handlers/base/generate_token.rb +35 -0
- data/lib/taf/test_steps/handlers/base/login.rb +31 -6
- data/lib/taf/test_steps/handlers/base/ping_test.rb +11 -9
- data/lib/taf/version.rb +1 -1
- metadata +28 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0501ee31ac5742b113c9e33b359bc324dae96b87e7a2caf82495113d6e6a3222
|
4
|
+
data.tar.gz: f9021907fd6dec231fe807e0afd32e2879ce44a9789f0bfd89ab62febb326e05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 527cb4c93cce55d055bf5bb3d28026db1d5733ad8ba11c9bd91e2b091e1cedc3851169f889a2a6f4dc8ea6f932bbeb7f9fd23eb87e1f819c296ce76b106d8596
|
7
|
+
data.tar.gz: 16061dd456c4449a343261651e50b1c9de3509ef982acb965f9778a4f5f3d3bcd4a9abd9f1abeb757bcbdfb5921da21c92418939a898c60632a6ce1125c20d47
|
data/lib/taf.rb
CHANGED
@@ -8,18 +8,18 @@ module Taf
|
|
8
8
|
class BrowserFailedOpen < TafError; end
|
9
9
|
class LoginTypeFailed < TafError; end
|
10
10
|
|
11
|
-
require '
|
12
|
-
require 'watir'
|
13
|
-
require 'rubygems'
|
11
|
+
require 'colored'
|
14
12
|
require 'fileutils'
|
13
|
+
require 'faraday'
|
14
|
+
require 'json'
|
15
15
|
require 'logger'
|
16
|
-
require '
|
17
|
-
require 'time_difference'
|
18
|
-
require 'colored'
|
16
|
+
require 'open3'
|
19
17
|
require 'optparse'
|
20
|
-
require '
|
18
|
+
require 'rubygems'
|
21
19
|
require 'securerandom'
|
22
|
-
require '
|
20
|
+
require 'selenium-webdriver'
|
21
|
+
require 'time_difference'
|
22
|
+
require 'watir'
|
23
23
|
|
24
24
|
require 'taf/browser'
|
25
25
|
require 'taf/cmd_line'
|
data/lib/taf/cmd_line.rb
CHANGED
@@ -22,7 +22,7 @@ module Taf
|
|
22
22
|
|
23
23
|
def self.browser(browser)
|
24
24
|
@browser_type = browser
|
25
|
-
unless [
|
25
|
+
unless %w[chrome chrome-headless firefox firefox-headless]
|
26
26
|
.include?(@browser_type)
|
27
27
|
Taf::MyLog.log.warn 'A valid Browser has not been supplied as a' \
|
28
28
|
' command-line parameter as expected'
|
@@ -9,8 +9,10 @@ module Taf
|
|
9
9
|
def initialize(step_attributes)
|
10
10
|
@value = step_attributes[:testvalue]
|
11
11
|
@value2 = step_attributes[:testvalue2]
|
12
|
+
@value3 = step_attributes[:testvalue3]
|
12
13
|
@locate = step_attributes[:locate]
|
13
14
|
@locate2 = step_attributes[:locate2]
|
15
|
+
@locate3 = step_attributes[:locate3]
|
14
16
|
end
|
15
17
|
|
16
18
|
def self.register(name)
|
@@ -45,7 +47,7 @@ module Taf
|
|
45
47
|
end
|
46
48
|
|
47
49
|
def mem_word_check(user, b_title_sucess)
|
48
|
-
if Taf::Browser.b.title.eql?('Memorable word')
|
50
|
+
if Taf::Browser.b.title.eql?('Memorable word Portal')
|
49
51
|
portal_mem_word(user, b_title_sucess)
|
50
52
|
elsif Taf::Browser.b.title.eql?(b_title_sucess)
|
51
53
|
Taf::MyLog.log.info("User: #{user} has logged in successful.")
|
@@ -27,12 +27,18 @@ module Taf
|
|
27
27
|
ele = Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
|
28
28
|
|
29
29
|
ele.wait_until(&:exists?)
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
|
31
|
+
if ele.value == @value2
|
32
|
+
Taf::MyLog.log.info(
|
33
|
+
"Textbox: #{@value} has correct value: #{@value2}"
|
34
|
+
)
|
35
|
+
true
|
36
|
+
else
|
37
|
+
Taf::MyLog.log.warn(
|
38
|
+
"Textbox: got #{ele.value}, expected #{@value2}"
|
39
|
+
)
|
40
|
+
false
|
41
|
+
end
|
36
42
|
end
|
37
43
|
end
|
38
44
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Generate an RSA token for use with 2FA login.
|
7
|
+
class GenerateToken < Base
|
8
|
+
register :generate_token
|
9
|
+
|
10
|
+
def perform
|
11
|
+
raise 'TOKEN_SEED env var not set' unless ENV['TOKEN_SEED']
|
12
|
+
|
13
|
+
# Generate token using the seed from the environment.
|
14
|
+
_, stdout, stderr, wait_thr = Open3.popen3(
|
15
|
+
'stoken', '--file', ENV['TOKEN_SEED']
|
16
|
+
)
|
17
|
+
|
18
|
+
raise stderr.gets unless wait_thr.value.success?
|
19
|
+
|
20
|
+
Taf::Browser.b.send(:text_field, "#{@locate}": @value)
|
21
|
+
.wait_until(&:exists?).send_keys stdout.gets
|
22
|
+
|
23
|
+
stdout.close
|
24
|
+
stderr.close
|
25
|
+
|
26
|
+
true
|
27
|
+
rescue StandardError => e
|
28
|
+
Taf::MyLog.log.warn("Error generating token: #{e}")
|
29
|
+
|
30
|
+
false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -12,27 +12,40 @@ module Taf
|
|
12
12
|
user = ENV[user.to_s] if ENV[user.to_s]
|
13
13
|
|
14
14
|
login_user(user)
|
15
|
-
rescue StandardError
|
16
|
-
Taf::MyLog.log.error "unable to find login: #{@value}"
|
17
|
-
raise Taf::LoginTypeFailed
|
18
15
|
end
|
19
16
|
|
20
17
|
def login_user(user)
|
21
18
|
case @value.downcase
|
19
|
+
when 'admin_portal_login' then admin_portal_login(user)
|
22
20
|
when 'portal_login' then portal_login(user)
|
21
|
+
when 'sint_login' then sint_login(user)
|
23
22
|
when 'sso_login' then sso_login(user)
|
24
23
|
else
|
25
|
-
Taf::MyLog.log.error
|
24
|
+
Taf::MyLog.log.error "unable to find login: #{@value}"
|
25
|
+
raise Taf::LoginTypeFailed
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
30
30
|
|
31
|
+
def admin_portal_login(user)
|
32
|
+
url = ENV['ADMINL_URL']
|
33
|
+
pass = ENV['ADMIN_USER_PASS']
|
34
|
+
b_title = 'Log in Portal Admin'
|
35
|
+
b_title_sucess = 'Home Admin Portal'
|
36
|
+
user_elm = 'admin_username'
|
37
|
+
pass_elm = 'admin_password'
|
38
|
+
|
39
|
+
Taf::Browser.b.goto(url)
|
40
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
41
|
+
login_check(b_title_sucess, user)
|
42
|
+
end
|
43
|
+
|
31
44
|
def portal_login(user)
|
32
45
|
url = ENV['PORTAL_URL']
|
33
46
|
pass = ENV['PORTAL_USER_PASS']
|
34
|
-
b_title = 'Log in'
|
35
|
-
b_title_sucess = 'Home'
|
47
|
+
b_title = 'Log in Portal'
|
48
|
+
b_title_sucess = 'Home Portal'
|
36
49
|
user_elm = 'user_email'
|
37
50
|
pass_elm = 'user_password'
|
38
51
|
|
@@ -50,6 +63,18 @@ module Taf
|
|
50
63
|
user_elm = 'username'
|
51
64
|
pass_elm = 'password'
|
52
65
|
|
66
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
67
|
+
login_check(b_title_sucess, user)
|
68
|
+
end
|
69
|
+
|
70
|
+
def sint_login(user)
|
71
|
+
url = ENV['SINT_URL']
|
72
|
+
pass = ENV['SINT_USER_PASS']
|
73
|
+
b_title = 'SINT'
|
74
|
+
b_title_sucess = 'SINT'
|
75
|
+
user_elm = 'user_username'
|
76
|
+
pass_elm = 'user_password'
|
77
|
+
|
53
78
|
Taf::Browser.b.goto(url)
|
54
79
|
login_process(b_title, user_elm, pass_elm, user, pass)
|
55
80
|
login_check(b_title_sucess, user)
|
@@ -7,19 +7,21 @@ module Taf
|
|
7
7
|
class PingTest < Base
|
8
8
|
register :ping_test
|
9
9
|
|
10
|
-
# TODO: retry every 'x' until timeout reached.
|
11
10
|
def perform
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
tries ||= 20
|
12
|
+
Faraday.get(@value)
|
13
|
+
rescue Faraday::Error
|
14
|
+
if (tries -= 1).positive?
|
15
|
+
sleep 1
|
16
|
+
puts "Failed to ping: #{@value} - Retries left: #{tries}"
|
17
|
+
retry
|
19
18
|
else
|
20
19
|
Taf::MyLog.log.warn("Failed to ping: #{@value}")
|
21
|
-
|
20
|
+
false
|
22
21
|
end
|
22
|
+
else
|
23
|
+
Taf::MyLog.log.info("Pinged successfully: #{@value}")
|
24
|
+
true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
data/lib/taf/version.rb
CHANGED
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.4.
|
4
|
+
version: 0.4.4
|
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-
|
11
|
+
date: 2019-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.02'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.02'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.8'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.8'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler-audit
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,47 +67,47 @@ dependencies:
|
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '1.2'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: faraday
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '0.15'
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '0.15'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: json
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '2.2'
|
76
90
|
type: :runtime
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '2.2'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
98
|
+
name: logger
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '2
|
103
|
+
version: '1.2'
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '2
|
110
|
+
version: '1.2'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rubygems-update
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,6 +202,7 @@ files:
|
|
188
202
|
- lib/taf/test_steps/handlers/base/check_url.rb
|
189
203
|
- lib/taf/test_steps/handlers/base/click_button.rb
|
190
204
|
- lib/taf/test_steps/handlers/base/execute_system_command.rb
|
205
|
+
- lib/taf/test_steps/handlers/base/generate_token.rb
|
191
206
|
- lib/taf/test_steps/handlers/base/handle_browser_window.rb
|
192
207
|
- lib/taf/test_steps/handlers/base/ipause.rb
|
193
208
|
- lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb
|