lapis_lazuli 0.6.1 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b2a6cfbdb61af45b8f71d55cc4c1dbf39b4b93e8
4
- data.tar.gz: 1bc6137ed31303b449740f200f34d10d750f9185
3
+ metadata.gz: 40683ed3535be02ed31ba8158e2cfc5350c42841
4
+ data.tar.gz: f150d7de111506a0cda709d5abc9a10bbc36e933
5
5
  SHA512:
6
- metadata.gz: da0360f61b3574674db6af2e43c4fab53b6ab66ff58d01c2632ad1b063357f8db6f24bbfb5ce1d07eaa9f04fc7a5a65e154c65ceb69269880ecd48af6ee9dd38
7
- data.tar.gz: 3b70d1935eed1f0a9bc00d237c3e3ec158aaeacf670b2a2a453ad43beeab60283b3511e289b4322572bd66781b5fd30e86553356ea1d97e5f71265c15a1fdfff
6
+ metadata.gz: 06e11dbd61acdf45b0388d12c4dfb85d37602892f8524e74edfa0ca9e80ef42f320c7ebc72c7e6ce2d4309b0aac9d55fd9117894645eafdf909fe3e4094145c5
7
+ data.tar.gz: c1d310f87dfadc49eb21463a1158d6ca67e4c55017db115c5a1c86cb4dfe38ca01f564bcddfa8d7313bada5ec2f254252a4013df3d1f865b8e23f14d6aed91a4
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lapis_lazuli (0.6.1)
4
+ lapis_lazuli (0.6.2)
5
5
  facets (~> 2.9)
6
6
  faraday (~> 0.9.0)
7
7
  faraday_middleware (~> 0.9.1)
8
8
  json (~> 1.8.1)
9
+ minitest (~> 5.5.1)
9
10
  multi_xml (~> 0.5.5)
10
11
  teelogger (~> 0.3.0)
11
12
  thor (~> 0.19)
@@ -20,6 +21,7 @@ GEM
20
21
  faraday_middleware (0.9.1)
21
22
  faraday (>= 0.7.4, < 0.10)
22
23
  json (1.8.2)
24
+ minitest (5.5.1)
23
25
  multi_json (1.11.0)
24
26
  multi_xml (0.5.5)
25
27
  multipart-post (2.0.0)
data/README.md CHANGED
@@ -3,6 +3,8 @@
3
3
  LapisLazuli provides cucumber helper functions and scaffolding for easier (web)
4
4
  test automation suite development.
5
5
 
