Sha256: 9de22f160345d608df6acd09062ec63df5eb6fdba325cd43b8251c075f520e0d

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'spec_helper'
require 'wash_out_fork/middleware'
require 'rexml/document'

describe WashOutFork::Middleware do
  it 'handles Rack environment variables' do
    err = begin
      REXML::Document.new '<hi>'
    rescue REXML::ParseException => e
      e
    end

    env = {}
    expect {
      WashOutFork::Middleware.raise_or_render_rexml_parse_error err, env
    }.to raise_exception(REXML::ParseException)

    env['HTTP_SOAPACTION'] = 'pretend_action'
    env['rack.errors'] = double 'logger', {:puts => true} 
    env['rack.input'] = double 'basic-rack-input', {:string => '<hi>'} 
    result = WashOutFork::Middleware.raise_or_render_rexml_parse_error err, env
    expect(result[0]).to eq 400
    expect(result[1]['Content-Type']).to eq 'text/xml'
    msg = result[2][0]
    expect(msg).to include 'Error parsing SOAP Request XML'
    expect(msg).to include 'soap:Fault'
    expect(msg).not_to include __FILE__
    
    env['rack.input'] = double 'passenger-input', {:read => '<hi>'}
    result = WashOutFork::Middleware.raise_or_render_rexml_parse_error err, env
    expect(result[0]).to eq 400
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wash_out_fork-0.0.1 spec/lib/wash_out/middleware_spec.rb