lapis_lazuli 2.1.4 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +4 -1
  4. data/lapis_lazuli.gemspec +16 -15
  5. data/lib/lapis_lazuli.rb +0 -2
  6. data/lib/lapis_lazuli/api.rb +1 -1
  7. data/lib/lapis_lazuli/argparse.rb +1 -1
  8. data/lib/lapis_lazuli/ast.rb +2 -141
  9. data/lib/lapis_lazuli/browser.rb +50 -160
  10. data/lib/lapis_lazuli/browser/screenshots.rb +3 -4
  11. data/lib/lapis_lazuli/cli.rb +1 -1
  12. data/lib/lapis_lazuli/cucumber.rb +1 -1
  13. data/lib/lapis_lazuli/generators/cucumber.rb +1 -1
  14. data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +1 -1
  15. data/lib/lapis_lazuli/generators/cucumber/template/features/1_basic.feature +14 -7
  16. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/authentication_helper.rb +3 -3
  17. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/navigation_helper.rb +1 -1
  18. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/registration_helper.rb +16 -7
  19. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/basic_steps.rb +7 -2
  20. data/lib/lapis_lazuli/generic/xpath.rb +1 -1
  21. data/lib/lapis_lazuli/options.rb +1 -1
  22. data/lib/lapis_lazuli/placeholders.rb +1 -1
  23. data/lib/lapis_lazuli/proxy.rb +1 -1
  24. data/lib/lapis_lazuli/runtime.rb +1 -1
  25. data/lib/lapis_lazuli/scenario.rb +1 -1
  26. data/lib/lapis_lazuli/storage.rb +1 -1
  27. data/lib/lapis_lazuli/version.rb +2 -2
  28. data/lib/lapis_lazuli/versions.rb +1 -1
  29. data/lib/lapis_lazuli/world/logging.rb +34 -33
  30. data/test/Gemfile +1 -3
  31. data/test/features/bindings.feature +6 -6
  32. data/test/features/browser.feature +10 -10
  33. data/test/features/button.feature +4 -3
  34. data/test/features/step_definitions/interaction_steps.rb +13 -24
  35. data/test/features/step_definitions/multifind_steps.rb +3 -3
  36. data/test/features/step_definitions/validation_steps.rb +2 -2
  37. data/test/features/support/env.rb +0 -1
  38. data/test/server/start.rb +1 -1
  39. metadata +55 -57
  40. data/lib/lapis_lazuli/browser/remote.rb +0 -140
  41. data/lib/lapis_lazuli/world/annotate.rb +0 -47
  42. data/test/features/annotation.feature +0 -23
@@ -1,8 +1,8 @@
1
1
  @button @p
2
2
  Feature: Buttons
3
- When I want to test the Lapis Lazuli library
4
- I want to run a webserver with some test files
5
- And execute the each library function that handles buttons.
3
+ When I want to test the Lapis Lazuli library
4
+ I want to run a webserver with some test files
5
+ And execute the each library function that handles buttons.
6
6
 
7
7
  @button_01
8
8
  Scenario: button_01 - Find First
@@ -36,3 +36,4 @@ Feature: Buttons
36
36
  Given I navigate to the button test page
37
37
  And I click the last button
38
38
  Then within 1 seconds I should see "last clicked"
39
+
@@ -45,7 +45,6 @@ Given(/I click (the|a) (first|last|random|[0-9]+[a-z]+) (.*)$/) do |arg1, index,
45
45
  type_element.click
46
46
  end
47
47
 
48
-
49
48
  Given(/^I create a firefox browser named "(.*?)"(?: with proxy to "(.*?)")?$/) do |name, proxy_url|
50
49
  b = nil
51
50
  if proxy_url
@@ -81,14 +80,14 @@ end
81
80
  When(/^I wait for (class )?"(.*?)" and name it "(.*?)"$/) do |type, id, name|
82
81
  type = 'id' if type.nil? || type.empty?
83
82
  type.strip!
84
- element = browser.wait(:element => {type.to_sym => id})
83
+ element = browser.wait(:element => { type.to_sym => id })
85
84
  scenario.storage.set(name, element)
86
85
  end
87
86
 
