Allows passing options through has_checked_field? and has_unchecked_field? to has_selector?
This enables assertions on the presence of disabled checked fields by doing: assert has_checked_field?('Disabled Checkbox', :disabled => true) in a similar way to: find_field("Disabled Checkbox", :disabled => true)
This commit is contained in:
parent
1273f519d5
commit
c6687efbfe
|
@ -345,8 +345,8 @@ module Capybara
|
|||
# @param [String] locator The label, name or id of a checked field
|
||||
# @return [Boolean] Whether it exists
|
||||
#
|
||||
def has_checked_field?(locator)
|
||||
has_selector?(:field, locator, :checked => true)
|
||||
def has_checked_field?(locator, options={})
|
||||
has_selector?(:field, locator, options.merge(:checked => true))
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -358,8 +358,8 @@ module Capybara
|
|||
# @param [String] locator The label, name or id of a checked field
|
||||
# @return [Boolean] Whether it doesn't exist
|
||||
#
|
||||
def has_no_checked_field?(locator)
|
||||
has_no_selector?(:field, locator, :checked => true)
|
||||
def has_no_checked_field?(locator, options={})
|
||||
has_no_selector?(:field, locator, options.merge(:checked => true))
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -371,8 +371,8 @@ module Capybara
|
|||
# @param [String] locator The label, name or id of an unchecked field
|
||||
# @return [Boolean] Whether it exists
|
||||
#
|
||||
def has_unchecked_field?(locator)
|
||||
has_selector?(:field, locator, :unchecked => true)
|
||||
def has_unchecked_field?(locator, options={})
|
||||
has_selector?(:field, locator, options.merge(:unchecked => true))
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -384,8 +384,8 @@ module Capybara
|
|||
# @param [String] locator The label, name or id of an unchecked field
|
||||
# @return [Boolean] Whether it doesn't exist
|
||||
#
|
||||
def has_no_unchecked_field?(locator)
|
||||
has_no_selector?(:field, locator, :unchecked => true)
|
||||
def has_no_unchecked_field?(locator, options={})
|
||||
has_no_selector?(:field, locator, options.merge(:unchecked => true))
|
||||
end
|
||||
|
||||
##
|
||||
|
|
|
@ -134,12 +134,12 @@ module Capybara
|
|||
HaveSelector.new(:field, locator, options)
|
||||
end
|
||||
|
||||
def have_checked_field(locator)
|
||||
HaveSelector.new(:field, locator, :checked => true)
|
||||
def have_checked_field(locator, options={})
|
||||
HaveSelector.new(:field, locator, options.merge(:checked => true))
|
||||
end
|
||||
|
||||
def have_unchecked_field(locator)
|
||||
HaveSelector.new(:field, locator, :unchecked => true)
|
||||
def have_unchecked_field(locator, options={})
|
||||
HaveSelector.new(:field, locator, options.merge(:unchecked => true))
|
||||
end
|
||||
|
||||
def have_select(locator, options={})
|
||||
|
|
|
@ -121,6 +121,10 @@ Capybara::SpecHelper.spec '#has_checked_field?' do
|
|||
@session.should have_checked_field('Hamster')
|
||||
end
|
||||
|
||||
it "should be true for disabled checkboxes if :disabled => true" do
|
||||
@session.should have_checked_field('Disabled Checkbox', :disabled => true)
|
||||
end
|
||||
|
||||
it "should be false if an unchecked field is on the page" do
|
||||
@session.should_not have_checked_field('form_pets_cat')
|
||||
@session.should_not have_checked_field('Male')
|
||||
|
@ -130,6 +134,14 @@ Capybara::SpecHelper.spec '#has_checked_field?' do
|
|||
@session.should_not have_checked_field('Does Not Exist')
|
||||
end
|
||||
|
||||
it "should be false for disabled checkboxes by default" do
|
||||
@session.should_not have_checked_field('Disabled Checkbox')
|
||||
end
|
||||
|
||||
it "should be false for disabled checkboxes if :disabled => false" do
|
||||
@session.should_not have_checked_field('Disabled Checkbox', :disabled => false)
|
||||
end
|
||||
|
||||
it "should be true after an unchecked checkbox is checked" do
|
||||
@session.check('form_pets_cat')
|
||||
@session.should have_checked_field('form_pets_cat')
|
||||
|
@ -159,6 +171,10 @@ Capybara::SpecHelper.spec '#has_no_checked_field?' do
|
|||
@session.should_not have_no_checked_field('Hamster')
|
||||
end
|
||||
|
||||
it "should be false for disabled checkboxes if :disabled => true" do
|
||||
@session.should_not have_no_checked_field('Disabled Checkbox', :disabled => true)
|
||||
end
|
||||
|
||||
it "should be true if an unchecked field is on the page" do
|
||||
@session.should have_no_checked_field('form_pets_cat')
|
||||
@session.should have_no_checked_field('Male')
|
||||
|
@ -167,6 +183,14 @@ Capybara::SpecHelper.spec '#has_no_checked_field?' do
|
|||
it "should be true if no field is on the page" do
|
||||
@session.should have_no_checked_field('Does Not Exist')
|
||||
end
|
||||
|
||||
it "should be true for disabled checkboxes by default" do
|
||||
@session.should have_no_checked_field('Disabled Checkbox')
|
||||
end
|
||||
|
||||
it "should be true for disabled checkboxes if :disabled => false" do
|
||||
@session.should have_no_checked_field('Disabled Checkbox', :disabled => false)
|
||||
end
|
||||
end
|
||||
|
||||
Capybara::SpecHelper.spec '#has_unchecked_field?' do
|
||||
|
@ -182,10 +206,22 @@ Capybara::SpecHelper.spec '#has_unchecked_field?' do
|
|||
@session.should have_unchecked_field('Male')
|
||||
end
|
||||
|
||||
it "should be true for disabled unchecked fields if :disabled => true" do
|
||||
@session.should have_unchecked_field('Disabled Unchecked Checkbox', :disabled => true)
|
||||
end
|
||||
|
||||
it "should be false if no field is on the page" do
|
||||
@session.should_not have_unchecked_field('Does Not Exist')
|
||||
end
|
||||
|
||||
it "should be false for disabled unchecked fields by default" do
|
||||
@session.should_not have_unchecked_field('Disabled Unchecked Checkbox')
|
||||
end
|
||||
|
||||
it "should be false for disabled unchecked fields if :disabled => false" do
|
||||
@session.should_not have_unchecked_field('Disabled Unchecked Checkbox', :disabled => false)
|
||||
end
|
||||
|
||||
it "should be false after an unchecked checkbox is checked" do
|
||||
@session.check('form_pets_cat')
|
||||
@session.should_not have_unchecked_field('form_pets_cat')
|
||||
|
@ -220,7 +256,19 @@ Capybara::SpecHelper.spec '#has_no_unchecked_field?' do
|
|||
@session.should_not have_no_unchecked_field('Male')
|
||||
end
|
||||
|
||||
it "should be false for disabled unchecked fields if :disabled => true" do
|
||||
@session.should_not have_no_unchecked_field('Disabled Unchecked Checkbox', :disabled => true)
|
||||
end
|
||||
|
||||
it "should be true if no field is on the page" do
|
||||
@session.should have_no_unchecked_field('Does Not Exist')
|
||||
end
|
||||
|
||||
it "should be true for disabled unchecked fields by default" do
|
||||
@session.should have_no_unchecked_field('Disabled Unchecked Checkbox')
|
||||
end
|
||||
|
||||
it "should be true for disabled unchecked fields if :disabled => false" do
|
||||
@session.should have_no_unchecked_field('Disabled Unchecked Checkbox', :disabled => false)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -135,7 +135,7 @@
|
|||
<label for="form_description">Description</label></br>
|
||||
<textarea name="form[description]" id="form_description">Descriptive text goes here</textarea>
|
||||
<p>
|
||||
|
||||
|
||||
<p>
|
||||
<label for="form_newline">NewLine</label></br>
|
||||
<textarea name="form[newline]" id="form_newline">
|
||||
|
@ -242,6 +242,13 @@ New line after and before textarea tag
|
|||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="form_disabled_unchecked_checkbox">
|
||||
Disabled Unchecked Checkbox
|
||||
<input type="checkbox" name="form[disabled_unchecked_checkbox]" value="Should not see me" id="form_disabled_unchecked_checkbox" disabled="disabled" />
|
||||
</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label for="form_disabled_radio">
|
||||
Disabled Radio
|
||||
|
|
Loading…
Reference in New Issue