2009-07-29 1 views
1

私は、私たちのドメインのワイルドカードのクッキーを設定するには、以下の技術を使用しています:Railsの統合テストを使用してCookieが設定されたドメインを確認することはできますか?

cookies['root_domain_flash_warning'] = { 
    'value' => 'mistakes have been made!', 
    'domain' => ".#{APP_DOMAIN}", 
    'expires' => 2.minutes.from_now 
} 

手近に動作するように思われます。残念ながら、CookieJar#[] =に渡されたハッシュの 'value'キーに関連付けられた値は、CookieJar#[]が実際にそのオプションに渡されたオプションハッシュを返さないため相反法。

誰かが機能テストでクッキーが設定されているドメインを確認する方法を知っていますか?

答えて

0

@response.headers['Set-Cookie']にアクセスできるSet-Cookieヘッダーの値を確認できます。

は、これらの線に沿って何かを試してみてください:

def test_something 
    get '/my_action' 
    assert_equal ["root_domain_flash_warning=mistakes+have+been+made!; domain=.mydomain.com; path=/; expires=Fri, 07-Aug-2009 11:42:21 GMT"], @response.headers['Set-Cookie'] 
end 

あなたは、残念ながら、cookies方法から、これらの値を抽出することはできません。

(@headers['Set-Cookie'] || "").split("\n").each do |cookie| 
    name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2] 
    @cookies[name] = value 
end 
:のみ入力ハッシュの value一部を抽出 ActionController::Integration::Session#processソース( actionpack/lib/action_controller/integration.rb)、統合テストクッキーがプロセスは、以下の通りで
関連する問題