rspec-html-matchers 0.7.1 → 0.7.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: 8be66d725f89beeac9807e254253f19f9a4f9309
4
- data.tar.gz: 0652146df0dca81d60e2f1b420660ebcc0307d8a
3
+ metadata.gz: be58541a3ca3493891f55b4edfb8d92aeec1bb70
4
+ data.tar.gz: 6496944bc83e1fde56b17327e42bebaf95f2e926
5
5
  SHA512:
6
- metadata.gz: 134663281de1d4af000d01ecd68eee731941e1f20c132f0a9e1fb4a3294dc0968f34dceb701ff836c907a664a95cf561bcd2692537afd67fe688d5bd5bdf1f5e
7
- data.tar.gz: 599a0dd8096dbc6c1e19d8524d8b81351e1c37386a84a9dde242af9769e00d1a5066fbce7692df9e7030008c5dd525ab2aa855665404cf3343ef3d5295b39686
6
+ metadata.gz: 31cf7e98ae6ce59d5a01c9ebf18aa4f142d1d87840c07baeb4ec6663f2d2caa95a740d542a2b2034e53e0a773a5011cb8645adcb4e56bb4bbca9eb001d1de4bd
7
+ data.tar.gz: b1d6768ffd9475d0aded6f7205a5aa8ff377eb01b6963c826c81853419c86558d7190c805902074c7349aebb4397160f42925b20d221d76ca9936afc04b9128e
@@ -11,6 +11,12 @@ unreleased(TODO)
11
11
  * order matching
12
12
  * improve documentation, add more usage examples (look at changelog and code!)
13
13
 
14
+ 0.7.2
15
+ -----
16
+
17
+ * add support for `frozen_string_literals`
18
+ * fix for rdoc links and not only
19
+
14
20
  0.7.1
15
21
  -----
16
22
 