6
+ [![Gem Version](https://badge.fury.io/rb/lapis_lazuli.svg)](http://badge.fury.io/rb/lapis_lazuli)
7
+
6
8
  A lot of functionality is aimed at dealing better with [Watir](http://watir.com/),
7
9
  such as:
8
10
 
data/lapis_lazuli.gemspec CHANGED
@@ -8,7 +8,18 @@ Gem::Specification.new do |spec|
8
8
  spec.version = LapisLazuli::VERSION
9
9
  spec.authors = ["Onno Steenbergen", "Gijs Paulides", "Mark Barzilay", "Jens Finkhaeuser"]
10
10
  spec.email = ["foss@spritecloud.com"]
11
- spec.description = %q{Cucumber helper functions and scaffolding for easier test automation suite development.}
11
+ spec.description = %q{
12
+ LapisLazuli provides cucumber helper functions and scaffolding for easier (web)
13
+ test automation suite development.
14
+
15
+ A lot of functionality is aimed at dealing better with [Watir](http://watir.com/),
16
+ such as:
17
+
18
+ - Easier/more reliable find and wait functionality for detecting web page elements.
19
+ - Easier browser handling
20
+ - Better error handling
21
+ - etc.
22
+ }
12
23
  spec.summary = %q{Cucumber helper functions and scaffolding for easier test automation suite development.}
13
24
  spec.homepage = "https://github.com/spriteCloud/lapis-lazuli"
14
25
  spec.license = "MITNFA"
@@ -29,4 +40,5 @@ Gem::Specification.new do |spec|
29
40
  spec.add_dependency "faraday_middleware", "~> 0.9.1"
30
41
  spec.add_dependency "multi_xml", "~> 0.5.5"
31
42
  spec.add_dependency "teelogger", "~> 0.3.0"
43
+ spec.add_dependency "minitest", "~> 5.5.1"
32
44
  end
data/lib/lapis_lazuli.rb CHANGED
@@ -39,6 +39,7 @@ require "lapis_lazuli/world/logging"
39
39
  require "lapis_lazuli/world/browser"
40
40
  require "lapis_lazuli/world/api"
41
41
  require "lapis_lazuli/generic/xpath"
42
+ require "lapis_lazuli/generic/assertions"
42
43
 
43
44
 
44
45
  module LapisLazuli
@@ -53,6 +54,7 @@ module LapisLazuli
53
54
  include LapisLazuli::WorldModule::Browser
54
55
  include LapisLazuli::WorldModule::API
55
56
  include LapisLazuli::GenericModule::XPath
57
+ include LapisLazuli::GenericModule::Assertions
56
58
 
57
59
  ##
58
60
  # Export equivalents to cucumber's Before/After functions
@@ -2,11 +2,11 @@
2
2
  # LapisLazuli
3
3
  # https://github.com/spriteCloud/lapis-lazuli
4
4
  #
5
- # Copyright (c) 2013-2014 spriteCloud B.V. and other LapisLazuli contributors.
5
+ # Copyright (c) 2013-2015 spriteCloud B.V. and other LapisLazuli contributors.
6
6
  # All rights reserved.
7
7
  #
8
8
 
9
- require 'test/unit/assertions'
9
+ require 'lapis_lazuli/assertions'
10
10
 
11
11
  module LapisLazuli
12
12
 
@@ -0,0 +1,27 @@
1
+ #
2
+ # LapisLazuli
3
+ # https://github.com/spriteCloud/lapis-lazuli
4
+ #
5
+ # Copyright (c) 2015 spriteCloud B.V. and other LapisLazuli contributors.
6
+ # All rights reserved.
7
+ #
8
+
9
+ require 'minitest'
10
+ require 'minitest/assertions'
11
+
12
+ module LapisLazuli
13
+ ##
14
+ # Module exists solely to not have require/include statements all over
15
+ # the code referencing an external library.
16
+ module Assertions
17
+ include Minitest::Assertions
18
+
19
+ def assertions
20
+ @assertions ||= 0
21
+ end
22
+
23
+ def assertions=(value)
24
+ @assertions = value
25
+ end
26
+ end # module Assertions
27
+ end # module LapisLazuli
@@ -9,7 +9,6 @@
9
9
  require 'selenium-webdriver'
10
10
  require 'watir-webdriver'
11
11
  require "watir-webdriver/extensions/alerts"
12
- require 'test/unit/assertions'
13
12
 
14
13
  require "lapis_lazuli/ast"
15
14
 
@@ -20,6 +19,7 @@ require "lapis_lazuli/browser/wait"
20
19
  require "lapis_lazuli/browser/screenshots"
21
20
  require "lapis_lazuli/browser/interaction"
22
21
  require 'lapis_lazuli/generic/xpath'
22
+ require 'lapis_lazuli/generic/assertions'
23
23
 
24
24
  module LapisLazuli
25
25
  ##
@@ -30,8 +30,6 @@ module LapisLazuli
30
30
  # object, and for some WorldModules to exist in it (see assertions in
31
31
  # constructor).
32
32
  class Browser
33
- include Test::Unit::Assertions
34
-
35
33
  include LapisLazuli::Ast
36
34
 
37
35
  include LapisLazuli::BrowserModule::Error
@@ -40,6 +38,7 @@ module LapisLazuli
40
38
  include LapisLazuli::BrowserModule::Screenshots
41
39
  include LapisLazuli::BrowserModule::Interaction
42
40
  include LapisLazuli::GenericModule::XPath
41
+ include LapisLazuli::GenericModule::Assertions
43
42
 
44
43
  @world
45
44
  @browser
@@ -6,7 +6,7 @@
6
6
  # All rights reserved.
7
7
  #
8
8
 
9
- require 'test/unit/assertions'
9
+ require 'lapis_lazuli/assertions'
10
10
  require 'lapis_lazuli/argparse'
11
11
 
12
12
 
@@ -2,12 +2,11 @@
2
2
  # LapisLazuli
3
3
  # https://github.com/spriteCloud/lapis-lazuli
4
4
  #
5
- # Copyright (c) 2013-2014 spriteCloud B.V. and other LapisLazuli contributors.
5
+ # Copyright (c) 2013-2015 spriteCloud B.V. and other LapisLazuli contributors.
6
6
  # All rights reserved.
7
7
  #
8
8
 
9
- require 'test/unit/assertions'
10
-
9
+ require 'lapis_lazuli/assertions'
11
10
  require 'lapis_lazuli/argparse'
12
11
 
13
12
  module LapisLazuli
@@ -16,7 +15,7 @@ module BrowserModule
16
15
  ##
17
16
  # Module with helper functions to do with DOM element interaction
18
17
  module Interaction
19
- include Test::Unit::Assertions
18
+ include LapisLazuli::Assertions
20
19
  include LapisLazuli::ArgParse
21
20
 
22
21
  ##
@@ -18,13 +18,20 @@ module BrowserModule
18
18
  dir = @world.env_or_config("screenshot_dir")
19
19
 
20
20
  # Generate the file name according to the new or old scheme.
21
- name = nil
21
+ name = 'screenshot'
22
22
  case @world.env_or_config("screenshot_scheme")
23
23
  when "new"
24
+ # For non-cucumber cases: we don't have @world.scenario.data
25
+ if not @world.scenario.data.nil?
26
+ name = @world.scenario.id
27
+ end
24
28
  # FIXME random makes this non-repeatable, sadly
25
- name = "#{@world.scenario.time[:iso_short]}-#{@world.scenario.id}-#{Random.rand(10000).to_s}.png"
29
+ name = "#{@world.scenario.time[:iso_short]}-#{name}-#{Random.rand(10000).to_s}.png"
26
30
  else # 'old' and default
27
- name = @world.scenario.data.name.gsub(/^.*(\\|\/)/, '').gsub(/[^\w\.\-]/, '_').squeeze('_')
31
+ # For non-cucumber cases: we don't have @world.scenario.data
32
+ if not @world.scenario.data.nil?
33
+ name = @world.scenario.data.name.gsub(/^.*(\\|\/)/, '').gsub(/[^\w\.\-]/, '_').squeeze('_')
34
+ end
28
35
  name = @world.time[:timestamp] + "_" + name + '.png'
29
36
  end
30
37
 
@@ -6,7 +6,7 @@
6
6
  # All rights reserved.
7
7
  #
8
8
 
9
- require 'test/unit/assertions'
9
+ require 'lapis_lazuli/assertions'
10
10
  require 'lapis_lazuli/argparse'
11
11
 
12
12
  module LapisLazuli
@@ -0,0 +1,21 @@
1
+ #
2
+ # LapisLazuli
3
+ # https://github.com/spriteCloud/lapis-lazuli
4
+ #
5
+ # Copyright (c) 2015 spriteCloud B.V. and other LapisLazuli contributors.
6
+ # All rights reserved.
7
+ #
8
+
9
+ require 'lapis_lazuli/assertions'
10
+
11
+ module LapisLazuli
12
+ module GenericModule
13
+
14
+ ##
15
+ # Make assertions available as generic module
16
+ module Assertions
17
+ include LapisLazuli::Assertions
18
+ end # module Assertions
19
+
20
+ end # module GenericModule
21
+ end # module LapisLazuli
@@ -6,5 +6,5 @@
6
6
  # All rights reserved.
7
7
  #
8
8
  module LapisLazuli
9
- VERSION = "0.6.1"
9
+ VERSION = "0.6.2"
10
10
  end
@@ -34,7 +34,9 @@ module WorldModule
34
34
  for_scope << stuff[scope]
35
35
  @annotations[scope] = for_scope
36
36
 
37
- embed(JSON.generate(stuff), 'application/json')
37
+ if self.respond_to? "embed"
38
+ embed(JSON.generate(stuff), 'application/json')
39
+ end
38
40
  end
39
41
 
40
42
  def annotations
@@ -49,7 +49,8 @@ module WorldModule
49
49
  load_config(Config.config_file)
50
50
 
51
51
  if @config.nil?
52
- raise "Could not load configuration."
52
+ warn "Could not load configuration from: #{Config.config_file}"
53
+ @config = {}
53
54
  end
54
55
  end
55
56
 
@@ -202,7 +203,12 @@ module WorldModule
202
203
  raise "Unknown configuration variable '#{variable}' and no default given!"
203
204
  end
204
205
  break if result.nil?
205
- result = result[part]
206
+ begin
207
+ result = result[part]
208
+ rescue TypeError, NoMethodError => ex
209
+ warn "Could not read configuration variable #{variable}: #{ex}"
210
+ break
211
+ end
206
212
  end
207
213
 
208
214
  if default.nil? and result.nil?
@@ -4,17 +4,17 @@ Feature: Error
4
4
  I want to run a webserver with some test files
5
5
  And execute the each library function that handles errors.
6
6
 
7
- @error_01
7
+ @error_01 @needsproxy
8
8
  Scenario: error_01 - Has JS error
9
9
  Given I navigate to the javascript error test page
10
10
  Then I expect javascript errors
11
11
 
12
- @error_02
12
+ @error_02 @needsproxy
13
13
  Scenario: error_02 - Status Code 404
14
14
  Given I navigate to the 404 test page
15
15
  Then I expect a 404 status code
16
16
 
17
- @error_04
17
+ @error_04 @needsproxy
18
18
  Scenario: error_03 - Status Code 200
19
19
  Given I navigate to the text fields test page
20
20
  Then I expect a 200 status code
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: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onno Steenbergen
@@ -17,144 +17,161 @@ dependencies:
17
17
  name: bundler
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
- - - "~>"
20
+ - - ~>
21
21
  - !ruby/object:Gem::Version
22
22
  version: '1.6'
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
29
  version: '1.6'
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
36
  version: '0'
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
43
  version: '0'
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
50
  version: '0'
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
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: thor
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - "~>"
62
+ - - ~>
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0.19'
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
71
  version: '0.19'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: facets
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - "~>"
76
+ - - ~>
77
77
  - !ruby/object:Gem::Version
78
78
  version: '2.9'
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: '2.9'
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: json
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ~>
91
91
  - !ruby/object:Gem::Version
92
92
  version: 1.8.1
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: 1.8.1
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: faraday
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - "~>"
104
+ - - ~>
105
105
  - !ruby/object:Gem::Version
106
106
  version: 0.9.0
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.9.0
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: faraday_middleware
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ~>
119
119
  - !ruby/object:Gem::Version
120
120
  version: 0.9.1
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
127
  version: 0.9.1
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: multi_xml
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - "~>"
132
+ - - ~>
133
133
  - !ruby/object:Gem::Version
134
134
  version: 0.5.5
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
141
  version: 0.5.5
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: teelogger
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - "~>"
146
+ - - ~>
147
147
  - !ruby/object:Gem::Version
148
148
  version: 0.3.0
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: 0.3.0
156
- description: Cucumber helper functions and scaffolding for easier test automation
157
- suite development.
156
+ - !ruby/object:Gem::Dependency
157
+ name: minitest
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ~>
161
+ - !ruby/object:Gem::Version
162
+ version: 5.5.1
163
+ type: :runtime
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ~>
168
+ - !ruby/object:Gem::Version
169
+ version: 5.5.1
170
+ description: "\n LapisLazuli provides cucumber helper functions and scaffolding
171
+ for easier (web)\n test automation suite development.\n\n A lot of functionality
172
+ is aimed at dealing better with [Watir](http://watir.com/),\n such as:\n\n -
173
+ Easier/more reliable find and wait functionality for detecting web page elements.\n
174
+ \ - Easier browser handling\n - Better error handling\n - etc.\n "
158
175
  email:
159
176
  - foss@spritecloud.com
160
177
  executables:
@@ -162,7 +179,7 @@ executables:
162
179
  extensions: []
163
180
  extra_rdoc_files: []
164
181
  files:
165
- - ".gitignore"
182
+ - .gitignore
166
183
  - Gemfile
167
184
  - Gemfile.lock
168
185
  - LICENSE
@@ -173,6 +190,7 @@ files:
173
190
  - lib/lapis_lazuli.rb
174
191
  - lib/lapis_lazuli/api.rb
175
192
  - lib/lapis_lazuli/argparse.rb
193
+ - lib/lapis_lazuli/assertions.rb
176
194
  - lib/lapis_lazuli/ast.rb
177
195
  - lib/lapis_lazuli/browser.rb
178
196
  - lib/lapis_lazuli/browser/error.rb
@@ -193,6 +211,7 @@ files:
193
211
  - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb
194
212
  - lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb
195
213
  - lib/lapis_lazuli/generators/cucumber/template/features/support/transition.rb
214
+ - lib/lapis_lazuli/generic/assertions.rb
196
215
  - lib/lapis_lazuli/generic/xpath.rb
197
216
  - lib/lapis_lazuli/options.rb
198
217
  - lib/lapis_lazuli/placeholders.rb
@@ -249,12 +268,12 @@ require_paths:
249
268
  - lib
250
269
  required_ruby_version: !ruby/object:Gem::Requirement
251
270
  requirements:
252
- - - ">="
271
+ - - '>='
253
272
  - !ruby/object:Gem::Version
254
273
  version: '0'
255
274
  required_rubygems_version: !ruby/object:Gem::Requirement
256
275
  requirements:
257
- - - ">="
276
+ - - '>='
258
277
  - !ruby/object:Gem::Version
259
278
  version: '0'
260
279
  requirements: []