Merge branch 'select-by-regexp' of git://github.com/pd/webrat into pd/select-by-regexp

This commit is contained in:
Bryan Helmkamp 2008-04-13 17:40:40 -04:00
commit 06c7552f01
3 changed files with 34 additions and 2 deletions

View File

@ -2,6 +2,7 @@
* Enhancements * Enhancements
* Support matching select options by regexp (Patch from Kyle Hargraves)
* Support relative links, including href="?foo=bar" (Patch from Kyle Hargraves) * Support relative links, including href="?foo=bar" (Patch from Kyle Hargraves)
* Bug fixes * Bug fixes

View File

@ -7,7 +7,11 @@ module Webrat
end end
def matches_text?(text) def matches_text?(text)
@element.innerHTML == text.to_s if text.is_a?(Regexp)
@element.innerHTML =~ text
else
@element.innerHTML == text.to_s
end
end end
def choose def choose

View File

@ -108,4 +108,31 @@ class SelectsTest < Test::Unit::TestCase
@session.selects "January", :from => "month" @session.selects "January", :from => "month"
@session.clicks_button @session.clicks_button
end end
def test_should_find_option_by_regexp
@response.stubs(:body).returns(<<-EOS)
<form method="post" action="/login">
<select name="month"><option>January</option></select>
<input type="submit" />
</form>
EOS
@session.expects(:post_via_redirect).with("/login", "month" => "January")
@session.selects(/jan/i)
@session.clicks_button
end
def test_should_find_option_by_regexp_in_list_specified_by_label
@response.stubs(:body).returns(<<-EOS)
<form method="post" action="/login">
<label for="start_month">Start Month</label>
<select id="start_month" name="start_month"><option value="s1">January</option></select>
<label for="end_month">End Month</label>
<select id="end_month" name="end_month"><option value="e1">January</option></select>
<input type="submit" />
</form>
EOS
@session.expects(:post_via_redirect).with("/login", "start_month" => "s1", "end_month" => "e1")
@session.selects(/jan/i, :from => "End Month")
@session.clicks_button
end
end end