Properly handle multiline param values (previously, subsequent lines were lost)
This commit is contained in:
parent
ad06a777fb
commit
b0ef59f5ec
|
@ -139,7 +139,7 @@ module Webrat
|
||||||
end
|
end
|
||||||
|
|
||||||
def escaped_value
|
def escaped_value
|
||||||
CGI.escape([*@value].first.to_s)
|
CGI.escape(@value.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Because we have to escape it before sending it to the above case statement,
|
# Because we have to escape it before sending it to the above case statement,
|
||||||
|
@ -415,7 +415,7 @@ module Webrat
|
||||||
end
|
end
|
||||||
|
|
||||||
def unset(value)
|
def unset(value)
|
||||||
@value = []
|
@value = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
@ -427,17 +427,21 @@ module Webrat
|
||||||
selected_options.map do |option|
|
selected_options.map do |option|
|
||||||
return "" if option.nil?
|
return "" if option.nil?
|
||||||
option["value"] || option.inner_html
|
option["value"] || option.inner_html
|
||||||
end.uniq
|
end.uniq.first
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class MultipleSelectField < SelectField #:nodoc:
|
class MultipleSelectField < Field #:nodoc:
|
||||||
|
|
||||||
def self.xpath_search
|
def self.xpath_search
|
||||||
[".//select[@multiple='multiple']"]
|
[".//select[@multiple='multiple']"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def options
|
||||||
|
@options ||= SelectOption.load_all(@session, @element)
|
||||||
|
end
|
||||||
|
|
||||||
def set(value)
|
def set(value)
|
||||||
@value << value
|
@value << value
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,6 +15,21 @@ describe "fill_in" do
|
||||||
fill_in "User Text", :with => "filling text area"
|
fill_in "User Text", :with => "filling text area"
|
||||||
click_button
|
click_button
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should support multiline values" do
|
||||||
|
with_html <<-HTML
|
||||||
|
<html>
|
||||||
|
<form method="post" action="/login">
|
||||||
|
<label for="user_text">User Text</label>
|
||||||
|
<textarea id="user_text" name="user[text]"></textarea>
|
||||||
|
<input type="submit" />
|
||||||
|
</form>
|
||||||
|
</html>
|
||||||
|
HTML
|
||||||
|
webrat_session.should_receive(:post).with("/login", "user" => {"text" => "One\nTwo"})
|
||||||
|
fill_in "User Text", :with => "One\nTwo"
|
||||||
|
click_button
|
||||||
|
end
|
||||||
|
|
||||||
it "should work with password fields" do
|
it "should work with password fields" do
|
||||||
with_html <<-HTML
|
with_html <<-HTML
|
||||||
|
|
Loading…
Reference in New Issue