Sha256: 91f4640445c9ddebb9f4b3948b99677f175ddb2736b0aae60b85eea604262eb4

Contents?: true

Size: 611 Bytes

Versions: 19

Compression:

Stored size: 611 Bytes

Contents

# frozen_string_literal: true

RSpec::Matchers.define :have_xpath do |xpath|
  match do |actual|
    xml_document(actual).xpath(xpath, Saml::Kit::Document::NAMESPACES).any?
  end

  failure_message do |actual|
    xml = xml_pretty_print(actual)
    "Expected xpath: #{xpath.inspect} to match in:\n #{xml}"
  end

  failure_message_when_negated do |actual|
    xml = xml_pretty_print(actual)
    "Expected xpath: #{xpath.inspect} not to match in:\n #{xml}"
  end

  def xml_pretty_print(raw_xml)
    xml_document(raw_xml).to_xml(indent: 2)
  end

  def xml_document(raw_xml)
    Nokogiri::XML(raw_xml)
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
saml-kit-1.3.0 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.2.0 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.1.0 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.31 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.30 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.29 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.28 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.27 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.26 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.25 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.24 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.23 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.22 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.21 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.20 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.19 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.18 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.17 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.16 lib/saml/kit/rspec/have_xpath.rb