lapis_lazuli 2.1.4 → 3.0.2

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.
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