mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
41 lines
1.1 KiB
Ruby
41 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
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, nil, options.fetch(:exact, false))
|
|
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, :exact]
|
|
end
|
|
end
|
|
end
|
|
end
|