data/README.md CHANGED
@@ -14,9 +14,9 @@ Goals
14
14
  * [matchers provided out of the box in rspec-rails](https://www.relishapp.com/rspec/rspec-rails/v/2-11/docs/view-specs/view-spec)
15
15
  * [matchers provided by capybara](http://rdoc.info/github/jnicklas/capybara/Capybara/Node/Matchers)
16
16
  * developer-firendly output in error messages
17
- * built on top of [nokogiri](nokogiri.org)
17
+ * built on top of [nokogiri](http://www.nokogiri.org/)
18
18
  * has support for [capybara](https://github.com/jnicklas/capybara), see below
19
- * syntax is similar to [have_tag](http://old.rspec.info/rails/writing/views.html) matcher from old-school rspec-rails, but with own syntactic sugar
19
+ * syntax is similar to have_tag matcher from rspec-rails 1.x, but with own syntactic sugar
20
20
  * framework agnostic, as input should be String(or capybara's page, see below)
21
21
 
22
22
  Install
@@ -85,7 +85,7 @@ expect(rendered).to have_tag('form', :with => { :action => '/users', :method =>
85
85
  end
86
86
  ```
87
87
 
88
- Example about should be self-descriptive, but if not refer to [have_tag](http://rdoc.info/github/kucaahbe/rspec-html-matchers/RSpec/Matchers:have_tag) documentation
88
+ Example about should be self-descriptive, if not, please refer to [have_tag](http://www.rubydoc.info/gems/rspec-html-matchers/RSpecHtmlMatchers%3Ahave_tag) documentation
89
89
 
90
90
  Input could be any html string. Let's take a look at these examples:
91
91
 
@@ -166,25 +166,26 @@ where `page` is an instance of Capybara::Session
166
166
 
167
167
  * also included shorthand matchers for form inputs:
168
168
 
169
- - [have\_form](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:have_form)
170
- - [with\_checkbox](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_checkbox)
171
- - [with\_email\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_email_field)
172
- - [with\_file\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_file_field)
173
- - [with\_hidden\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_hidden_field)
174
- - [with\_option](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_option)
175
- - [with\_password_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_password_field)
176
- - [with\_radio\_button](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_radio_button)
177
- - [with\_button](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_button)
178
- - [with\_select](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_select)
179
- - [with\_submit](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_submit)
180
- - [with\_text\_area](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_text_area)
181
- - [with\_text\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_text_field)
182
- - [with\_url\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_url_field)
183
- - [with\_number\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_number_field)
184
- - [with\_range\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_range_field)
185
- - [with\_date\_field](http://rdoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers:with_date_field)
186
-
187
- and of course you can use the `without_` matchers (see the documentation).
169
+ - have\_form
170
+ - with\_checkbox
171
+ - with\_email\_field
172
+ - with\_file\_field
173
+ - with\_hidden\_field
174
+ - with\_option
175
+ - with\_password\_field
176
+ - with\_radio\_button
177
+ - with\_button
178
+ - with\_select
179
+ - with\_submit
180
+ - with\_text\_area
181
+ - with\_text\_field
182
+ - with\_url\_field
183
+ - with\_number\_field
184
+ - with\_range\_field
185
+ - with\_date\_field
186
+
187
+ and of course you can use the `without_` matchers,
188
+ for more info take a look at [documentation](http://www.rubydoc.info/gems/rspec-html-matchers/RSpecHtmlMatchers)
188
189
 
189
190
  ### rspec 1 partial backwards compatibility:
190
191
 
@@ -200,9 +201,9 @@ expect(response).to have_tag('div', /regexp matching expected content/)
200
201
  More info
201
202
  ---------
202
203
 
203
- You can find more on [RubyDoc](http://rubydoc.info/github/kucaahbe/rspec-html-matchers/master/RSpec/Matchers), take a look at [have_tag](http://rdoc.info/github/kucaahbe/rspec-html-matchers/RSpec/Matchers#have_tag-instance_method) method.
204
+ You can find more on [documentation](http://www.rubydoc.info/gems/rspec-html-matchers/RSpecHtmlMatchers)
204
205
 
205
- Also, please read [CHANGELOG](https://github.com/kucaahbe/rspec-html-matchers/blob/master/CHANGELOG.md), it might be helpful.
206
+ Also, please read [CHANGELOG](https://github.com/kucaahbe/rspec-html-matchers/blob/master/CHANGELOG.md) and [issues](https://github.com/kucaahbe/rspec-html-matchers/issues), might be helpful.
206
207
 
207
208
  Contribution
208
209
  ============
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # encoding: UTF-8
2
3
  require 'rspec'
3
4
  require 'nokogiri'
@@ -79,18 +80,18 @@ module RSpecHtmlMatchers
79
80
 
80
81
  if with_attrs = @options.delete(:with)
81
82
  if classes = with_attrs.delete(:class)
82
- @tag << '.' + classes_to_selector(classes)
83
+ @tag += '.' + classes_to_selector(classes)
83
84
  end
84
85
  selector = with_attrs.inject('') do |html_attrs_string, (k, v)|
85
- html_attrs_string << "[#{k}='#{v}']"
86
+ html_attrs_string += "[#{k}='#{v}']"
86
87
  html_attrs_string
87
88
  end
88
- @tag << selector
89
+ @tag += selector
89
90
  end
90
91
 
91
92
  if without_attrs = @options.delete(:without)
92
93
  if classes = without_attrs.delete(:class)
93
- @tag << ":not(.#{classes_to_selector(classes)})"
94
+ @tag += ":not(.#{classes_to_selector(classes)})"
94
95
  end
95
96
  end
96
97
 
@@ -275,6 +276,10 @@ module RSpecHtmlMatchers
275
276
  @__current_scope_for_nokogiri_matcher = HaveTag.new(tag, options, &block)
276
277
  end
277
278
 
279
+ def have_empty_tag tag, options={}
280
+ have_tag(tag, options.merge(text: ""))
281
+ end
282
+
278
283
  def with_text text
279
284
  raise StandardError, 'this matcher should be used inside "have_tag" matcher block' unless defined?(@__current_scope_for_nokogiri_matcher)
280
285
  raise ArgumentError, 'this matcher does not accept block' if block_given?
@@ -315,13 +320,13 @@ module RSpecHtmlMatchers
315
320
  def have_form action_url, method, options={}, &block
316
321
  options[:with] ||= {}
317
322
  id = options[:with].delete(:id)
318
- tag = 'form'; tag << '#'+id if id
323
+ tag = 'form'; tag += '#'+id if id
319
324
  options[:with].merge!(:action => action_url)
320
325
  options[:with].merge!(:method => method.to_s)
321
326
  have_tag tag, options, &block
322
327
  end
323
328
 
324
- #TODO fix code duplications
329
+ #@TODO fix code duplications
325
330
 
326
331
  def with_hidden_field name, value=nil
327
332
  options = form_tag_options('hidden',name,value)
@@ -403,8 +408,8 @@ module RSpecHtmlMatchers
403
408
  should_not_have_input(options)
404
409
  end
405
410
 
406
- # TODO add ability to explicitly say that value should be empty
407
411
  def with_password_field name, value=nil
412
+ # TODO add ability to explicitly say that value should be empty
408
413
  options = form_tag_options('password',name,value)
409
414
  should_have_input(options)
410
415
  end
@@ -424,13 +429,15 @@ module RSpecHtmlMatchers
424
429
  should_not_have_input(options)
425
430
  end
426
431
 
427
- def with_text_area name#TODO, text=nil
432
+ def with_text_area name
433
+ # TODO, should be: with_text_area name, text=nil
428
434
  #options = form_tag_options('text',name,value)
429
435
  options = { :with => { :name => name } }
430
436
  expect(@__current_scope_for_nokogiri_matcher).to have_tag('textarea', options)
431
437
  end
432
438
 
433
- def without_text_area name#TODO, text=nil
439
+ def without_text_area name
440
+ # TODO, should be: without_text_area name, text=nil
434
441
  #options = form_tag_options('text',name,value)
435
442
  options = { :with => { :name => name } }
436
443
  expect(@__current_scope_for_nokogiri_matcher).to_not have_tag('textarea', options)
@@ -459,7 +466,7 @@ module RSpecHtmlMatchers
459
466
  def with_select name, options={}, &block
460
467
  options[:with] ||= {}
461
468
  id = options[:with].delete(:id)
462
- tag='select'; tag << '#'+id if id
469
+ tag='select'; tag += '#'+id if id
463
470
  options[:with].merge!(:name => name)
464
471
  expect(@__current_scope_for_nokogiri_matcher).to have_tag(tag, options, &block)
465
472
  end
@@ -467,7 +474,7 @@ module RSpecHtmlMatchers
467
474
  def without_select name, options={}, &block
468
475
  options[:with] ||= {}
469
476
  id = options[:with].delete(:id)
470
- tag='select'; tag << '#'+id if id
477
+ tag='select'; tag += '#'+id if id
471
478
  options[:with].merge!(:name => name)
472
479
  expect(@__current_scope_for_nokogiri_matcher).to_not have_tag(tag, options, &block)
473
480
  end
@@ -0,0 +1,29 @@
1
+ # encoding: UTF-8
2
+ require 'spec_helper'
3
+
4
+ describe 'have_empty_tag' do
5
+ context 'when single element' do
6
+ asset 'single_element'
7
+
8
+ it { expect(rendered).to have_empty_tag('div') }
9
+ it { expect(rendered).to have_empty_tag('div', class: "foo") }
10
+ it { expect(rendered).to have_empty_tag('div', class: "bar") }
11
+ it { expect(rendered).to have_empty_tag('div', class: "foo bar") }
12
+ end
13
+
14
+ context 'when paragraphs' do
15
+ asset 'paragraphs'
16
+
17
+ it { expect(rendered).to_not have_empty_tag('p') }
18
+ end
19
+
20
+ context 'when ordered list' do
21
+ asset 'ordered_list'
22
+
23
+ it { expect(rendered).to_not have_empty_tag('html') }
24
+ it { expect(rendered).to_not have_empty_tag('body') }
25
+ it { expect(rendered).to_not have_empty_tag('ol') }
26
+ it { expect(rendered).to_not have_empty_tag('ol', class: 'menu') }
27
+ it { expect(rendered).to_not have_empty_tag('li') }
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-html-matchers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kucaahbe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-17 00:00:00.000000000 Z
11
+ date: 2016-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -142,6 +142,20 @@ dependencies:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
144
  version: '1'
145
+ - !ruby/object:Gem::Dependency
146
+ name: yard
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
145
159
  description: 'Nokogiri based ''have_tag'' and ''with_tag'' matchers for rspec 3. Does
146
160
  not depend on assert_select matcher, provides useful error messages.
147
161
 
@@ -161,6 +175,7 @@ files:
161
175
  - features/support/env.rb
162
176
  - lib/rspec-html-matchers.rb
163
177
  - spec/form_matchers_spec.rb
178
+ - spec/have_empty_tag_spec.rb
164
179
  - spec/have_tag_spec.rb
165
180
  - spec/spec_helper.rb
166
181
  - spec/support/asset_helpers.rb
@@ -191,6 +206,7 @@ specification_version: 4
191
206
  summary: Nokogiri based 'have_tag' and 'with_tag' matchers for rspec 3
192
207
  test_files:
193
208
  - spec/form_matchers_spec.rb
209
+ - spec/have_empty_tag_spec.rb
194
210
  - spec/have_tag_spec.rb
195
211
  - spec/spec_helper.rb
196
212
  - spec/support/asset_helpers.rb
@@ -198,3 +214,4 @@ test_files:
198
214
  - features/step_definitions/steps.rb
199
215
  - features/support/env.rb
200
216
  - features/js_generated_content.feature
217
+ has_rdoc: