./test/functional/resolve_controller_test.rb in umlaut-3.1.0 vs ./test/functional/resolve_controller_test.rb in umlaut-3.1.1

- old
+ new

@@ -1,17 +1,22 @@ # encoding: UTF-8 require 'test_helper' + +require 'uri' +require 'rack/utils' + class ResolveControllerTest < ActionController::TestCase extend TestWithCassette fixtures :requests, :referents, :referent_values, :dispatched_services, :service_responses setup do @controller = ResolveController.new end test_with_cassette("nytimes by issn", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do - get :index, "umlaut.request_id" => 80 + umlaut_request = requests(:nytimes) + get :index, "umlaut.request_id" => umlaut_request.id assert_response :success assert_select "title", "Find It | The New York times" assert_select "h1", "Find It" assert_select "h2.title", "The New York times" @@ -67,9 +72,26 @@ assert_equal 1, sections.size sections.each do |section| assert_select section, ".response_list", 1 end end + end + + test_with_cassette("POSTed OpenURL redirects to GET", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do + # an actual post request Gale GREENr was sending us + pparams = {"genre"=>"article", "sid"=>"gale:GRNR", "__char_set"=>"utf8", "spage"=>"138", "issn"=>"0016-7398", "issue"=>"2", "pid"=>"info:sid/gale:ugnid:balt85423", "date"=>"2010", "aulast"=>"Hedley, Peter J.", "au"=>"Hedley, Peter J.", "atitle"=>"Evolution of the Irrawaddy delta region since 1850.(Report)", "title"=>"The Geographical Journal", "aufirst"=>"Hedley, Peter J.", "volume"=>"176"} + post(:index, pparams) + + assert_response :redirect + + redirect_uri = URI.parse(@response.redirect_url) + + assert_equal "/resolve", redirect_uri.path + + # Redirected params is a subset of pparams, pparams can have extra + # stuff maybe, we don't care. + redirected_params = Rack::Utils.parse_nested_query redirect_uri.query + assert (redirected_params.to_a - pparams.to_a).empty?, "Redirected params include all of original POSTed params" end test_with_cassette("fulltext with edition warning", :resolve, :match_requests_on => [:method, :uri_without_ctx_tim]) do umlaut_request = requests(:momo) get(:index, {'umlaut.request_id' => umlaut_request.id}) \ No newline at end of file