Skip to content

Commit

Permalink
Update for latest xpath gem
Browse files Browse the repository at this point in the history
  • Loading branch information
jnicklas committed Oct 6, 2010
1 parent c67dceb commit b9dadbb
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 10 deletions.
7 changes: 4 additions & 3 deletions Gemfile.lock
Expand Up @@ -9,7 +9,7 @@ PATH
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (>= 0.0.27)
xpath (>= 0.1.0)
xpath (~> 0.1.1)

GEM
remote: http://rubygems.org/
Expand Down Expand Up @@ -51,7 +51,8 @@ GEM
sinatra (1.0)
rack (>= 1.0)
weakling (0.0.4-java)
xpath (0.1.0)
xpath (0.1.1)
nokogiri (~> 1.3)
yard (0.6.1)

PLATFORMS
Expand All @@ -70,5 +71,5 @@ DEPENDENCIES
rspec (>= 2.0.0.beta.22)
selenium-webdriver (>= 0.0.27)
sinatra (>= 0.9.4)
xpath (>= 0.1.0)
xpath (~> 0.1.1)
yard (>= 0.5.8)
2 changes: 1 addition & 1 deletion capybara.gemspec
Expand Up @@ -29,7 +29,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency("selenium-webdriver", [">= 0.0.27"])
s.add_runtime_dependency("rack", [">= 1.0.0"])
s.add_runtime_dependency("rack-test", [">= 0.5.4"])
s.add_runtime_dependency("xpath", [">= 0.1.0"])
s.add_runtime_dependency("xpath", ["~> 0.1.1"])

s.add_development_dependency("sinatra", [">= 0.9.4"])
s.add_development_dependency("rspec", [">= 2.0.0.beta.22"])
Expand Down
3 changes: 1 addition & 2 deletions lib/capybara/node/finders.rb
Expand Up @@ -122,8 +122,7 @@ def find_by_id(id)
def all(*args)
options = if args.last.is_a?(Hash) then args.pop else {} end

selector = Capybara::Selector.normalize(*args)
results = XPath::HTML.wrap(selector).map do |path|
results = Capybara::Selector.normalize(*args).map do |path|
base.find(path)
end.flatten

Expand Down
4 changes: 2 additions & 2 deletions lib/capybara/node/matchers.rb
Expand Up @@ -91,7 +91,7 @@ def has_no_xpath?(path, options={})
# @return [Boolean] If the selector exists
#
def has_css?(path, options={})
has_xpath?(XPath::HTML.from_css(path), options)
has_xpath?(XPath.css(path), options)
end

##
Expand All @@ -103,7 +103,7 @@ def has_css?(path, options={})
# @return [Boolean]
#
def has_no_css?(path, options={})
has_no_xpath?(XPath::HTML.from_css(path), options)
has_no_xpath?(XPath.css(path), options)
end

##
Expand Down
9 changes: 7 additions & 2 deletions lib/capybara/selector.rb
Expand Up @@ -16,13 +16,18 @@ def remove(name)
end

def normalize(name_or_locator, locator=nil)
if locator
xpath = if locator
all[name_or_locator.to_sym].call(locator)
else
selector = all.values.find { |s| s.match?(name_or_locator) }
selector ||= all[Capybara.default_selector]
selector.call(name_or_locator)
end
if xpath.respond_to?(:to_xpaths)
xpath.to_xpaths
else
[xpath.to_s].flatten
end
end
end

Expand All @@ -43,5 +48,5 @@ def match?(locator)
end

Capybara::Selector.add(:xpath) { |xpath| xpath }
Capybara::Selector.add(:css) { |css| XPath::HTML.from_css(css) }
Capybara::Selector.add(:css) { |css| XPath.css(css) }
Capybara::Selector.add(:id, :for => Symbol) { |id| XPath.descendant(:*)[XPath.attr(:id) == id.to_s] }

0 comments on commit b9dadbb

Please sign in to comment.