Ifd_Automation 1.9.0 → 1.9.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/console +14 -14
- data/bin/setup +8 -8
- data/lib/Ifd_Automation.rb +2 -2
- data/lib/Ifd_Automation/file_steps.rb +37 -9
- data/lib/Ifd_Automation/version.rb +3 -3
- data/lib/Ifd_Automation/webservice_steps.rb +63 -44
- data/project/Gemfile.lock +203 -203
- data/project/features/TestSuite/test.feature +4 -0
- data/project/features/step_definitions/lib_steps/test.rb +3 -0
- data/project/features/support/env.rb +15 -1
- data/project/features/support/project_config.yml +5 -5
- metadata +5 -5
- data/project/features/TestSuite/test +0 -0
- data/project/features/step_definitions/lib_steps/test +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39bbb21f99550c1f66c9a0b67e1bd3edd5494687
|
4
|
+
data.tar.gz: 6431a2284f02b2daab474919c3385ba73bf8acf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e87cce3aba51ee4e3eac685d1f13e1b3cd2e1011a3a933e70174d298d2399aa2f640565a3f7b25bb335a209233affcb9a53bbf70d71897c5b7e612e61be8be3
|
7
|
+
data.tar.gz: 347a14a0e29f95442f96ebfb5ce3d567d68d2354fa8da48630b0828ee21b901872bdad3b96157e7b8b1bf0f95434808564ce4f52995f9556ac7bd9a06186d073
|
data/bin/console
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "Ifd_Automation"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "Ifd_Automation"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
set -euo pipefail
|
3
|
-
IFS=$'\n\t'
|
4
|
-
set -vx
|
5
|
-
|
6
|
-
bundle install
|
7
|
-
|
8
|
-
# Do any other automated setup that you need to do here
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
set -euo pipefail
|
3
|
+
IFS=$'\n\t'
|
4
|
+
set -vx
|
5
|
+
|
6
|
+
bundle install
|
7
|
+
|
8
|
+
# Do any other automated setup that you need to do here
|
data/lib/Ifd_Automation.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require "Ifd_Automation/version"
|
2
|
-
Dir[File.dirname(__FILE__) + '/Ifd_Automation/*.rb'].each { |file| require file }
|
1
|
+
require "Ifd_Automation/version"
|
2
|
+
Dir[File.dirname(__FILE__) + '/Ifd_Automation/*.rb'].each { |file| require file }
|
@@ -8,17 +8,18 @@ Given /^I read data from file "(.*)"$/ do |file_name|
|
|
8
8
|
else
|
9
9
|
puts "*** WARNING: File #{file_name} does not exist."
|
10
10
|
end
|
11
|
+
p @file_data
|
11
12
|
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
14
|
+
Then /^I delete file "(.*)"$/ do |file_name|
|
15
|
+
file_path = ($test_data_dir + file_name)
|
16
|
+
if File.exists?(file_path)
|
17
|
+
File.delete(file_path)
|
18
|
+
puts "#{file_name} is deleted successfully"
|
19
|
+
else
|
20
|
+
puts "File #{file_name} does not exists"
|
21
|
+
end
|
22
|
+
end
|
22
23
|
|
23
24
|
When /^show me the params of "(.*)"$/ do |params_name|
|
24
25
|
if $PARAMS["#{params_name.downcase}"]
|
@@ -44,4 +45,31 @@ Then /^I run exe file from test data location "(.*)" on windows$/ do |filename|
|
|
44
45
|
else
|
45
46
|
raise "*** ERROR: File #{filename} is not existed"
|
46
47
|
end
|
48
|
+
end
|
49
|
+
|
50
|
+
When /^I store "(.*)" into file "(.*)"$/ do |data,filename|
|
51
|
+
data = check_match_url data
|
52
|
+
if File.exist?(filename)
|
53
|
+
raise "*** WARNING: File #{filename} is already existed. Please delete or change the file name"
|
54
|
+
else
|
55
|
+
File.open($test_data_dir+filename, 'w'){|file|
|
56
|
+
file.write(data)
|
57
|
+
file.close
|
58
|
+
}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
Given /^I read data file "(.*)" and store it as "(.*)"$/ do |file_name, place_holder|
|
63
|
+
@file_data = ""
|
64
|
+
@stored = {}
|
65
|
+
file_path = $test_data_dir + file_name.downcase
|
66
|
+
if File.exist?(file_path)
|
67
|
+
file = File.open(file_path)
|
68
|
+
@file_data += file.read
|
69
|
+
file.close
|
70
|
+
else
|
71
|
+
puts "*** WARNING: File #{file_name} does not exist."
|
72
|
+
end
|
73
|
+
@stored[%/#{place_holder}/] = @file_data
|
74
|
+
p @stored
|
47
75
|
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module IfdAutomation
|
2
|
-
VERSION = "1.9.
|
3
|
-
end
|
1
|
+
module IfdAutomation
|
2
|
+
VERSION = "1.9.2"
|
3
|
+
end
|
@@ -11,7 +11,8 @@ end
|
|
11
11
|
$cache = {}
|
12
12
|
|
13
13
|
Given /^I set headers:$/ do |headers|
|
14
|
-
headers
|
14
|
+
@headers = headers.hashes[0]
|
15
|
+
p @headers
|
15
16
|
end
|
16
17
|
|
17
18
|
Given /^I send and accept (XML|JSON)$/ do |type|
|
@@ -25,11 +26,28 @@ end
|
|
25
26
|
# Example
|
26
27
|
# When I get SOAP operations list from 'http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx?wsdl'
|
27
28
|
When /^I get SOAP operations list from '(.*?)'$/ do |url|
|
28
|
-
|
29
|
-
|
30
|
-
|
29
|
+
request_url = URI.encode check_match_url url
|
30
|
+
@client = Savon.client(ssl_verify_mode: :none, wsdl: "#{request_url}")
|
31
|
+
p @client.operations
|
32
|
+
end
|
33
|
+
|
34
|
+
When /^I get SOAP operations list$/ do
|
35
|
+
p @client.operations
|
31
36
|
end
|
32
37
|
|
38
|
+
When /^I create new SOAP request with:$/ do |params|
|
39
|
+
soap_params = {}
|
40
|
+
soap_params[:ssl_verify_mode] = :none
|
41
|
+
params.hashes[0].each { |k, v| soap_params[k.to_sym] = v }
|
42
|
+
@client = Savon.client(soap_params)
|
43
|
+
end
|
44
|
+
|
45
|
+
When /^I send "(.*?)" SOAP request with namespace "(.*)" and the following:$/ do |operation, namespace, json|
|
46
|
+
params = JSON.parse(json)
|
47
|
+
@response = @client.call(operation.downcase.to_sym, :message => params, soap_action: namespace)
|
48
|
+
end
|
49
|
+
|
50
|
+
|
33
51
|
# Example
|
34
52
|
# When I send "verify_email" SOAP request with the following:
|
35
53
|
# """
|
@@ -37,40 +55,32 @@ end
|
|
37
55
|
# "LicenseKey": "?" }
|
38
56
|
# """
|
39
57
|
When /^I send "(.*?)" SOAP request with the following:$/ do |operation, json|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
58
|
+
params = JSON.parse(json)
|
59
|
+
@response = @client.call(operation.downcase.to_sym, :message => params)
|
60
|
+
# p JSON.parse(@response.body)
|
61
|
+
# p response_text = response.body[:verify_email_response][:verify_email_result][:response_text]
|
44
62
|
end
|
45
63
|
|
46
64
|
# Example
|
47
65
|
# Then the SOAP response node should have "$..response_text" with text "Email Domain Not Found"
|
48
|
-
Then /^the SOAP response node should have "(.*?)" with text "(.*?)"$/ do |json_path,text|
|
49
|
-
json
|
66
|
+
Then /^the SOAP response node should have "(.*?)" with text "(.*?)"$/ do |json_path, text|
|
67
|
+
json = JSON.parse(@response.body.to_json)
|
50
68
|
results = JsonPath.new(json_path).on(json).to_a.map(&:to_s)
|
51
|
-
|
52
|
-
expect(results).to include(text)
|
53
|
-
else
|
54
|
-
assert results.include?(text)
|
55
|
-
end
|
69
|
+
IFD_Assertion.assert_string_equal(text, results)
|
56
70
|
end
|
57
71
|
|
58
72
|
When(/^I set JSON request body to '(.*?)'$/) do |body|
|
59
73
|
@body = JSON.parse body
|
60
74
|
end
|
61
75
|
|
62
|
-
When(/^I set form request body
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
@grabbed.each { |k, v| p_value = v if value == %/{#{k}}/ } unless @grabbed.nil?
|
67
|
-
p_value = File.new %-#{Dir.pwd}/#{p_value.sub 'file://', ''}- if %/#{p_value}/.start_with? "file://"
|
68
|
-
@body[%/#{key}/] = p_value
|
69
|
-
end
|
76
|
+
When(/^I set form request body from:$/) do |json|
|
77
|
+
params = check_match_url json
|
78
|
+
@body = JSON.parse(params)
|
79
|
+
p @body
|
70
80
|
end
|
71
81
|
|
72
|
-
When(/^I set request body from "(.*?).(yml|json)"$/) do |filename, extension|
|
73
|
-
path =
|
82
|
+
When(/^I set request body from file "(.*?).(yml|json)"$/) do |filename, extension|
|
83
|
+
path = $test_data_dir+filename+".#{extension}"
|
74
84
|
if File.file? path
|
75
85
|
case extension
|
76
86
|
when 'yml'
|
@@ -87,14 +97,23 @@ end
|
|
87
97
|
|
88
98
|
# Example
|
89
99
|
# When I grab "$[0]" as "id"
|
90
|
-
When(/^I grab "(.*?)" as "(.*?)"$/) do |json_path, place_holder|
|
100
|
+
When(/^I grab "(.*?)" (REST|SOAP) as "(.*?)"$/) do |json_path, method, place_holder|
|
91
101
|
if @response.nil?
|
92
102
|
raise 'No response found, a request need to be made first before you can grab response'
|
93
103
|
end
|
94
|
-
|
95
104
|
@grabbed = {} if @grabbed.nil?
|
96
|
-
|
97
|
-
|
105
|
+
case method
|
106
|
+
when /REST/
|
107
|
+
@grabbed[%/#{place_holder}/] = @response.get json_path
|
108
|
+
p @grabbed
|
109
|
+
else
|
110
|
+
json = JSON.parse(@response.body.to_json)
|
111
|
+
results = JsonPath.new(json_path).on(json).to_a.map(&:to_s)
|
112
|
+
@grabbed[%/#{place_holder}/] = results[0]
|
113
|
+
p @grabbed
|
114
|
+
end
|
115
|
+
|
116
|
+
|
98
117
|
end
|
99
118
|
# Example
|
100
119
|
# And I send a GET request to "https://hacker-news.firebaseio.com/v0/item/8863.json" with:
|
@@ -102,7 +121,7 @@ end
|
|
102
121
|
# | pretty |
|
103
122
|
When(/^I send a (GET|POST|PATCH|PUT|DELETE) request to "(.*?)" with:$/) do |method, url, params|
|
104
123
|
unless params.hashes.empty?
|
105
|
-
query = params.hashes.first.map{|key, value| %/#{key}=#{value}/}.join("&")
|
124
|
+
query = params.hashes.first.map { |key, value| %/#{key}=#{value}/ }.join("&")
|
106
125
|
url = url.include?('?') ? %/#{url}&#{query}/ : %/#{url}?#{query}/
|
107
126
|
end
|
108
127
|
steps %Q{
|
@@ -152,13 +171,13 @@ Then(/^the response status should be "(\d+)"$/) do |status_code|
|
|
152
171
|
raise %/Expect #{status_code} but was #{@response.code}/ if @response.code != status_code.to_i
|
153
172
|
end
|
154
173
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
174
|
+
# Example
|
175
|
+
# Then the JSON response should be:
|
176
|
+
# """
|
177
|
+
# {
|
178
|
+
# "test" : "anh pham"
|
179
|
+
# }
|
180
|
+
# """
|
162
181
|
Then /^the JSON response should be:$/ do |json|
|
163
182
|
expected = JSON.parse(json)
|
164
183
|
actual = JSON.parse(@response.body)
|
@@ -175,7 +194,7 @@ end
|
|
175
194
|
# Example
|
176
195
|
# Then the JSON response should have "$..id"
|
177
196
|
Then /^the JSON response should have "(.*)"$/ do |json_path|
|
178
|
-
json
|
197
|
+
json = JSON.parse(@response.body)
|
179
198
|
results = JsonPath.new(json_path).on(json).to_a.map(&:to_s)
|
180
199
|
if self.respond_to?(:expect)
|
181
200
|
expect(results).not_to be_empty
|
@@ -185,7 +204,7 @@ end
|
|
185
204
|
Then(/^the JSON response root should be (object|array)$/) do |type|
|
186
205
|
steps %Q{
|
187
206
|
Then the JSON response should have required key "$" of type #{type}
|
188
|
-
|
207
|
+
}
|
189
208
|
end
|
190
209
|
|
191
210
|
Then(/^the JSON response should have key "([^\"]*)"$/) do |json_path|
|
@@ -197,7 +216,7 @@ end
|
|
197
216
|
|
198
217
|
Then(/^the JSON response should have (required|optional) key "(.*?)" of type \
|
199
218
|
(numeric|string|array|boolean|numeric_string|object|array|any)( or null)?$/) do |optionality, json_path, type, null_allowed|
|
200
|
-
next if optionality == 'optional' and not @response.has(json_path)
|
219
|
+
next if optionality == 'optional' and not @response.has(json_path) # if optional and no such key then skip
|
201
220
|
if 'any' == type
|
202
221
|
@response.get json_path
|
203
222
|
elsif null_allowed.nil?
|
@@ -222,12 +241,12 @@ end
|
|
222
241
|
# Example
|
223
242
|
# Then the JSON response node should have "$..by" with the text "dhouston"
|
224
243
|
Then /^the JSON response node should have "(.*)" with the text "(.*)"$/ do |json_path, text|
|
225
|
-
json
|
244
|
+
json = JSON.parse(@response.body)
|
226
245
|
results = JsonPath.new(json_path).on(json).to_a.map(&:to_s)
|
227
246
|
if self.respond_to?(:expect)
|
228
|
-
|
247
|
+
expect(results).to include(text)
|
229
248
|
else
|
230
|
-
|
249
|
+
assert results.include?(text)
|
231
250
|
end
|
232
251
|
end
|
233
252
|
|
@@ -243,7 +262,7 @@ end
|
|
243
262
|
# end
|
244
263
|
|
245
264
|
Then /^show me SOAP response$/ do
|
246
|
-
|
265
|
+
puts @response.body
|
247
266
|
end
|
248
267
|
|
249
268
|
Then /^show me REST (unparsed)?\s?response$/ do |unparsed|
|
data/project/Gemfile.lock
CHANGED
@@ -1,203 +1,203 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
Ifd_Automation (0.1.8)
|
5
|
-
appium_lib (>= 4.0.0, > 4.1.0)
|
6
|
-
chunky_png (>= 1.3.0, > 1.3.3)
|
7
|
-
cucumber (>= 1.3.18, > 2.0.0)
|
8
|
-
selenium-webdriver (>= 2.46.2, > 2.46.2)
|
9
|
-
actionmailer (5.0.0.1)
|
10
|
-
actionpack (= 5.0.0.1)
|
11
|
-
actionview (= 5.0.0.1)
|
12
|
-
activejob (= 5.0.0.1)
|
13
|
-
mail (~> 2.5, >= 2.5.4)
|
14
|
-
rails-dom-testing (~> 2.0)
|
15
|
-
actionpack (5.0.0.1)
|
16
|
-
actionview (= 5.0.0.1)
|
17
|
-
activesupport (= 5.0.0.1)
|
18
|
-
rack (~> 2.0)
|
19
|
-
rack-test (~> 0.6.3)
|
20
|
-
rails-dom-testing (~> 2.0)
|
21
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
22
|
-
actionview (5.0.0.1)
|
23
|
-
activesupport (= 5.0.0.1)
|
24
|
-
builder (~> 3.1)
|
25
|
-
erubis (~> 2.7.0)
|
26
|
-
rails-dom-testing (~> 2.0)
|
27
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
28
|
-
activejob (5.0.0.1)
|
29
|
-
activesupport (= 5.0.0.1)
|
30
|
-
globalid (>= 0.3.6)
|
31
|
-
activemodel (5.0.0.1)
|
32
|
-
activesupport (= 5.0.0.1)
|
33
|
-
activerecord (5.0.0.1)
|
34
|
-
activemodel (= 5.0.0.1)
|
35
|
-
activesupport (= 5.0.0.1)
|
36
|
-
arel (~> 7.0)
|
37
|
-
activesupport (5.0.0.1)
|
38
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
39
|
-
i18n (~> 0.7)
|
40
|
-
minitest (~> 5.1)
|
41
|
-
tzinfo (~> 1.1)
|
42
|
-
addressable (2.4.0)
|
43
|
-
akami (1.3.1)
|
44
|
-
gyoku (>= 0.4.0)
|
45
|
-
nokogiri
|
46
|
-
appium_lib (8.0.2)
|
47
|
-
awesome_print (~> 1.6)
|
48
|
-
json (~> 1.8)
|
49
|
-
nokogiri (~> 1.6.6)
|
50
|
-
selenium-webdriver (~> 2.49)
|
51
|
-
tomlrb (~> 1.1)
|
52
|
-
arel (7.1.4)
|
53
|
-
awesome_print (1.7.0)
|
54
|
-
builder (3.2.2)
|
55
|
-
capybara (2.10.1)
|
56
|
-
addressable
|
57
|
-
mime-types (>= 1.16)
|
58
|
-
nokogiri (>= 1.3.3)
|
59
|
-
rack (>= 1.0.0)
|
60
|
-
rack-test (>= 0.5.4)
|
61
|
-
xpath (~> 2.0)
|
62
|
-
childprocess (0.5.9)
|
63
|
-
ffi (~> 1.0, >= 1.0.11)
|
64
|
-
chunky_png (1.3.7)
|
65
|
-
concurrent-ruby (1.0.2)
|
66
|
-
cucumber (2.4.0)
|
67
|
-
builder (>= 2.1.2)
|
68
|
-
cucumber-core (~> 1.5.0)
|
69
|
-
cucumber-wire (~> 0.0.1)
|
70
|
-
diff-lcs (>= 1.1.3)
|
71
|
-
gherkin (~> 4.0)
|
72
|
-
multi_json (>= 1.7.5, < 2.0)
|
73
|
-
multi_test (>= 0.1.2)
|
74
|
-
cucumber-core (1.5.0)
|
75
|
-
gherkin (~> 4.0)
|
76
|
-
cucumber-wire (0.0.1)
|
77
|
-
diff-lcs (1.2.5)
|
78
|
-
domain_name (0.5.20160826)
|
79
|
-
unf (>= 0.0.5, < 1.0.0)
|
80
|
-
erubis (2.7.0)
|
81
|
-
ffi (1.9.14)
|
82
|
-
ffi (1.9.14-x64-mingw32)
|
83
|
-
ffi (1.9.14-x86-mingw32)
|
84
|
-
gherkin (4.0.0)
|
85
|
-
globalid (0.3.7)
|
86
|
-
activesupport (>= 4.1.0)
|
87
|
-
gyoku (1.3.1)
|
88
|
-
builder (>= 2.1.2)
|
89
|
-
http-cookie (1.0.3)
|
90
|
-
domain_name (~> 0.5)
|
91
|
-
httpi (2.4.2)
|
92
|
-
rack
|
93
|
-
socksify
|
94
|
-
i18n (0.7.0)
|
95
|
-
json (1.8.3)
|
96
|
-
json-schema (2.7.0)
|
97
|
-
addressable (>= 2.4)
|
98
|
-
jsonpath (0.5.8)
|
99
|
-
multi_json
|
100
|
-
loofah (2.0.3)
|
101
|
-
nokogiri (>= 1.5.9)
|
102
|
-
mail (2.6.4)
|
103
|
-
mime-types (>= 1.16, < 4)
|
104
|
-
mime-types (3.1)
|
105
|
-
mime-types-data (~> 3.2015)
|
106
|
-
mime-types-data (3.2016.0521)
|
107
|
-
mini_portile2 (2.1.0)
|
108
|
-
minitest (5.9.1)
|
109
|
-
multi_json (1.12.1)
|
110
|
-
multi_test (0.1.2)
|
111
|
-
mysql2 (0.4.4)
|
112
|
-
mysql2 (0.4.4-x64-mingw32)
|
113
|
-
mysql2 (0.4.4-x86-mingw32)
|
114
|
-
net-ssh (3.2.0)
|
115
|
-
netrc (0.11.0)
|
116
|
-
nokogiri (1.6.8.1)
|
117
|
-
mini_portile2 (~> 2.1.0)
|
118
|
-
nokogiri (1.6.8.1-x64-mingw32)
|
119
|
-
mini_portile2 (~> 2.1.0)
|
120
|
-
nokogiri (1.6.8.1-x86-mingw32)
|
121
|
-
mini_portile2 (~> 2.1.0)
|
122
|
-
nori (2.6.0)
|
123
|
-
rack (2.0.1)
|
124
|
-
rack-test (0.6.3)
|
125
|
-
rack (>= 1.0)
|
126
|
-
rails-dom-testing (2.0.1)
|
127
|
-
activesupport (>= 4.2.0, < 6.0)
|
128
|
-
nokogiri (~> 1.6.0)
|
129
|
-
rails-html-sanitizer (1.0.3)
|
130
|
-
loofah (~> 2.0)
|
131
|
-
rest-client (2.0.0)
|
132
|
-
http-cookie (>= 1.0.2, < 2.0)
|
133
|
-
mime-types (>= 1.16, < 4.0)
|
134
|
-
netrc (~> 0.8)
|
135
|
-
rest-client (2.0.0-x64-mingw32)
|
136
|
-
ffi (~> 1.9)
|
137
|
-
http-cookie (>= 1.0.2, < 2.0)
|
138
|
-
mime-types (>= 1.16, < 4.0)
|
139
|
-
netrc (~> 0.8)
|
140
|
-
rest-client (2.0.0-x86-mingw32)
|
141
|
-
ffi (~> 1.9)
|
142
|
-
http-cookie (>= 1.0.2, < 2.0)
|
143
|
-
mime-types (>= 1.16, < 4.0)
|
144
|
-
netrc (~> 0.8)
|
145
|
-
rubyzip (1.2.0)
|
146
|
-
savon (2.11.1)
|
147
|
-
akami (~> 1.2)
|
148
|
-
builder (>= 2.1.2)
|
149
|
-
gyoku (~> 1.2)
|
150
|
-
httpi (~> 2.3)
|
151
|
-
nokogiri (>= 1.4.0)
|
152
|
-
nori (~> 2.4)
|
153
|
-
wasabi (~> 3.4)
|
154
|
-
selenium-webdriver (2.53.4)
|
155
|
-
childprocess (~> 0.5)
|
156
|
-
rubyzip (~> 1.0)
|
157
|
-
websocket (~> 1.0)
|
158
|
-
socksify (1.7.0)
|
159
|
-
thread_safe (0.3.5)
|
160
|
-
tiny_tds (1.0.5)
|
161
|
-
mini_portile2 (~> 2.0)
|
162
|
-
tiny_tds (1.0.5-x64-mingw32)
|
163
|
-
mini_portile2 (~> 2.0)
|
164
|
-
tiny_tds (1.0.5-x86-mingw32)
|
165
|
-
mini_portile2 (~> 2.0)
|
166
|
-
tomlrb (1.2.3)
|
167
|
-
tzinfo (1.2.2)
|
168
|
-
thread_safe (~> 0.1)
|
169
|
-
unf (0.1.4)
|
170
|
-
unf_ext
|
171
|
-
unf_ext (0.0.7.2)
|
172
|
-
unf_ext (0.0.7.2-x64-mingw32)
|
173
|
-
unf_ext (0.0.7.2-x86-mingw32)
|
174
|
-
wasabi (3.5.0)
|
175
|
-
httpi (~> 2.0)
|
176
|
-
nokogiri (>= 1.4.2)
|
177
|
-
websocket (1.2.3)
|
178
|
-
xpath (2.0.0)
|
179
|
-
nokogiri (~> 1.3)
|
180
|
-
|
181
|
-
PLATFORMS
|
182
|
-
ruby
|
183
|
-
x64-mingw32
|
184
|
-
x86-mingw32
|
185
|
-
|
186
|
-
DEPENDENCIES
|
187
|
-
Ifd_Automation
|
188
|
-
actionmailer
|
189
|
-
activerecord
|
190
|
-
capybara
|
191
|
-
cucumber
|
192
|
-
json-schema (~> 2.7)
|
193
|
-
jsonpath (~> 0.5.8)
|
194
|
-
mail
|
195
|
-
mysql2 (~> 0.4.4)
|
196
|
-
net-ssh (~> 3.2)
|
197
|
-
rest-client (~> 2.0)
|
198
|
-
savon (~> 2.11.0)
|
199
|
-
selenium-webdriver (~> 2.46)
|
200
|
-
tiny_tds (~> 1.0, >= 1.0.5)
|
201
|
-
|
202
|
-
BUNDLED WITH
|
203
|
-
1.13.5
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
Ifd_Automation (0.1.8)
|
5
|
+
appium_lib (>= 4.0.0, > 4.1.0)
|
6
|
+
chunky_png (>= 1.3.0, > 1.3.3)
|
7
|
+
cucumber (>= 1.3.18, > 2.0.0)
|
8
|
+
selenium-webdriver (>= 2.46.2, > 2.46.2)
|
9
|
+
actionmailer (5.0.0.1)
|
10
|
+
actionpack (= 5.0.0.1)
|
11
|
+
actionview (= 5.0.0.1)
|
12
|
+
activejob (= 5.0.0.1)
|
13
|
+
mail (~> 2.5, >= 2.5.4)
|
14
|
+
rails-dom-testing (~> 2.0)
|
15
|
+
actionpack (5.0.0.1)
|
16
|
+
actionview (= 5.0.0.1)
|
17
|
+
activesupport (= 5.0.0.1)
|
18
|
+
rack (~> 2.0)
|
19
|
+
rack-test (~> 0.6.3)
|
20
|
+
rails-dom-testing (~> 2.0)
|
21
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
22
|
+
actionview (5.0.0.1)
|
23
|
+
activesupport (= 5.0.0.1)
|
24
|
+
builder (~> 3.1)
|
25
|
+
erubis (~> 2.7.0)
|
26
|
+
rails-dom-testing (~> 2.0)
|
27
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
28
|
+
activejob (5.0.0.1)
|
29
|
+
activesupport (= 5.0.0.1)
|
30
|
+
globalid (>= 0.3.6)
|
31
|
+
activemodel (5.0.0.1)
|
32
|
+
activesupport (= 5.0.0.1)
|
33
|
+
activerecord (5.0.0.1)
|
34
|
+
activemodel (= 5.0.0.1)
|
35
|
+
activesupport (= 5.0.0.1)
|
36
|
+
arel (~> 7.0)
|
37
|
+
activesupport (5.0.0.1)
|
38
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
39
|
+
i18n (~> 0.7)
|
40
|
+
minitest (~> 5.1)
|
41
|
+
tzinfo (~> 1.1)
|
42
|
+
addressable (2.4.0)
|
43
|
+
akami (1.3.1)
|
44
|
+
gyoku (>= 0.4.0)
|
45
|
+
nokogiri
|
46
|
+
appium_lib (8.0.2)
|
47
|
+
awesome_print (~> 1.6)
|
48
|
+
json (~> 1.8)
|
49
|
+
nokogiri (~> 1.6.6)
|
50
|
+
selenium-webdriver (~> 2.49)
|
51
|
+
tomlrb (~> 1.1)
|
52
|
+
arel (7.1.4)
|
53
|
+
awesome_print (1.7.0)
|
54
|
+
builder (3.2.2)
|
55
|
+
capybara (2.10.1)
|
56
|
+
addressable
|
57
|
+
mime-types (>= 1.16)
|
58
|
+
nokogiri (>= 1.3.3)
|
59
|
+
rack (>= 1.0.0)
|
60
|
+
rack-test (>= 0.5.4)
|
61
|
+
xpath (~> 2.0)
|
62
|
+
childprocess (0.5.9)
|
63
|
+
ffi (~> 1.0, >= 1.0.11)
|
64
|
+
chunky_png (1.3.7)
|
65
|
+
concurrent-ruby (1.0.2)
|
66
|
+
cucumber (2.4.0)
|
67
|
+
builder (>= 2.1.2)
|
68
|
+
cucumber-core (~> 1.5.0)
|
69
|
+
cucumber-wire (~> 0.0.1)
|
70
|
+
diff-lcs (>= 1.1.3)
|
71
|
+
gherkin (~> 4.0)
|
72
|
+
multi_json (>= 1.7.5, < 2.0)
|
73
|
+
multi_test (>= 0.1.2)
|
74
|
+
cucumber-core (1.5.0)
|
75
|
+
gherkin (~> 4.0)
|
76
|
+
cucumber-wire (0.0.1)
|
77
|
+
diff-lcs (1.2.5)
|
78
|
+
domain_name (0.5.20160826)
|
79
|
+
unf (>= 0.0.5, < 1.0.0)
|
80
|
+
erubis (2.7.0)
|
81
|
+
ffi (1.9.14)
|
82
|
+
ffi (1.9.14-x64-mingw32)
|
83
|
+
ffi (1.9.14-x86-mingw32)
|
84
|
+
gherkin (4.0.0)
|
85
|
+
globalid (0.3.7)
|
86
|
+
activesupport (>= 4.1.0)
|
87
|
+
gyoku (1.3.1)
|
88
|
+
builder (>= 2.1.2)
|
89
|
+
http-cookie (1.0.3)
|
90
|
+
domain_name (~> 0.5)
|
91
|
+
httpi (2.4.2)
|
92
|
+
rack
|
93
|
+
socksify
|
94
|
+
i18n (0.7.0)
|
95
|
+
json (1.8.3)
|
96
|
+
json-schema (2.7.0)
|
97
|
+
addressable (>= 2.4)
|
98
|
+
jsonpath (0.5.8)
|
99
|
+
multi_json
|
100
|
+
loofah (2.0.3)
|
101
|
+
nokogiri (>= 1.5.9)
|
102
|
+
mail (2.6.4)
|
103
|
+
mime-types (>= 1.16, < 4)
|
104
|
+
mime-types (3.1)
|
105
|
+
mime-types-data (~> 3.2015)
|
106
|
+
mime-types-data (3.2016.0521)
|
107
|
+
mini_portile2 (2.1.0)
|
108
|
+
minitest (5.9.1)
|
109
|
+
multi_json (1.12.1)
|
110
|
+
multi_test (0.1.2)
|
111
|
+
mysql2 (0.4.4)
|
112
|
+
mysql2 (0.4.4-x64-mingw32)
|
113
|
+
mysql2 (0.4.4-x86-mingw32)
|
114
|
+
net-ssh (3.2.0)
|
115
|
+
netrc (0.11.0)
|
116
|
+
nokogiri (1.6.8.1)
|
117
|
+
mini_portile2 (~> 2.1.0)
|
118
|
+
nokogiri (1.6.8.1-x64-mingw32)
|
119
|
+
mini_portile2 (~> 2.1.0)
|
120
|
+
nokogiri (1.6.8.1-x86-mingw32)
|
121
|
+
mini_portile2 (~> 2.1.0)
|
122
|
+
nori (2.6.0)
|
123
|
+
rack (2.0.1)
|
124
|
+
rack-test (0.6.3)
|
125
|
+
rack (>= 1.0)
|
126
|
+
rails-dom-testing (2.0.1)
|
127
|
+
activesupport (>= 4.2.0, < 6.0)
|
128
|
+
nokogiri (~> 1.6.0)
|
129
|
+
rails-html-sanitizer (1.0.3)
|
130
|
+
loofah (~> 2.0)
|
131
|
+
rest-client (2.0.0)
|
132
|
+
http-cookie (>= 1.0.2, < 2.0)
|
133
|
+
mime-types (>= 1.16, < 4.0)
|
134
|
+
netrc (~> 0.8)
|
135
|
+
rest-client (2.0.0-x64-mingw32)
|
136
|
+
ffi (~> 1.9)
|
137
|
+
http-cookie (>= 1.0.2, < 2.0)
|
138
|
+
mime-types (>= 1.16, < 4.0)
|
139
|
+
netrc (~> 0.8)
|
140
|
+
rest-client (2.0.0-x86-mingw32)
|
141
|
+
ffi (~> 1.9)
|
142
|
+
http-cookie (>= 1.0.2, < 2.0)
|
143
|
+
mime-types (>= 1.16, < 4.0)
|
144
|
+
netrc (~> 0.8)
|
145
|
+
rubyzip (1.2.0)
|
146
|
+
savon (2.11.1)
|
147
|
+
akami (~> 1.2)
|
148
|
+
builder (>= 2.1.2)
|
149
|
+
gyoku (~> 1.2)
|
150
|
+
httpi (~> 2.3)
|
151
|
+
nokogiri (>= 1.4.0)
|
152
|
+
nori (~> 2.4)
|
153
|
+
wasabi (~> 3.4)
|
154
|
+
selenium-webdriver (2.53.4)
|
155
|
+
childprocess (~> 0.5)
|
156
|
+
rubyzip (~> 1.0)
|
157
|
+
websocket (~> 1.0)
|
158
|
+
socksify (1.7.0)
|
159
|
+
thread_safe (0.3.5)
|
160
|
+
tiny_tds (1.0.5)
|
161
|
+
mini_portile2 (~> 2.0)
|
162
|
+
tiny_tds (1.0.5-x64-mingw32)
|
163
|
+
mini_portile2 (~> 2.0)
|
164
|
+
tiny_tds (1.0.5-x86-mingw32)
|
165
|
+
mini_portile2 (~> 2.0)
|
166
|
+
tomlrb (1.2.3)
|
167
|
+
tzinfo (1.2.2)
|
168
|
+
thread_safe (~> 0.1)
|
169
|
+
unf (0.1.4)
|
170
|
+
unf_ext
|
171
|
+
unf_ext (0.0.7.2)
|
172
|
+
unf_ext (0.0.7.2-x64-mingw32)
|
173
|
+
unf_ext (0.0.7.2-x86-mingw32)
|
174
|
+
wasabi (3.5.0)
|
175
|
+
httpi (~> 2.0)
|
176
|
+
nokogiri (>= 1.4.2)
|
177
|
+
websocket (1.2.3)
|
178
|
+
xpath (2.0.0)
|
179
|
+
nokogiri (~> 1.3)
|
180
|
+
|
181
|
+
PLATFORMS
|
182
|
+
ruby
|
183
|
+
x64-mingw32
|
184
|
+
x86-mingw32
|
185
|
+
|
186
|
+
DEPENDENCIES
|
187
|
+
Ifd_Automation
|
188
|
+
actionmailer
|
189
|
+
activerecord
|
190
|
+
capybara
|
191
|
+
cucumber
|
192
|
+
json-schema (~> 2.7)
|
193
|
+
jsonpath (~> 0.5.8)
|
194
|
+
mail
|
195
|
+
mysql2 (~> 0.4.4)
|
196
|
+
net-ssh (~> 3.2)
|
197
|
+
rest-client (~> 2.0)
|
198
|
+
savon (~> 2.11.0)
|
199
|
+
selenium-webdriver (~> 2.46)
|
200
|
+
tiny_tds (~> 1.0, >= 1.0.5)
|
201
|
+
|
202
|
+
BUNDLED WITH
|
203
|
+
1.13.5
|
@@ -4,13 +4,27 @@ $base_dir = File.expand_path(File.dirname(__FILE__) + '/../..')
|
|
4
4
|
$test_data_dir = $base_dir + '/features/TestData/'
|
5
5
|
PROJECT_CONFIG = YAML.load_file("#{$current_dir}/project_config.yml")
|
6
6
|
$PARAMS = YAML.load_file("#{$test_data_dir}/globalData.yml")
|
7
|
+
$OBJECT = YAML.load_file("#{$base_dir}/features/step_definitions/repositories/project_object.yml")
|
7
8
|
STDOUT.sync = true
|
8
9
|
require 'rubygems'
|
9
10
|
require 'capybara'
|
10
11
|
require 'capybara/cucumber'
|
12
|
+
require 'cucumber'
|
11
13
|
require 'yaml'
|
12
14
|
require 'selenium-webdriver'
|
13
15
|
require 'Ifd_Automation'
|
16
|
+
# require File.expand_path('../lib/Ifd_Automation/email_steps.rb')
|
17
|
+
# require File.expand_path('../lib/Ifd_Automation/file_steps.rb')
|
18
|
+
# require File.expand_path('../lib/Ifd_Automation/ssh_steps.rb')
|
19
|
+
# require File.expand_path('../lib/Ifd_Automation/database_steps.rb')
|
20
|
+
# require File.expand_path('../lib/Ifd_Automation/web_steps.rb')
|
21
|
+
# require File.expand_path('../lib/Ifd_Automation/webservice_steps.rb')
|
22
|
+
# require File.expand_path('../lib/Ifd_Automation/response.rb')
|
23
|
+
# require File.expand_path('../lib/Ifd_Automation_support/selenium_sync_issues.rb')
|
24
|
+
# require File.expand_path('../lib/Ifd_Automation_support/core.rb')
|
25
|
+
# require File.expand_path('../lib/Ifd_Automation_support/web_steps_helpers.rb')
|
26
|
+
# require File.expand_path('../lib/Ifd_Automation_support/mail_helpers.rb')
|
27
|
+
# require File.expand_path('../lib/Ifd_Automation_support/assertion_helpers.rb')
|
14
28
|
|
15
29
|
$_CFWEB['Default Browser'] = PROJECT_CONFIG['default_browser'].downcase
|
16
30
|
$_CFWEB['Wait Time'] = PROJECT_CONFIG['wait_time']
|
@@ -48,7 +62,7 @@ Capybara.configure do |config|
|
|
48
62
|
config.default_wait_time = $_CFWEB['Wait Time']
|
49
63
|
# config.run_server = false
|
50
64
|
config.default_driver = :selenium
|
51
|
-
config.default_selector = :css
|
65
|
+
# config.default_selector = :css
|
52
66
|
config.ignore_hidden_elements = true
|
53
67
|
#config.visible_text_only = true
|
54
68
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
default_browser: firefox
|
2
2
|
wait_time: 30
|
3
|
-
test_page_address:
|
3
|
+
test_page_address:
|
4
4
|
selenium_grid: 10.5.1.202
|
5
|
-
send_email_username:
|
6
|
-
send_email_password:
|
7
|
-
receive_email_username:
|
8
|
-
receive_email_password:
|
5
|
+
send_email_username:
|
6
|
+
send_email_password:
|
7
|
+
receive_email_username:
|
8
|
+
receive_email_password:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Ifd_Automation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anh Pham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -294,8 +294,8 @@ files:
|
|
294
294
|
- project/Gemfile.lock
|
295
295
|
- project/Rakefile
|
296
296
|
- project/features/TestData/globalData.yml
|
297
|
-
- project/features/TestSuite/test
|
298
|
-
- project/features/step_definitions/lib_steps/test
|
297
|
+
- project/features/TestSuite/test.feature
|
298
|
+
- project/features/step_definitions/lib_steps/test.rb
|
299
299
|
- project/features/step_definitions/repositories/project_object.yml
|
300
300
|
- project/features/support/env.rb
|
301
301
|
- project/features/support/hooks.rb
|
@@ -320,7 +320,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
320
320
|
version: '0'
|
321
321
|
requirements: []
|
322
322
|
rubyforge_project:
|
323
|
-
rubygems_version: 2.5.1
|
323
|
+
rubygems_version: 2.4.5.1
|
324
324
|
signing_key:
|
325
325
|
specification_version: 4
|
326
326
|
summary: SELENIUM WEBDRIVER WITH RUBY & CUCUMBER
|
File without changes
|
File without changes
|