88
87
  When(/^no error should be thrown when waiting for "(.*?)"$/) do |id|
89
88
  begin
90
89
  elm = browser.wait(
91
- :element => {:id => id},
90
+ :element => { :id => id },
92
91
  :timeout => 3,
93
92
  :throw => false
94
93
  )
@@ -162,7 +161,6 @@ Then(/^I should be able to click the first button by click type (.*?)$/) do |typ
162
161
  )
163
162
  end
164
163
 
165
-
166
164
  Then(/^I should be able to click the first button by force click$/) do
167
165
  elem = browser.button(:id => 'first')
168
166
  browser.force_click(elem)
@@ -174,7 +172,7 @@ Then(/^I should be able to click the first button by force click$/) do
174
172
  end
175
173
 
176
174
  Given(/^I set environment variable "(.*?)" to "(.*?)"$/) do |var, val|
177
- ENV[var]=val
175
+ ENV[var] = val
178
176
  end
179
177
 
180
178
  Given(/^I annotate a step with (.*?)$/) do |data|
@@ -193,25 +191,16 @@ end
193
191
  Given(/^I use browser bindings "(.*?)"$/) do |bindings|
194
192
  require 'selenium-webdriver'
195
193
  case bindings
196
- when '1'
197
- profile = Selenium::WebDriver::Firefox::Profile.new
198
- profile['general.useragent.override'] = "CUSTOM-USER-AGENT"
199
- browser.restart :firefox, profile: profile
200
- when '2'
201
- switches = %w[--user-agent=CUSTOM-CHROME-USER-AGENT]
202
- browser.restart :chrome, :switches => switches
203
- when '3'
204
- caps = Selenium::WebDriver::Remote::Capabilities.chrome(
205
- "chromeOptions" => {
206
- "args" => [
207
- '--start-maximized'
208
- ]
209
- }
210
- )
211
- browser.restart :chrome, desired_capabilities: caps
212
- browser.window.maximize
213
- else
214
- error "Requested binding setup does not exist. Requested #{bindings}"
194
+ when '1'
195
+ profile = Selenium::WebDriver::Firefox::Profile.new
196
+ profile['general.useragent.override'] = "CUSTOM-USER-AGENT"
197
+ browser.restart :firefox, options: { profile: profile }
198
+ when '2'
199
+ browser.restart :chrome, options: { args: ['--user-agent=CUSTOM-CHROME-USER-AGENT'] }
200
+ when '3'
201
+ browser.restart :chrome, options: { args: ['--start-maximized'] }
202
+ else
203
+ error "Requested binding setup does not exist. Requested #{bindings}"
215
204
  end
216
205
  end
217
206
 
@@ -21,7 +21,7 @@ Given(/^the user expects an error in a multi_find lookup$/) do
21
21
  )
22
22
  err = "Expected an error looking for elements with no results."
23
23
  rescue RuntimeError => e
24
- puts "Caught expected error: #{e.message}"
24
+ log "Caught expected error: #{e.message}"
25
25
  end
26
26
  error err unless err.empty?
27
27
  end
@@ -86,7 +86,7 @@ Given(/^the user expects an error in a multi_find_all lookup$/) do
86
86
  )
87
87
  err = "Expected an error looking for elements with no results."
88
88
  rescue RuntimeError => e
89
- puts "Caught expected error: #{e.message}"
89
+ log "Caught expected error: #{e.message}"
90
90
  end
91
91
  error err unless err.empty?
92
92
  end
@@ -116,7 +116,7 @@ Given(/^the user expects an error in a multi_find_all lookup matching all elemen
116
116
  )
117
117
  err = "Expected an error matching all elements with results."
118
118
  rescue RuntimeError => e
119
- puts "Caught expected error: #{e.message}"
119
+ log "Caught expected error: #{e.message}"
120
120
  end
121
121
  error err unless err.empty?
122
122
  end
@@ -234,12 +234,12 @@ end
234
234
  Then(/^the firefox browser named "(.*?)" has a profile$/) do |name|
235
235
  if scenario.storage.has? name
236
236
  b = scenario.storage.get name
237
- if b.browser_name == "remote"
237
+ if b.name == "remote"
238
238
  if b.driver.capabilities.firefox_profile.nil?
