Sha256: e36ee8f9d6178c0f84747c0f33b19e72e1eba2e2ca0e1e5392281b19284f570c

Contents?: true

Size: 1.36 KB

Versions: 7

Compression:

Stored size: 1.36 KB

Contents

if ::ActionPack::VERSION::MAJOR == 4
  require 'test_xml/mini_test'
else
  require 'test_xml/test_unit'
end

module Roar
  module Rails
    module TestCase
      include TestXml::Assertions # FIXME: including from test_xml in MiniTest::Test doesn't work with rails 4.

      def get(action, *args)
        process(action, "GET", *args)
      end

      def post(action, *args)
        process(action, "POST", *args)
      end

      def put(action, *args)
        process(action, "PUT", *args)
      end

      def delete(action, *args)
        process(action, "DELETE", *args)
      end

      def process(action, http_method, document="", params={})
        if document.is_a?(Hash)
          params = document
          document = ""
        end

        request.env['RAW_POST_DATA'] = document

        super(*process_args(action, http_method, document, params))
      end

    private
      module ProcessArgs
        def process_args(*args) # TODO: remove when <= 3.1 support is dropped (in 2016).
          args
        end
      end
      include ProcessArgs
      include TestCase::VersionStrategy # overwrites #process_args for <= 3.1.


      module Assertions
        def assert_body(body, options={})
          return assert_xml_equal body, response.body if options[:xml]
          assert_equal body, response.body
        end
      end
      include Assertions
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
roar-rails-1.0.1 lib/roar/rails/test_case.rb
roar-rails-1.0.0 lib/roar/rails/test_case.rb
roar-rails-0.1.6 lib/roar/rails/test_case.rb
roar-rails-0.1.5 lib/roar/rails/test_case.rb
roar-rails-0.1.4 lib/roar/rails/test_case.rb
roar-rails-0.1.3 lib/roar/rails/test_case.rb
roar-rails-0.1.2 lib/roar/rails/test_case.rb