У меня есть некоторый код, который вставляет URL return_to
в редирект (например, OpenID), который я хочу проверить:
def test_uses_referrer_for_return_to
expected_return_to = 'http://test.com/foo'
@request.env['HTTP_REFERER'] = expected_return_to
get :fazbot
# @response.redirected_to looks like http://service.com?...&return_to=[URI-encoded version of URL above]&...
encoded_return_to = (something_here)[:return_to]
assert_equal expected_return_to, URI.unencode(encoded_return_to)
end
Это Rails ActionController::TestCase
, поэтому у меня есть доступ ко всем видам вспомогательных методов; Я просто не могу найти правильный.
Конечно, я мог бы использовать URI.parse
, чтобы получить часть параметров URL-адреса, затем разделить ее на /&|?/
, а затем снова разделить на '='
, но я надеюсь, что это уже сделано для меня. Кроме того, что если я пропущу какое-то непонятное правило в экранировании URL или разборе параметров? Там имеет , чтобы быть в ActionPack
или ActiveSupport
, чтобы сделать это, но я не могу найти это.
Спасибо:)