lapis_lazuli 0.6.1 → 0.6.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: 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: []