rspec-html-matchers 0.5.0 → 0.6.0
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -1
- data/features/step_definitions/steps.rb +8 -8
- data/features/support/env.rb +3 -0
- data/lib/rspec-html-matchers.rb +66 -51
- data/spec/have_tag_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -70
- data/spec/support/asset_helpers.rb +16 -0
- data/spec/support/raise_spec_error_helper.rb +49 -0
- metadata +14 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 296097fee852e60651a274cfd9091e6955692619
|
4
|
+
data.tar.gz: 9227a593e13a62fa110a2b7bfba1b12acda14e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0bbf6faa8f79666a0688d0e16a8fc26ead1662a80640df0198e222330b0a19d696b2e7a115bb7c9ec119efee7872446c6b34eb8fa6814d1f431d72a4192a1b0
|
7
|
+
data.tar.gz: f6a6383d51769a300304847fe71e0896e37769671fc82dc24591dfb551b460d5d0874464dc2c0a02af67ae5b7d284455602385cafb3c1cc7237415e45342cbea
|
data/CHANGELOG.md
CHANGED
@@ -11,6 +11,11 @@ unreleased(TODO)
|
|
11
11
|
* order matching
|
12
12
|
* improve documentation, add more usage examples (look at changelog and code!)
|
13
13
|
|
14
|
+
0.6.0
|
15
|
+
-----
|
16
|
+
|
17
|
+
* introduced rspec 3.0.0 compatibility (thanks to [Tiago](https://github.com/TiagoCardoso1983))
|
18
|
+
|
14
19
|
0.5.0
|
15
20
|
-----
|
16
21
|
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
rspec-html-matchers
|
2
2
|
===================
|
3
3
|
|
4
|
-
[RSpec
|
4
|
+
[RSpec 3](https://www.relishapp.com/rspec) matchers for testing your html (for [RSpec 2](https://www.relishapp.com/rspec/rspec-core/v/2-99/docs) use 0.5.x version).
|
5
5
|
|
6
6
|
[](http://badge.fury.io/rb/rspec-html-matchers)
|
7
7
|
[](http://travis-ci.org/kucaahbe/rspec-html-matchers)
|
@@ -10,18 +10,18 @@ end
|
|
10
10
|
|
11
11
|
Then /^I should be able to match static content$/ do
|
12
12
|
# capybara:
|
13
|
-
page.
|
14
|
-
page.
|
13
|
+
expect(page).to have_content('Hello World!')
|
14
|
+
expect(page).to have_css('h1')
|
15
15
|
|
16
|
-
#
|
17
|
-
page.
|
16
|
+
# rspec-html-matchers:
|
17
|
+
expect(page).to have_tag('h1', :text => 'Hello World!')
|
18
18
|
end
|
19
19
|
|
20
20
|
Then /^I should be able to match javascript generated content$/ do
|
21
21
|
# capybara:
|
22
|
-
page.
|
23
|
-
page.
|
22
|
+
expect(page).to have_content('Hello Another World!')
|
23
|
+
expect(page).to have_css('p')
|
24
24
|
|
25
|
-
#
|
26
|
-
page.
|
25
|
+
# rspec-html-matchers:
|
26
|
+
expect(page).to have_tag('p', :text => 'Hello Another World!')
|
27
27
|
end
|
data/features/support/env.rb
CHANGED
data/lib/rspec-html-matchers.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
+
require 'rspec'
|
2
3
|
require 'nokogiri'
|
3
4
|
|
4
5
|
module RSpec
|
5
|
-
module
|
6
|
+
module HtmlMatchers
|
6
7
|
|
7
8
|
# @api
|
8
9
|
# @private
|
@@ -20,53 +21,59 @@ module RSpec
|
|
20
21
|
# @api
|
21
22
|
# @private
|
22
23
|
class NokogiriTextHelper
|
24
|
+
NON_BREAKING_SPACE = "\u00a0"
|
25
|
+
|
23
26
|
def initialize text
|
24
27
|
@text = text
|
25
28
|
end
|
26
29
|
|
27
30
|
def content node_set
|
28
|
-
match_text = @text.gsub(/\\000027/, "'")
|
29
31
|
node_set.find_all do |node|
|
30
|
-
actual_content = node.content
|
31
|
-
# remove non-breaking spaces:
|
32
|
-
case RUBY_VERSION
|
33
|
-
# 1.9.x 2.x.x rubies
|
34
|
-
when /^(1\.9|2)/
|
35
|
-
actual_content.gsub!(/\u00a0/, ' ')
|
36
|
-
when /^1\.8/
|
37
|
-
actual_content.gsub!("\302\240", ' ')
|
38
|
-
end
|
32
|
+
actual_content = node.content.gsub(NON_BREAKING_SPACE, ' ')
|
39
33
|
|
40
|
-
actual_content ==
|
34
|
+
actual_content == @text
|
41
35
|
end
|
42
36
|
end
|
43
37
|
end
|
44
38
|
|
45
39
|
# @api
|
46
40
|
# @private
|
47
|
-
class
|
48
|
-
attr_reader :failure_message, :
|
41
|
+
class HaveTag
|
42
|
+
attr_reader :failure_message, :failure_message_when_negated
|
49
43
|
attr_reader :parent_scope, :current_scope
|
50
44
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
45
|
+
DESCRIPTIONS = {
|
46
|
+
:have_at_least_1 => %Q|have at least 1 element matching "%s"|,
|
47
|
+
:have_n => %Q|have %i element(s) matching "%s"|
|
48
|
+
}
|
49
|
+
|
50
|
+
MESSAGES = {
|
51
|
+
:expected_tag => %Q|expected following:\n%s\nto #{DESCRIPTIONS[:have_at_least_1]}, found 0.|,
|
52
|
+
:unexpected_tag => %Q|expected following:\n%s\nto NOT have element matching "%s", found %s.|,
|
53
|
+
|
54
|
+
:expected_count => %Q|expected following:\n%s\nto #{DESCRIPTIONS[:have_n]}, found %s.|,
|
55
|
+
:unexpected_count => %Q|expected following:\n%s\nto NOT have %i element(s) matching "%s", but found.|,
|
56
|
+
|
57
|
+
:expected_btw_count => %Q|expected following:\n%s\nto have at least %i and at most %i element(s) matching "%s", found %i.|,
|
58
|
+
:unexpected_btw_count => %Q|expected following:\n%s\nto NOT have at least %i and at most %i element(s) matching "%s", but found %i.|,
|
59
|
+
|
60
|
+
:expected_at_most => %Q|expected following:\n%s\nto have at most %i element(s) matching "%s", found %i.|,
|
61
|
+
:unexpected_at_most => %Q|expected following:\n%s\nto NOT have at most %i element(s) matching "%s", but found %i.|,
|
62
|
+
|
63
|
+
:expected_at_least => %Q|expected following:\n%s\nto have at least %i element(s) matching "%s", found %i.|,
|
64
|
+
:unexpected_at_least => %Q|expected following:\n%s\nto NOT have at least %i element(s) matching "%s", but found %i.|,
|
65
|
+
|
66
|
+
:expected_regexp => %Q|%s regexp expected within "%s" in following template:\n%s|,
|
67
|
+
:unexpected_regexp => %Q|%s regexp unexpected within "%s" in following template:\n%s\nbut was found.|,
|
68
|
+
|
69
|
+
:expected_text => %Q|"%s" expected within "%s" in following template:\n%s|,
|
70
|
+
:unexpected_text => %Q|"%s" unexpected within "%s" in following template:\n%s\nbut was found.|,
|
71
|
+
|
72
|
+
:wrong_count_error => %Q|:count with :minimum or :maximum has no sence!|,
|
73
|
+
:min_max_error => %Q|:minimum should be less than :maximum!|,
|
74
|
+
:bad_range_error => %Q|Your :count range(%s) has no sence!|,
|
75
|
+
}
|
76
|
+
|
70
77
|
|
71
78
|
def initialize tag, options={}, &block
|
72
79
|
@tag, @options, @block = tag.to_s, options, block
|
@@ -124,9 +131,9 @@ module RSpec
|
|
124
131
|
def description
|
125
132
|
# TODO should it be more complicated?
|
126
133
|
if @options.has_key?(:count)
|
127
|
-
|
134
|
+
DESCRIPTIONS[:have_n] % [@options[:count],@tag]
|
128
135
|
else
|
129
|
-
|
136
|
+
DESCRIPTIONS[:have_at_least_1] % @tag
|
130
137
|
end
|
131
138
|
end
|
132
139
|
|
@@ -144,10 +151,10 @@ module RSpec
|
|
144
151
|
def tag_presents?
|
145
152
|
if @current_scope.first
|
146
153
|
@count = @current_scope.count
|
147
|
-
@
|
154
|
+
@failure_message_when_negated = MESSAGES[:unexpected_tag] % [@document, @tag, @count]
|
148
155
|
true
|
149
156
|
else
|
150
|
-
@failure_message =
|
157
|
+
@failure_message = MESSAGES[:expected_tag] % [@document, @tag]
|
151
158
|
false
|
152
159
|
end
|
153
160
|
end
|
@@ -155,14 +162,14 @@ module RSpec
|
|
155
162
|
def count_right?
|
156
163
|
case @options[:count]
|
157
164
|
when Integer
|
158
|
-
((@
|
165
|
+
((@failure_message_when_negated=MESSAGES[:unexpected_count] % [@document,@count,@tag]) && @count == @options[:count]) || (@failure_message=MESSAGES[:expected_count] % [@document,@options[:count],@tag,@count]; false)
|
159
166
|
when Range
|
160
|
-
((@
|
167
|
+
((@failure_message_when_negated=MESSAGES[:unexpected_btw_count] % [@document,@options[:count].min,@options[:count].max,@tag,@count]) && @options[:count].member?(@count)) || (@failure_message=MESSAGES[:expected_btw_count] % [@document,@options[:count].min,@options[:count].max,@tag,@count]; false)
|
161
168
|
when nil
|
162
169
|
if @options[:maximum]
|
163
|
-
((@
|
170
|
+
((@failure_message_when_negated=MESSAGES[:unexpected_at_most] % [@document,@options[:maximum],@tag,@count]) && @count <= @options[:maximum]) || (@failure_message=MESSAGES[:expected_at_most] % [@document,@options[:maximum],@tag,@count]; false)
|
164
171
|
elsif @options[:minimum]
|
165
|
-
((@
|
172
|
+
((@failure_message_when_negated=MESSAGES[:unexpected_at_least] % [@document,@options[:minimum],@tag,@count]) && @count >= @options[:minimum]) || (@failure_message=MESSAGES[:expected_at_least] % [@document,@options[:minimum],@tag,@count]; false)
|
166
173
|
else
|
167
174
|
true
|
168
175
|
end
|
@@ -177,20 +184,20 @@ module RSpec
|
|
177
184
|
new_scope = @current_scope.css(':regexp()',NokogiriRegexpHelper.new(text))
|
178
185
|
unless new_scope.empty?
|
179
186
|
@count = new_scope.count
|
180
|
-
@
|
187
|
+
@failure_message_when_negated = MESSAGES[:unexpected_regexp] % [text.inspect,@tag,@document]
|
181
188
|
true
|
182
189
|
else
|
183
|
-
@failure_message =
|
190
|
+
@failure_message = MESSAGES[:expected_regexp] % [text.inspect,@tag,@document]
|
184
191
|
false
|
185
192
|
end
|
186
193
|
else
|
187
194
|
new_scope = @current_scope.css(':content()',NokogiriTextHelper.new(text))
|
188
195
|
unless new_scope.empty?
|
189
196
|
@count = new_scope.count
|
190
|
-
@
|
197
|
+
@failure_message_when_negated = MESSAGES[:unexpected_text] % [text,@tag,@document]
|
191
198
|
true
|
192
199
|
else
|
193
|
-
@failure_message =
|
200
|
+
@failure_message = MESSAGES[:expected_text] % [text,@tag,@document]
|
194
201
|
false
|
195
202
|
end
|
196
203
|
end
|
@@ -202,23 +209,23 @@ module RSpec
|
|
202
209
|
raise 'wrong :count specified' unless [Range, NilClass].include?(@options[:count].class) or @options[:count].is_a?(Integer)
|
203
210
|
|
204
211
|
[:min, :minimum, :max, :maximum].each do |key|
|
205
|
-
raise
|
212
|
+
raise MESSAGES[:wrong_count_error] if @options.has_key?(key) and @options.has_key?(:count)
|
206
213
|
end
|
207
214
|
|
208
215
|
begin
|
209
|
-
raise
|
216
|
+
raise MESSAGES[:min_max_error] if @options[:minimum] > @options[:maximum]
|
210
217
|
rescue NoMethodError # nil > 4
|
211
218
|
rescue ArgumentError # 2 < nil
|
212
219
|
end
|
213
220
|
|
214
221
|
begin
|
215
222
|
begin
|
216
|
-
raise
|
223
|
+
raise MESSAGES[:bad_range_error] % [@options[:count].to_s] if @options[:count] && @options[:count].is_a?(Range) && (@options[:count].min.nil? or @options[:count].min < 0)
|
217
224
|
rescue ArgumentError, "comparison of String with" # if @options[:count] == 'a'..'z'
|
218
|
-
raise
|
225
|
+
raise MESSAGES[:bad_range_error] % [@options[:count].to_s]
|
219
226
|
end
|
220
227
|
rescue TypeError # fix for 1.8.7 for 'rescue ArgumentError, "comparison of String with"' stroke
|
221
|
-
raise
|
228
|
+
raise MESSAGES[:bad_range_error] % [@options[:count].to_s]
|
222
229
|
end
|
223
230
|
|
224
231
|
@options[:minimum] ||= @options.delete(:min)
|
@@ -266,7 +273,7 @@ module RSpec
|
|
266
273
|
def have_tag tag, options={}, &block
|
267
274
|
# for backwards compatibility with rpecs have tag:
|
268
275
|
options = { :text => options } if options.kind_of?(String) || options.kind_of?(Regexp)
|
269
|
-
@__current_scope_for_nokogiri_matcher =
|
276
|
+
@__current_scope_for_nokogiri_matcher = HaveTag.new(tag, options, &block)
|
270
277
|
end
|
271
278
|
|
272
279
|
def with_text text
|
@@ -552,3 +559,11 @@ module RSpec
|
|
552
559
|
|
553
560
|
end
|
554
561
|
end
|
562
|
+
|
563
|
+
if defined? Cucumber
|
564
|
+
World RSpec::HtmlMatchers
|
565
|
+
else
|
566
|
+
RSpec.configure do |config|
|
567
|
+
config.include(RSpec::HtmlMatchers)
|
568
|
+
end
|
569
|
+
end
|
data/spec/have_tag_spec.rb
CHANGED
@@ -264,7 +264,7 @@ describe 'have_tag' do
|
|
264
264
|
expect(rendered).to have_tag('div', :count => 2, :max => 1)
|
265
265
|
}.to raise_error(wrong_params_error_msg_1)
|
266
266
|
|
267
|
-
wrong_params_error_msg_2 = ':minimum
|
267
|
+
wrong_params_error_msg_2 = ':minimum should be less than :maximum!'
|
268
268
|
|
269
269
|
expect {
|
270
270
|
expect(rendered).to have_tag('div', :minimum => 2, :maximum => 1)
|
data/spec/spec_helper.rb
CHANGED
@@ -1,78 +1,13 @@
|
|
1
|
-
require 'rspec/core'
|
2
|
-
require 'rspec/expectations'
|
3
|
-
|
4
1
|
if defined?(SimpleCov)
|
5
2
|
SimpleCov.start do
|
6
3
|
add_group 'Main', '/lib/'
|
4
|
+
add_filter "/spec/"
|
7
5
|
end
|
8
6
|
end
|
9
7
|
|
10
8
|
require 'rspec-html-matchers'
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
ASSETS = File.expand_path('../fixtures/%s.html',__FILE__)
|
15
|
-
|
16
|
-
def asset name
|
17
|
-
asset_content = fixtures[name] ||= IO.read(ASSETS%name)
|
18
|
-
let(:rendered) { asset_content }
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def fixtures
|
24
|
-
@assets ||= {}
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
RSpec::Matchers.define :raise_spec_error do |expected_exception_msg|
|
30
|
-
define_method :actual_msg do
|
31
|
-
@actual_msg
|
32
|
-
end
|
33
|
-
|
34
|
-
define_method :catched_exception do
|
35
|
-
@catched_exception
|
36
|
-
end
|
37
|
-
|
38
|
-
match do |block|
|
39
|
-
begin
|
40
|
-
block.call
|
41
|
-
false
|
42
|
-
rescue RSpec::Expectations::ExpectationNotMetError => rspec_error
|
43
|
-
@actual_msg = rspec_error.message
|
44
|
-
|
45
|
-
case expected_exception_msg
|
46
|
-
when String
|
47
|
-
actual_msg == expected_exception_msg
|
48
|
-
when Regexp
|
49
|
-
actual_msg =~ expected_exception_msg
|
50
|
-
end
|
51
|
-
rescue StandardError => e
|
52
|
-
@catched_exception = e
|
53
|
-
false
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
failure_message_for_should do |block|
|
58
|
-
if actual_msg
|
59
|
-
<<MSG
|
60
|
-
expected RSpec::Expectations::ExpectationNotMetError with message:
|
61
|
-
#{expected_exception_msg}
|
62
|
-
|
63
|
-
got:
|
64
|
-
#{actual_msg}
|
65
|
-
|
66
|
-
Diff:
|
67
|
-
#{RSpec::Expectations::Differ.new.diff_as_string(actual_msg,expected_exception_msg.to_s)}
|
68
|
-
MSG
|
69
|
-
elsif catched_exception
|
70
|
-
"expected RSpec::Expectations::ExpectationNotMetError, but was #{catched_exception.inspect}"
|
71
|
-
else
|
72
|
-
"expected RSpec::Expectations::ExpectationNotMetError, but was no exception"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
10
|
+
Dir[File.expand_path("../../spec/support/**/*.rb",__FILE__)].each { |f| require f }
|
76
11
|
|
77
12
|
RSpec.configure do |config|
|
78
13
|
|
@@ -80,9 +15,7 @@ RSpec.configure do |config|
|
|
80
15
|
c.syntax = :expect
|
81
16
|
end
|
82
17
|
|
83
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
84
|
-
|
85
18
|
config.filter_run_excluding wip: true
|
86
19
|
|
87
|
-
config.extend
|
20
|
+
config.extend AssetHelpers
|
88
21
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
RSpec::Matchers.define :raise_spec_error do |expected_exception_msg|
|
2
|
+
define_method :actual_msg do
|
3
|
+
@actual_msg
|
4
|
+
end
|
5
|
+
|
6
|
+
define_method :catched_exception do
|
7
|
+
@catched_exception
|
8
|
+
end
|
9
|
+
|
10
|
+
match do |block|
|
11
|
+
begin
|
12
|
+
block.call
|
13
|
+
false
|
14
|
+
rescue RSpec::Expectations::ExpectationNotMetError => rspec_error
|
15
|
+
@actual_msg = rspec_error.message
|
16
|
+
|
17
|
+
case expected_exception_msg
|
18
|
+
when String
|
19
|
+
actual_msg == expected_exception_msg
|
20
|
+
when Regexp
|
21
|
+
actual_msg =~ expected_exception_msg
|
22
|
+
end
|
23
|
+
rescue StandardError => e
|
24
|
+
@catched_exception = e
|
25
|
+
false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
supports_block_expectations
|
30
|
+
|
31
|
+
failure_message do |block|
|
32
|
+
if actual_msg
|
33
|
+
<<MSG
|
34
|
+
expected RSpec::Expectations::ExpectationNotMetError with message:
|
35
|
+
#{expected_exception_msg}
|
36
|
+
|
37
|
+
got:
|
38
|
+
#{actual_msg}
|
39
|
+
|
40
|
+
Diff:
|
41
|
+
#{RSpec::Expectations::Differ.new.diff_as_string(actual_msg,expected_exception_msg.to_s)}
|
42
|
+
MSG
|
43
|
+
elsif catched_exception
|
44
|
+
"expected RSpec::Expectations::ExpectationNotMetError, but was #{catched_exception.inspect}"
|
45
|
+
else
|
46
|
+
"expected RSpec::Expectations::ExpectationNotMetError, but was no exception"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-html-matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kucaahbe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: 3.0.0.rc1
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2'
|
30
24
|
- - ">="
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: 3.0.0.rc1
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: nokogiri
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,6 +176,8 @@ files:
|
|
182
176
|
- spec/form_matchers_spec.rb
|
183
177
|
- spec/have_tag_spec.rb
|
184
178
|
- spec/spec_helper.rb
|
179
|
+
- spec/support/asset_helpers.rb
|
180
|
+
- spec/support/raise_spec_error_helper.rb
|
185
181
|
homepage: http://github.com/kucaahbe/rspec-html-matchers
|
186
182
|
licenses:
|
187
183
|
- MIT
|
@@ -211,16 +207,18 @@ signing_key:
|
|
211
207
|
specification_version: 4
|
212
208
|
summary: Nokogiri based 'have_tag' and 'with_tag' matchers for rspec 2.x.x
|
213
209
|
test_files:
|
210
|
+
- spec/support/asset_helpers.rb
|
211
|
+
- spec/support/raise_spec_error_helper.rb
|
214
212
|
- spec/spec_helper.rb
|
215
|
-
- spec/fixtures/paragraphs.html
|
216
213
|
- spec/fixtures/ordered_list.html
|
217
|
-
- spec/fixtures/
|
218
|
-
- spec/fixtures/single_element.html
|
214
|
+
- spec/fixtures/paragraphs.html
|
219
215
|
- spec/fixtures/quotes.html
|
220
|
-
- spec/fixtures/form.html
|
221
216
|
- spec/fixtures/special.html
|
217
|
+
- spec/fixtures/search_and_submit.html
|
218
|
+
- spec/fixtures/form.html
|
219
|
+
- spec/fixtures/single_element.html
|
222
220
|
- spec/have_tag_spec.rb
|
223
221
|
- spec/form_matchers_spec.rb
|
224
|
-
- features/step_definitions/steps.rb
|
225
|
-
- features/js_generated_content.feature
|
226
222
|
- features/support/env.rb
|
223
|
+
- features/js_generated_content.feature
|
224
|
+
- features/step_definitions/steps.rb
|