У меня есть код, который вставляет 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
Это рельсы ActionController::TestCase
, поэтому я имею доступ ко всем типам вспомогательных методов; Я просто не могу найти правильный.
Конечно, я мог бы использовать URI.parse
, чтобы получить часть параметров URL, а затем разделить его на /&|?/
, а затем снова разделить на '='
, но я надеюсь, что это уже сделано для меня. Кроме того, что, если я пропущу какое-то неясное правило в экранировании URL-адресов или синтаксическом анализе параметров? Для этого нужно что-то в ActionPack
или ActiveSupport
, но я не могу его найти.
Спасибо:)