diff --git a/lib/songkick/oauth2/provider/authorization.rb b/lib/songkick/oauth2/provider/authorization.rb index 6e75fd0c..b9c8a9fe 100644 --- a/lib/songkick/oauth2/provider/authorization.rb +++ b/lib/songkick/oauth2/provider/authorization.rb @@ -101,7 +101,7 @@ def redirect_uri else query = to_query_string(CODE, SCOPE, STATE) - "#{ base_redirect_uri }?#{ query }" + "#{ base_redirect_uri }#{ q }#{ query }" end end diff --git a/spec/songkick/oauth2/provider/authorization_spec.rb b/spec/songkick/oauth2/provider/authorization_spec.rb index 36dd6c8f..e259d87d 100644 --- a/spec/songkick/oauth2/provider/authorization_spec.rb +++ b/spec/songkick/oauth2/provider/authorization_spec.rb @@ -132,6 +132,17 @@ end end + describe "with a redirect_uri with parameters" do + before do + authorization.client.redirect_uri = "http://songkick.com?some_parameter" + params['redirect_uri'] = "http://songkick.com?some_parameter" + end + + it "adds the extra parameters with & instead of ?" do + authorization.redirect_uri.should == "http://songkick.com?some_parameter&" + end + end + # http://en.wikipedia.org/wiki/HTTP_response_splitting # scope and state values are passed back in the redirect