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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4381df69057eaaaef5b1dd1f1df45c50672c069c
4
- data.tar.gz: baae0ae5ab74e608e1e9b8c697f773d5f378e9fe
3
+ metadata.gz: 39bbb21f99550c1f66c9a0b67e1bd3edd5494687
4
+ data.tar.gz: 6431a2284f02b2daab474919c3385ba73bf8acf6
5
5
  SHA512:
6
- metadata.gz: e97a0cf6713406b8c63df89294fb1a34d5baaee946a07906c1db830edf47667bc0605946ba8a574daa9c4c83a6234563d37c7be4dc4f3158ee4faa1fcfa19ee4
7
- data.tar.gz: 2b0492b15f4a409006f52af403e7002a4fd4efa8e316e974b3972b22bbf3ff336f4c07543e9c210a2b572e521e5e6d9b06de798652cf633cac47be7ce870e955
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
@@ -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
- # Then /^I delete file "(.*)"$/ do |file_name|
14
- # file_path = ($test_data_dir + file_name)
15
- # if File.exists?(file_path)
16
- # File.delete(file_path)
17
- # puts "#{file_name} is deleted successfully"
18
- # else
19
- # puts "File #{file_name} does not exists"
20
- # end
21
- # end
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.0"
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.rows_hash.each {|k,v| header k, v }
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
- request_url = URI.encode check_match_url url
29
- @client = Savon.client(ssl_verify_mode: :none,wsdl: "#{request_url}")
30
- p @client.operations
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
- params = JSON.parse(json)
41
- @response = @client.call(operation.downcase.to_sym, :message => params)
42
- # p JSON.parse(@response.body)
43
- # p response_text = response.body[:verify_email_response][:verify_email_result][:response_text]
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 = JSON.parse(@response.body.to_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
- if self.respond_to?(:expect)
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 to:$/) do |params|
63
- @body = {}
64
- params.rows_hash.each do |key, value|
65
- p_value = value
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 = %-#{Dir.pwd}/#{filename}.#{extension}-
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
- @grabbed[%/#{place_holder}/] = @response.get json_path
97
- p @grabbed
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
- # Example
156
- # Then the JSON response should be:
157
- # """
158
- # {
159
- # "test" : "anh pham"
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 = JSON.parse(@response.body)
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) # if optional and no such key then skip
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 = JSON.parse(@response.body)
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
- expect(results).to include(text)
247
+ expect(results).to include(text)
229
248
  else
230
- assert results.include?(text)
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
- puts @response.body
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
@@ -0,0 +1,4 @@
1
+ Feature: Example feature for GUI testing
2
+
3
+ Scenario: testing case for web interaction
4
+ Given I am on Login Page
@@ -0,0 +1,3 @@
1
+ # When /^I login into system with username "(.*)" and password "(.*)"$/ do |username, password|
2
+ # step %{I click on "mym_header.button"}
3
+ # end
@@ -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: http://google.com.com/
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.0
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-10-27 00:00:00.000000000 Z
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