taf 0.4.8 → 0.5.0
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/test_steps/handlers/base.rb +9 -12
- data/lib/taf/test_steps/handlers/base/click_button.rb +12 -16
- data/lib/taf/test_steps/handlers/base/login.rb +31 -36
- data/lib/taf/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 31c202a157c5f26907dacb3a08df58921f03cea0a5eb9bcc75523cdd7b44c148
|
4
|
+
data.tar.gz: 22aefc58b15a5b6ea4c0396c82528ff335d9cd1ca05e7dfae6978c44b7d902a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db6b224929133960d7adebe1a6069773f97bb170a0a7a620d9320a04d74e4736be1dfe4c53f56ffb67e94d343e1c839aad043ba9acc790a3c14915826259f893
|
7
|
+
data.tar.gz: 95ee60dfb7b653b4110d8c8652e84c8eb4bce57b2cb4a7432901fe40308dc6d12e61561532ae1c52eb7eb5e24adc39ea94604cf6701bd1e1742c4c99e180b7f3
|
@@ -25,28 +25,25 @@ module Taf
|
|
25
25
|
Taf::Browser.b.text_field(id: user_elm).wait_until(&:exists?)
|
26
26
|
.set user
|
27
27
|
Taf::Browser.b.text_field(id: pass_elm).set pass
|
28
|
-
button
|
29
|
-
Taf::Browser.b.button(value: button).wait_until(&:exists?).click
|
28
|
+
Taf::Browser.b.button(value: 'Sign in').wait_until(&:exists?).click
|
30
29
|
sleep 1
|
31
30
|
else
|
32
31
|
Taf::MyLog.log.warn("User: #{user} has failed to log in.")
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
36
|
-
def
|
37
|
-
if Taf::Browser.b.
|
38
|
-
Taf::MyLog.log.info("
|
35
|
+
def url_check(url)
|
36
|
+
if Taf::Browser.b.url == url
|
37
|
+
Taf::MyLog.log.info("URL: #{url} is correct.")
|
39
38
|
true
|
40
39
|
else
|
41
|
-
Taf::MyLog.log.warn("
|
40
|
+
Taf::MyLog.log.warn("URL: #{url} is incorrect.")
|
42
41
|
false
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
def
|
47
|
-
if Taf::Browser.b.title.eql?(
|
48
|
-
portal_mem_word(user, b_title_sucess)
|
49
|
-
elsif Taf::Browser.b.title.eql?(b_title_sucess)
|
45
|
+
def login_check(b_title_success, user)
|
46
|
+
if Taf::Browser.b.title.eql?(b_title_success)
|
50
47
|
Taf::MyLog.log.info("User: #{user} has logged in successful.")
|
51
48
|
true
|
52
49
|
else
|
@@ -55,7 +52,7 @@ module Taf
|
|
55
52
|
end
|
56
53
|
end
|
57
54
|
|
58
|
-
def portal_mem_word(user,
|
55
|
+
def portal_mem_word(user, b_title_success)
|
59
56
|
password = ENV['PORTAL_MEM']
|
60
57
|
nums = (1..256).to_a
|
61
58
|
found_mem_nums = nums.each_with_object([]) do |num_val, mem_word|
|
@@ -74,7 +71,7 @@ module Taf
|
|
74
71
|
end
|
75
72
|
|
76
73
|
Taf::Browser.b.button(value: 'Sign in').wait_until(&:exists?).click
|
77
|
-
if Taf::Browser.b.title.eql?(
|
74
|
+
if Taf::Browser.b.title.eql?(b_title_success)
|
78
75
|
Taf::MyLog.log.info("User: #{user} has logged in successful.")
|
79
76
|
return true
|
80
77
|
else
|
@@ -7,25 +7,21 @@ module Taf
|
|
7
7
|
class ClickButton < Base
|
8
8
|
register :click_button
|
9
9
|
|
10
|
-
def
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
Taf::Browser.b.send(
|
15
|
-
end
|
10
|
+
def perform
|
11
|
+
# Optimisation: if we can immediately find the target in the DOM
|
12
|
+
# under a specific tag we should use it.
|
13
|
+
@tag = %i[button span a div link image h1 h2 h3 h4].find do |e|
|
14
|
+
Taf::Browser.b.send(e, "#{@locate}": @value).exists?
|
15
|
+
end
|
16
16
|
|
17
|
-
|
17
|
+
# Otherwise, fallback to locating across the entire DOM.
|
18
|
+
# This can be necessary for when content rendering is deferred
|
19
|
+
# (e.g., a loader in a SPA) or if the user wants to use CSS or XPath.
|
20
|
+
@tag ||= :element
|
18
21
|
|
19
|
-
|
20
|
-
|
22
|
+
Taf::Browser.b.send(@tag, "#{@locate}": @value).wait_until(&:exists?)
|
23
|
+
.click
|
21
24
|
|
22
|
-
index
|
23
|
-
end
|
24
|
-
|
25
|
-
def perform
|
26
|
-
index = check
|
27
|
-
Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
|
28
|
-
.wait_until(&:exists?).click
|
29
25
|
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
30
26
|
true
|
31
27
|
rescue StandardError
|
@@ -16,9 +16,7 @@ module Taf
|
|
16
16
|
|
17
17
|
def login_user(user)
|
18
18
|
case @value.downcase
|
19
|
-
when 'admin_portal_login' then admin_portal_login(user)
|
20
19
|
when 'portal_login' then portal_login(user)
|
21
|
-
when 'sint_login' then sint_login(user)
|
22
20
|
when 'sso_login' then sso_login(user)
|
23
21
|
else
|
24
22
|
Taf::MyLog.log.error "unable to find login: #{@value}"
|
@@ -28,56 +26,53 @@ module Taf
|
|
28
26
|
|
29
27
|
private
|
30
28
|
|
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
|
-
|
44
29
|
def portal_login(user)
|
45
30
|
url = ENV['PORTAL_URL']
|
46
31
|
pass = ENV['PORTAL_USER_PASS']
|
47
|
-
b_title = 'Log in
|
48
|
-
|
32
|
+
b_title = 'Log in'
|
33
|
+
b_title_success = 'Home'
|
34
|
+
memorable_word_title = 'Memorable word'
|
49
35
|
user_elm = 'user_email'
|
50
36
|
pass_elm = 'user_password'
|
37
|
+
max_retry = 2
|
51
38
|
|
52
|
-
|
53
|
-
|
54
|
-
|
39
|
+
max_retry.times do
|
40
|
+
Taf::Browser.b.goto(url)
|
41
|
+
url_check(url)
|
42
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
43
|
+
|
44
|
+
begin
|
45
|
+
Taf::Browser.b.wait_until(timeout: 30) do |b|
|
46
|
+
b.title == b_title_success || b.title == memorable_word_title
|
47
|
+
end
|
48
|
+
rescue Watir::Wait::TimeoutError
|
49
|
+
Taf::MyLog.log.warn('Retrying login process...')
|
50
|
+
next
|
51
|
+
end
|
52
|
+
|
53
|
+
success = true
|
54
|
+
|
55
|
+
if Taf::Browser.b.title.eql?(memorable_word_title)
|
56
|
+
success = portal_mem_word(user, b_title_success)
|
57
|
+
end
|
58
|
+
|
59
|
+
return success
|
60
|
+
end
|
61
|
+
|
62
|
+
false
|
55
63
|
end
|
56
64
|
|
57
65
|
def sso_login(user)
|
58
66
|
pass = ENV['SSO_USER_PASS']
|
59
|
-
# b_title = 'Log in to rh-sso'
|
60
|
-
# b_title_sucess = 'RHS-SSO Admin Console'
|
61
67
|
b_title = ''
|
62
|
-
|
68
|
+
b_title_success = ''
|
63
69
|
user_elm = 'username'
|
64
70
|
pass_elm = 'password'
|
65
71
|
|
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
|
-
|
78
72
|
Taf::Browser.b.goto(url)
|
73
|
+
url_check(url)
|
79
74
|
login_process(b_title, user_elm, pass_elm, user, pass)
|
80
|
-
login_check(
|
75
|
+
login_check(b_title_success, user)
|
81
76
|
end
|
82
77
|
end
|
83
78
|
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
|
+
version: 0.5.0
|
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-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|