class GovukAbTesting::AcceptanceTests::Capybara

Attributes

capybara_page[R]
request_headers[R]

Public Class Methods

new(scope) click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 6
def initialize(scope)
  unless scope.respond_to?(:page)
    raise "Page is not defined, are you using capybara?"
  end

  @capybara_page = scope.page
  @request_headers = {}
end

Public Instance Methods

analytics_meta_tags() click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 34
def analytics_meta_tags
  tags = capybara_page.all(ANALYTICS_META_TAG_SELECTOR, visible: :all)

  tags.map do |tag|
    MetaTag.new(
      content: tag["content"],
      dimension: tag["data-analytics-dimension"],
    )
  end
end
analytics_meta_tags_for_test(ab_test_name) click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 30
def analytics_meta_tags_for_test(ab_test_name)
  analytics_meta_tags.select { |tag| tag.for_ab_test?(ab_test_name) }
end
request() click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 15
def request
  @capybara_page
end
set_header(name, value) click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 19
def set_header(name, value)
  capybara_page.driver.options[:headers] ||= {}
  capybara_page.driver.options[:headers][name] = value
  capybara_page.driver.header(name, value)
  @request_headers[name] = value
end
vary_header(*) click to toggle source
# File lib/govuk_ab_testing/acceptance_tests/capybara.rb, line 26
def vary_header(*)
  capybara_page.response_headers["Vary"]
end