239
239
  raise "Remote Firefox Profile is not set"
240
240
  end
241
241
  else
242
- if !b.optional_data.has_key? "profile" and !b.optional_data.has_key? :profile
242
+ if !b.options.has_key? "profile" and !b.optional_data.has_key? :profile
243
243
  raise "No profile found in the optional data"
244
244
  end
245
245
  end
@@ -4,7 +4,6 @@
4
4
  # Author: "spriteCloud" <info@spritecloud.com>
5
5
  require 'lapis_lazuli'
6
6
  require 'lapis_lazuli/cucumber'
7
- require 'cucumber/calliope_importer'
8
7
 
9
8
  module TestModule
10
9
  def test_func
data/test/server/start.rb CHANGED
@@ -12,6 +12,6 @@ thread = Thread.new { server.start }
12
12
 
13
13
  # If this file was executed manually, let's wait for input
14
14
  if __FILE__ == $0
15
- puts "Press enter to shut down the server."
15
+ log "Press enter to shut down the server."
16
16
  gets
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lapis_lazuli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.4
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onno Steenbergen
@@ -11,160 +11,160 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-08-08 00:00:00.000000000 Z
14
+ date: 2021-07-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '1.6'
22
+ version: '2.0'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '1.6'
29
+ version: '2.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
- - - "~>"
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: '12.0'
36
+ version: '12.3'
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - "~>"
41
+ - - ">="
42
42
  - !ruby/object:Gem::Version
43
- version: '12.0'
43
+ version: '12.3'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: simplecov
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - "~>"
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: '0.12'
50
+ version: '0.17'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
- - - "~>"
55
+ - - ">="
56
56
  - !ruby/object:Gem::Version
57
- version: '0.12'
57
+ version: '0.17'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: faraday_middleware
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - "~>"
62
+ - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '0.10'
64
+ version: '0.13'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - "~>"
69
+ - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '0.10'
71
+ version: '0.13'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: faraday_json
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - "~>"
76
+ - - ">="
77
77
  - !ruby/object:Gem::Version
78
78
  version: '0.1'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
- - - "~>"
83
+ - - ">="
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0.1'
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: multi_xml
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0.6'
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0.6'
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: teelogger
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - "~>"
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0.5'
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - "~>"
111
+ - - ">="
112
112
  - !ruby/object:Gem::Version
113
113
  version: '0.5'
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: minitest
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: '5.10'
120
+ version: '5.11'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: '5.10'
127
+ version: '5.11'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: thor
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - "~>"
132
+ - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: '0.19'
134
+ version: '0.20'
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - "~>"
139
+ - - ">="
140
140
  - !ruby/object:Gem::Version
141
- version: '0.19'
141
+ version: '0.20'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: facets
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - "~>"
146
+ - - ">="
147
147
  - !ruby/object:Gem::Version
148
148
  version: '3.1'
149
149
  type: :runtime
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
- - - "~>"
153
+ - - ">="
154
154
  - !ruby/object:Gem::Version
155
155
  version: '3.1'
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: deep_merge
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
- - - "~>"
160
+ - - ">="
161
161
  - !ruby/object:Gem::Version
162
162
  version: '1.2'
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - "~>"
167
+ - - ">="
168
168
  - !ruby/object:Gem::Version
169
169
  version: '1.2'
170
170
  - !ruby/object:Gem::Dependency
@@ -174,9 +174,6 @@ dependencies:
174
174
  - - ">="
175
175
  - !ruby/object:Gem::Version
176
176
  version: '2.0'
177
- - - "<"
178
- - !ruby/object:Gem::Version
179
- version: '4'
180
177
  type: :runtime
181
178
  prerelease: false
182
179
  version_requirements: !ruby/object:Gem::Requirement
@@ -184,31 +181,39 @@ dependencies:
184
181
  - - ">="
185
182
  - !ruby/object:Gem::Version
186
183
  version: '2.0'
187
- - - "<"
188
- - !ruby/object:Gem::Version
189
- version: '4'
190
184
  - !ruby/object:Gem::Dependency
191
185
  name: watir
192
186
  requirement: !ruby/object:Gem::Requirement
