Check checkboxes
This commit is contained in:
parent
c2320a4f95
commit
91caa40326
|
@ -18,6 +18,8 @@ class Webcat::Driver::RackTest
|
|||
elsif tag_name == 'input' and type == 'radio'
|
||||
session.html.xpath("//input[@name='#{self[:name]}']").each { |node| node.remove_attribute("checked") }
|
||||
node['checked'] = 'checked'
|
||||
elsif tag_name == 'input' and type == 'checkbox'
|
||||
node['checked'] = 'checked'
|
||||
elsif tag_name == "textarea"
|
||||
node.content = value.to_s
|
||||
end
|
||||
|
|
|
@ -40,6 +40,10 @@ class Webcat::Session
|
|||
def set_hidden_field(locator, options={})
|
||||
find_field(locator, :hidden_field).set(options[:to])
|
||||
end
|
||||
|
||||
def check(locator)
|
||||
find_field(locator, :checkbox).set(true)
|
||||
end
|
||||
|
||||
def body
|
||||
driver.body
|
||||
|
@ -64,7 +68,8 @@ private
|
|||
:text_area => proc { |id| "//textarea[@id='#{id}']" },
|
||||
:password_field => proc { |id| "//input[@type='password'][@id='#{id}']" },
|
||||
:radio => proc { |id| "//input[@type='radio'][@id='#{id}']" },
|
||||
:hidden_field => proc { |id| "//input[@type='hidden'][@id='#{id}']" }
|
||||
:hidden_field => proc { |id| "//input[@type='hidden'][@id='#{id}']" },
|
||||
:checkbox => proc { |id| "//input[@type='checkbox'][@id='#{id}']" }
|
||||
}
|
||||
|
||||
def find_field_by_id(locator, *kinds)
|
||||
|
|
|
@ -206,7 +206,21 @@ shared_examples_for "session" do
|
|||
end
|
||||
|
||||
describe "#check" do
|
||||
|
||||
before do
|
||||
@session.visit('/form')
|
||||
end
|
||||
|
||||
it "should check a checkbox by id" do
|
||||
@session.check("form_pets_cat")
|
||||
@session.click_button('awesome')
|
||||
YAML.load(@session.body)['pets'].should include('dog', 'cat', 'hamster')
|
||||
end
|
||||
|
||||
it "should check a checkbox by label" do
|
||||
@session.check("Cat")
|
||||
@session.click_button('awesome')
|
||||
YAML.load(@session.body)['pets'].should include('dog', 'cat', 'hamster')
|
||||
end
|
||||
end
|
||||
|
||||
describe "#uncheck" do
|
||||
|
|
|
@ -68,12 +68,12 @@
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<input type="checkbox" value="dog" name="form[pets][]" id="pets_dog" checked="checked"/>
|
||||
<label for="pets_dog">Dog</label>
|
||||
<input type="checkbox" value="cat" name="form[pets][]" id="pets_cat"/>
|
||||
<label for="pets_cat">Cat</label>
|
||||
<input type="checkbox" value="hamster" name="form[pets][]" id="pets_hamster" checked="checked"/>
|
||||
<label for="pets_hamster">Hamster</label>
|
||||
<input type="checkbox" value="dog" name="form[pets][]" id="form_pets_dog" checked="checked"/>
|
||||
<label for="form_pets_dog">Dog</label>
|
||||
<input type="checkbox" value="cat" name="form[pets][]" id="form_pets_cat"/>
|
||||
<label for="form_pets_cat">Cat</label>
|
||||
<input type="checkbox" value="hamster" name="form[pets][]" id="form_pets_hamster" checked="checked"/>
|
||||
<label for="form_pets_hamster">Hamster</label>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
|
Loading…
Reference in New Issue