Revert "Add #select_date for quickly filling out Rails-style date fields (Alex Lang)"
This reverts commit 9671c4256c
.
Conflicts:
History.txt
This commit is contained in:
parent
f831b497f3
commit
d62d135777
@ -12,7 +12,6 @@
|
|||||||
* Minor enhancements
|
* Minor enhancements
|
||||||
|
|
||||||
* Add Webrat.root method for cross-framework support (Krzysztof Zylawy)
|
* Add Webrat.root method for cross-framework support (Krzysztof Zylawy)
|
||||||
* Add #select_date for quickly filling out Rails-style date fields (Alex Lang)
|
|
||||||
* Support selecting options by their values (Alex Lang)
|
* Support selecting options by their values (Alex Lang)
|
||||||
* Support for clicking areas of an image map (Alex Lang)
|
* Support for clicking areas of an image map (Alex Lang)
|
||||||
* Add should_see and should_not_see for verifying HTML response bodys
|
* Add should_see and should_not_see for verifying HTML response bodys
|
||||||
|
@ -17,12 +17,14 @@ module Webrat
|
|||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_select_option(option_text, field_name_pattern = nil)
|
def find_select_option(option_text)
|
||||||
select_fields = fields_by_type([SelectField])
|
select_fields = fields_by_type([SelectField])
|
||||||
select_fields.select{|field| field_name_pattern.nil? || field.matches_name?(field_name_pattern) || field.matches_id?(field_name_pattern)}.each do |select_field|
|
|
||||||
|
select_fields.each do |select_field|
|
||||||
result = select_field.find_option(option_text)
|
result = select_field.find_option(option_text)
|
||||||
return result if result
|
return result if result
|
||||||
end
|
end
|
||||||
|
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -12,22 +12,6 @@ module Webrat
|
|||||||
@selector = selector
|
@selector = selector
|
||||||
end
|
end
|
||||||
|
|
||||||
def selects_date(date_string, options = {})
|
|
||||||
id_or_name = options[:from]
|
|
||||||
date = Date.parse date_string
|
|
||||||
|
|
||||||
year_option = find_select_option(date.year.to_s, /#{id_or_name.to_s}.*1i/)
|
|
||||||
month_option = find_select_option(date.month.to_s, /#{id_or_name.to_s}.*2i/)
|
|
||||||
day_option = find_select_option(date.day.to_s, /#{id_or_name.to_s}.*3i/)
|
|
||||||
|
|
||||||
flunk("Could not find date picker for #{date_string}") if year_option.nil? || month_option.nil? || day_option.nil?
|
|
||||||
year_option.choose
|
|
||||||
month_option.choose
|
|
||||||
day_option.choose
|
|
||||||
end
|
|
||||||
|
|
||||||
alias_method :select_date, :selects_date
|
|
||||||
|
|
||||||
# Verifies an input field or textarea exists on the current page, and stores a value for
|
# Verifies an input field or textarea exists on the current page, and stores a value for
|
||||||
# it which will be sent when the form is submitted.
|
# it which will be sent when the form is submitted.
|
||||||
#
|
#
|
||||||
|
@ -151,7 +151,6 @@ module Webrat
|
|||||||
def_delegators :current_scope, :uncheck, :unchecks
|
def_delegators :current_scope, :uncheck, :unchecks
|
||||||
def_delegators :current_scope, :choose, :chooses
|
def_delegators :current_scope, :choose, :chooses
|
||||||
def_delegators :current_scope, :select, :selects
|
def_delegators :current_scope, :select, :selects
|
||||||
def_delegators :current_scope, :select_date, :selects_date
|
|
||||||
def_delegators :current_scope, :attach_file, :attaches_file
|
def_delegators :current_scope, :attach_file, :attaches_file
|
||||||
def_delegators :current_scope, :click_area, :clicks_area
|
def_delegators :current_scope, :click_area, :clicks_area
|
||||||
def_delegators :current_scope, :click_link, :clicks_link
|
def_delegators :current_scope, :click_link, :clicks_link
|
||||||
|
@ -1,111 +0,0 @@
|
|||||||
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
|
||||||
|
|
||||||
describe "date_selects" do
|
|
||||||
before do
|
|
||||||
@session = Webrat::TestSession.new
|
|
||||||
@example_date_select = <<-EOS
|
|
||||||
<form method="post" action="/login">
|
|
||||||
<label for="created_at">Created at</label><br />
|
|
||||||
<select id="created_at_1i" name="created_at(1i)">
|
|
||||||
<option value="2002">2002</option>
|
|
||||||
<option value="2003">2003</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_2i" name="created_at(2i)">
|
|
||||||
<option value="11">November</option>
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_3i" name="created_at(3i)">
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="2">2</option>
|
|
||||||
</select>
|
|
||||||
<input type="button" value="submit"/>
|
|
||||||
</form>
|
|
||||||
EOS
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
it "should fail if option not found" do
|
|
||||||
@session.response_body = @example_date_select
|
|
||||||
lambda { @session.selects_date "2008-07-13"}.should raise_error
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should fail if option not found in list specified by element name" do
|
|
||||||
@session.response_body = @example_date_select
|
|
||||||
lambda { @session.selects_date "2008-07-13", :from => "created_at" }.should raise_error
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should fail if specified list not found" do
|
|
||||||
@session.response_body = <<-EOS
|
|
||||||
<form method="get" action="/login">
|
|
||||||
<select name="month"><option value="1">January</option></select>
|
|
||||||
</form>
|
|
||||||
EOS
|
|
||||||
|
|
||||||
lambda { @session.selects_date "2003-12-01", :from => "created_at" }.should raise_error
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should send value from option" do
|
|
||||||
@session.response_body = <<-EOS
|
|
||||||
<form method="post" action="/login">
|
|
||||||
<label for="updated_at">Created at</label><br />
|
|
||||||
<select id="updated_at_1i" name="updated_at(1i)">
|
|
||||||
<option value=""></option>
|
|
||||||
<option value="2003">2003</option>
|
|
||||||
</select>
|
|
||||||
<select id="updated_at_2i" name="updated_at(2i)">
|
|
||||||
<option value=""></option>
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select id="updated_at_3i" name="updated_at(3i)">
|
|
||||||
<option value=""></option>
|
|
||||||
<option value="1">1</option>
|
|
||||||
</select>
|
|
||||||
<label for="created_at">Created at</label><br />
|
|
||||||
<select id="created_at_1i" name="created_at(1i)">
|
|
||||||
<option value="2003">2003</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_2i" name="created_at(2i)">
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_3i" name="created_at(3i)">
|
|
||||||
<option value="1">1</option>
|
|
||||||
</select>
|
|
||||||
<input type="button" value="submit"/>
|
|
||||||
</form>
|
|
||||||
EOS
|
|
||||||
@session.should_receive(:post).with("/login", "created_at(1i)" => "2003", 'created_at(2i)' => '12', 'created_at(3i)' => '1', "updated_at(1i)" => "", 'updated_at(2i)' => '', 'updated_at(3i)' => '')
|
|
||||||
@session.selects_date '2003-12-01', :from => "created_at"
|
|
||||||
@session.clicks_button
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should work without specifying the field name or label" do
|
|
||||||
@session.response_body = @example_date_select
|
|
||||||
@session.should_receive(:post).with("/login", "created_at(1i)" => "2003", 'created_at(2i)' => '12', 'created_at(3i)' => '1')
|
|
||||||
@session.selects_date '2003-12-01'
|
|
||||||
@session.clicks_button
|
|
||||||
end
|
|
||||||
|
|
||||||
it "should correctly set day and month when there are the same options available" do
|
|
||||||
@session.response_body = <<-EOS
|
|
||||||
<form method="post" action="/login">
|
|
||||||
<label for="created_at">Created at</label><br />
|
|
||||||
<select id="created_at_1i" name="created_at(1i)">
|
|
||||||
<option value="2003">2003</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_2i" name="created_at(2i)">
|
|
||||||
<option value="1">January</option>
|
|
||||||
<option value="12">December</option>
|
|
||||||
</select>
|
|
||||||
<select id="created_at_3i" name="created_at(3i)">
|
|
||||||
<option value="1">1</option>
|
|
||||||
<option value="12">12</option>
|
|
||||||
</select>
|
|
||||||
<input type="button" value="submit"/>
|
|
||||||
</form>
|
|
||||||
EOS
|
|
||||||
@session.should_receive(:post).with("/login", "created_at(1i)" => "2003", 'created_at(2i)' => '12', 'created_at(3i)' => '1')
|
|
||||||
@session.selects_date '2003-12-01'
|
|
||||||
@session.clicks_button
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user