Sha256: 2eb27360325d950db8a1e640b011a28c010e743efd07bdde10e1cd17c2a51b25

Contents?: true

Size: 583 Bytes

Versions: 6

Compression:

Stored size: 583 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|
    "Expected xpath: #{xpath.inspect} to match in:\n #{xml_pretty_print(actual)}"
  end

  failure_message_when_negated do |actual|
    "Expected xpath: #{xpath.inspect} not to match in:\n #{xml_pretty_print(actual)}"
  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

6 entries across 6 versions & 1 rubygems

Version Path
saml-kit-1.0.15 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.14 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.13 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.12 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.11 lib/saml/kit/rspec/have_xpath.rb
saml-kit-1.0.10 lib/saml/kit/rspec/have_xpath.rb