193
187
  requirements:
194
- - - "~>"
188
+ - - ">="
195
189
  - !ruby/object:Gem::Version
196
190
  version: '6'
197
191
  type: :runtime
198
192
  prerelease: false
199
193
  version_requirements: !ruby/object:Gem::Requirement
200
194
  requirements:
201
- - - "~>"
195
+ - - ">="
202
196
  - !ruby/object:Gem::Version
203
197
  version: '6'
204
198
  - !ruby/object:Gem::Dependency
205
- name: cucumber
199
+ name: ffi
206
200
  requirement: !ruby/object:Gem::Requirement
207
201
  requirements:
208
202
  - - ">="
209
203
  - !ruby/object:Gem::Version
210
- version: '2.0'
211
- - - "<"
204
+ version: '1.11'
205
+ type: :runtime
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '1.11'
212
+ - !ruby/object:Gem::Dependency
213
+ name: cucumber
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
212
217
  - !ruby/object:Gem::Version
213
218
  version: '4.0'
214
219
  type: :runtime
@@ -216,9 +221,6 @@ dependencies:
216
221
  version_requirements: !ruby/object:Gem::Requirement
217
222
  requirements:
218
223
  - - ">="
219
- - !ruby/object:Gem::Version
220
- version: '2.0'
221
- - - "<"
222
224
  - !ruby/object:Gem::Version
223
225
  version: '4.0'
224
226
  description: "\n LapisLazuli provides cucumber helper functions and scaffolding
@@ -234,6 +236,7 @@ extensions: []
234
236
  extra_rdoc_files: []
235
237
  files:
236
238
  - ".gitignore"
239
+ - CHANGELOG.md
237
240
  - Gemfile
238
241
  - LICENSE
239
242
  - README.md
@@ -249,7 +252,6 @@ files:
249
252
  - lib/lapis_lazuli/browser/error.rb
250
253
  - lib/lapis_lazuli/browser/find.rb
251
254
  - lib/lapis_lazuli/browser/interaction.rb
252
- - lib/lapis_lazuli/browser/remote.rb
253
255
  - lib/lapis_lazuli/browser/screenshots.rb
254
256
  - lib/lapis_lazuli/browser/wait.rb
255
257
  - lib/lapis_lazuli/cli.rb
@@ -283,7 +285,6 @@ files:
283
285
  - lib/lapis_lazuli/storage.rb
284
286
  - lib/lapis_lazuli/version.rb
285
287
  - lib/lapis_lazuli/versions.rb
286
- - lib/lapis_lazuli/world/annotate.rb
287
288
  - lib/lapis_lazuli/world/api.rb
288
289
  - lib/lapis_lazuli/world/browser.rb
289
290
  - lib/lapis_lazuli/world/config.rb
@@ -298,7 +299,6 @@ files:
298
299
  - test/config/config.yml
299
300
  - test/config/cucumber.yml
300
301
  - test/config/devices.yml
301
- - test/features/annotation.feature
302
302
  - test/features/bindings.feature
303
303
  - test/features/browser.feature
304
304
  - test/features/button.feature
@@ -338,7 +338,7 @@ require_paths:
338
338
  - lib
339
339
  required_ruby_version: !ruby/object:Gem::Requirement
340
340
  requirements:
341
- - - "~>"
341
+ - - ">="
342
342
  - !ruby/object:Gem::Version
343
343
  version: '2'
344
344
  required_rubygems_version: !ruby/object:Gem::Requirement
@@ -347,8 +347,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
347
347
  - !ruby/object:Gem::Version
348
348
  version: '0'
349
349
  requirements: []
350
- rubyforge_project:
351
- rubygems_version: 2.6.14
350
+ rubygems_version: 3.0.3
352
351
  signing_key:
353
352
  specification_version: 4
354
353
  summary: Cucumber helper functions and scaffolding for easier test automation suite
@@ -360,7 +359,6 @@ test_files:
360
359
  - test/config/config.yml
361
360
  - test/config/cucumber.yml
362
361
  - test/config/devices.yml
363
- - test/features/annotation.feature
364
362
  - test/features/bindings.feature
365
363
  - test/features/browser.feature
366
364
  - test/features/button.feature