all_unfiltered is no longer needed

This commit is contained in:
Jonas Nicklas 2010-07-10 01:58:34 +02:00
parent 789f5c71b2
commit 9ba7998a5b
6 changed files with 17 additions and 33 deletions

View File

@ -1,13 +1,4 @@
module Capybara module Capybara
class Document < Node class Document < Node
def initialize(session)
@session = session
end
def all_unfiltered(locator)
XPath.wrap(locator).paths.map do |path|
driver.find(path)
end.flatten
end
end end
end end

View File

@ -77,9 +77,7 @@ class Capybara::Driver::Celerity < Capybara::Driver::Base
node.fire_event(event.to_s) node.fire_event(event.to_s)
end end
private def find(locator)
def all_unfiltered(locator)
noko_node = Nokogiri::HTML(driver.body).xpath(node.xpath).first noko_node = Nokogiri::HTML(driver.body).xpath(node.xpath).first
all_nodes = noko_node.xpath(locator).map { |n| n.path }.join(' | ') all_nodes = noko_node.xpath(locator).map { |n| n.path }.join(' | ')
driver.find(all_nodes) driver.find(all_nodes)

View File

@ -73,12 +73,12 @@ class Capybara::Driver::Selenium < Capybara::Driver::Base
node.displayed? and node.displayed? != "false" node.displayed? and node.displayed? != "false"
end end
private def find(locator)
def all_unfiltered(locator)
node.find_elements(:xpath, locator).map { |n| self.class.new(driver, n) } node.find_elements(:xpath, locator).map { |n| self.class.new(driver, n) }
end end
private
def type def type
self[:type] self[:type]
end end

View File

@ -1,24 +1,12 @@
module Capybara module Capybara
class Element < Node class Element < Node
def initialize(session, driver_node) # TODO: maybe we should explicitely delegate?
@session = session
@driver_node = driver_node
end
def method_missing(*args) def method_missing(*args)
@driver_node.send(*args) @base.send(*args)
end end
def respond_to?(method) def respond_to?(method)
super || @driver_node.respond_to?(method) super || @base.respond_to?(method)
end
protected
def all_unfiltered(locator)
XPath.wrap(locator).paths.map do |path|
@driver_node.find(path)
end.flatten
end end
end end
end end

View File

@ -1,6 +1,11 @@
module Capybara module Capybara
class Node class Node
attr_reader :session attr_reader :session, :base
def initialize(session, base)
@session = session
@base = base
end
def click_link_or_button(locator) def click_link_or_button(locator)
msg = "no link or button '#{locator}' found" msg = "no link or button '#{locator}' found"
@ -189,7 +194,9 @@ module Capybara
end end
locator = XPath.from_css(locator) if kind == :css locator = XPath.from_css(locator) if kind == :css
results = all_unfiltered(locator) results = XPath.wrap(locator).paths.map do |path|
base.find(path)
end.flatten
if options[:text] if options[:text]

View File

@ -41,7 +41,7 @@ module Capybara
def_delegator :driver, :source def_delegator :driver, :source
def document def document
Capybara::Document.new(self) Capybara::Document.new(self, driver)
end end
def method_missing(*args) def method_missing(*args)