【发布时间】:2014-12-18 23:23:02
【问题描述】:
我有一些代码将 return_to URL 嵌入到我想要测试的重定向(如 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 的params 部分,然后在/&|?/ 上拆分它,然后在'=' 上再次拆分,但我希望这已经为我完成了。另外,如果我在 URL 转义或参数解析中遗漏了一些晦涩的规则怎么办? 必须在ActionPack 或ActiveSupport 中有一些东西可以做到这一点,但我找不到。
谢谢:)
【问题讨论】:
标签: ruby-on-rails ruby testing url parsing