./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