Skip to content

Commit

Permalink
Move error raise into query
Browse files Browse the repository at this point in the history
  • Loading branch information
jnicklas committed Feb 1, 2012
1 parent 4c1b124 commit c7367c0
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 12 deletions.
8 changes: 1 addition & 7 deletions lib/capybara/node/finders.rb
Expand Up @@ -27,7 +27,7 @@ def find(*args)
query = query(*args)
synchronize do
results = resolve(query)
raise_find_error(query) unless results.length == 1
query.raise_error!(:find, results) unless results.length == 1
results.first
end
end
Expand Down Expand Up @@ -143,12 +143,6 @@ def resolve(query)
end.select { |node| query.matches_filters?(node) }
end
end

protected

def raise_find_error(query)
raise Capybara::ElementNotFound, query.failure_message(:find, self)
end
end
end
end
11 changes: 8 additions & 3 deletions lib/capybara/query.rb
@@ -1,8 +1,9 @@
module Capybara
class Query
attr_accessor :selector, :locator, :options, :xpath
attr_accessor :node, :selector, :locator, :options, :xpath

def initialize(node, *args)
@node = node
@options = if args.last.is_a?(Hash) then args.pop.dup else {} end
unless options.has_key?(:visible)
@options[:visible] = Capybara.ignore_hidden_elements
Expand All @@ -20,7 +21,7 @@ def initialize(node, *args)
@xpath = @selector.call(@locator).to_s
end

def failure_message(type, node)
def failure_message(type)
message = selector.failure_message.call(node, self) if selector.failure_message
message ||= options[:message]
if type == :assert
Expand All @@ -31,7 +32,7 @@ def failure_message(type, node)
message
end

def negative_failure_message(type, node)
def negative_failure_message(type)
"expected #{description} not to return anything"
end

Expand All @@ -55,6 +56,10 @@ def matches_filters?(node)
true
end

def raise_error!(type, results)
raise Capybara::ElementNotFound, failure_message(type)
end

def matches_count?(nodes)
case
when nodes.empty?
Expand Down
4 changes: 2 additions & 2 deletions lib/capybara/rspec/matchers.rb
Expand Up @@ -16,11 +16,11 @@ def does_not_match?(actual)
end

def failure_message_for_should
query.failure_message(:assert, @actual)
query.failure_message(:assert)
end

def failure_message_for_should_not
query.negative_failure_message(:assert, @actual)
query.negative_failure_message(:assert)
end

def description
Expand Down

0 comments on commit c7367c0

Please sign in to comment.