1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

Fix and specs for find_by_id; Moved DSL_METHODS to session where they are added.

This commit is contained in:
Lenny Marks 2009-12-29 22:05:38 -05:00
parent 741c153cb4
commit 2722b4257d
5 changed files with 31 additions and 10 deletions

View file

@ -46,15 +46,8 @@ module Capybara
Capybara.current_session
end
SESSION_METHODS = [
:visit, :current_url, :body, :click_link, :click_button, :drag, :fill_in,
:choose, :has_xpath?, :has_css?, :check, :uncheck, :attach_file, :select,
:has_content?, :within, :within_fieldset, :within_table,
:save_and_open_page, :find, :find_field, :find_link, :find_button,
:field_labeled, :all, :wait_for, :wait_for_condition, :evaluate_script,
:click, :wait_until
]
SESSION_METHODS.each do |method|
Session::DSL_METHODS.each do |method|
class_eval <<-RUBY, __FILE__, __LINE__+1
def #{method}(*args, &block)
page.#{method}(*args, &block)

View file

@ -36,7 +36,7 @@ module Capybara
end
def find_by_id(id)
find(Xpath.for_css("##{id}"))
find(XPath.for_css("##{id}"))
end
def all(locator, options = {})

View file

@ -2,6 +2,15 @@ module Capybara
class Session
include Searchable
DSL_METHODS = [
:visit, :current_url, :body, :click_link, :click_button, :drag, :fill_in,
:choose, :has_xpath?, :has_css?, :check, :uncheck, :attach_file, :select,
:has_content?, :within, :within_fieldset, :within_table,
:save_and_open_page, :find, :find_field, :find_link, :find_button, :find_by_id,
:field_labeled, :all, :wait_for, :wait_for_condition, :evaluate_script,
:click, :wait_until
]
attr_reader :mode, :app
def initialize(mode, app)

View file

@ -0,0 +1,18 @@
module FindByIdSpec
shared_examples_for "find_by_id" do
describe '#find_by_id' do
before do
@session.visit('/with_html')
end
it "should find any element by id" do
@session.find_by_id('red').tag_name.should == 'a'
@session.find_by_id('hidden_via_ancestor').tag_name.should == 'div'
end
it "should return nil if no element with id is found" do
@session.find_by_id('nothing_with_this_id').should be_nil
end
end
end
end

View file

@ -32,6 +32,7 @@ shared_examples_for "session" do
it_should_behave_like "find_button"
it_should_behave_like "find_field"
it_should_behave_like "find_link"
it_should_behave_like "find_by_id"
it_should_behave_like "find"
it_should_behave_like "has_content"
it_should_behave_like "has_css"