1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00
teamcapybara--capybara/lib/capybara/queries/title_query.rb
Andrey Botalov 06c4955e56 Use diffferent queries for searching
* Add assert_text, assert_no_text, assert_title, assert_no_title
* Refactor query resolving
* Improve failure messages for have_text, have_title RSpec matchers (they will be the same as for added assert_* methods)
* Add Simple#inspect
2014-07-01 23:13:45 +03:00

40 lines
1,021 B
Ruby

module Capybara
# @api private
module Queries
class TitleQuery < BaseQuery
def initialize(expected_title, options = {})
@expected_title = expected_title
@options = options
unless @expected_title.is_a?(Regexp)
@expected_title = Capybara::Helpers.normalize_whitespace(@expected_title)
end
@search_regexp = Capybara::Helpers.to_regexp(@expected_title)
assert_valid_keys
end
def resolves_for?(node)
@actual_title = node.title
@actual_title.match(@search_regexp)
end
def failure_message
failure_message_helper
end
def negative_failure_message
failure_message_helper(' not')
end
private
def failure_message_helper(negated = '')
verb = (@expected_title.is_a?(Regexp))? 'match' : 'include'
"expected #{@actual_title.inspect}#{negated} to #{verb} #{@expected_title.inspect}"
end
def valid_keys
[:wait]
end
end
end
end