When faced with a label with no for attribute, that contains a hidden field and another field, as can be the case in Rails 2.3's checkbox view, webrat now locates the non-hidden field.
This commit is contained in:
parent
740bb293e3
commit
72123c1cec
@ -2,6 +2,9 @@
|
||||
|
||||
* Minor enhancements
|
||||
|
||||
* When faced with a label with no for attribute, that contains a hidden field
|
||||
and another field, as can be the case in Rails 2.3's checkbox view,
|
||||
webrat now locates the non-hidden field. (Luke Melia)
|
||||
* When using Rails 2.3, use Rack::Utils to parse params (Matthew Ford)
|
||||
* Initial Merb and Sinatra compatibility for Selenium mode (Corey Donohoe)
|
||||
* Add application_framework config for Selenium mode to determine how to
|
||||
|
@ -16,6 +16,10 @@ module Webrat
|
||||
[".//button", ".//input", ".//textarea", ".//select"]
|
||||
end
|
||||
|
||||
def self.xpath_search_excluding_hidden
|
||||
[".//button", ".//input[ @type != 'hidden']", ".//textarea", ".//select"]
|
||||
end
|
||||
|
||||
def self.field_classes
|
||||
@field_classes || []
|
||||
end
|
||||
|
@ -21,7 +21,7 @@ module Webrat
|
||||
|
||||
def field_element
|
||||
if for_id.blank?
|
||||
Webrat::XML.xpath_at(@element, *Field.xpath_search)
|
||||
Webrat::XML.xpath_at(@element, *Field.xpath_search_excluding_hidden)
|
||||
else
|
||||
Webrat::XML.css_search(@session.current_dom, "#" + for_id).first
|
||||
end
|
||||
|
@ -169,4 +169,23 @@ describe "uncheck" do
|
||||
check 'Option 2'
|
||||
click_button
|
||||
end
|
||||
|
||||
it "should uncheck rails style checkboxes nested inside a label" do
|
||||
with_html <<-HTML
|
||||
<html>
|
||||
<form method="get" action="/login">
|
||||
<label>
|
||||
TOS
|
||||
<input name="user[tos]" type="hidden" value="0" />
|
||||
<input id="user_tos" name="user[tos]" type="checkbox" value="1" checked="checked" />
|
||||
</label>
|
||||
<input type="submit" />
|
||||
</form>
|
||||
</html>
|
||||
HTML
|
||||
webrat_session.should_receive(:get).with("/login", "user" => {"tos" => "0"})
|
||||
uncheck "TOS"
|
||||
click_button
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user