Rails 통합 테스트를 사용하기 위해 쿠키가 설정된 도메인을 확인할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1203605

문제

다음 기술을 사용하여 도메인에 와일드 카드 쿠키를 설정합니다.

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

그것은 편로 작동하는 것 같습니다. 불행히도 나는 해시의 '값'키와 관련된 값 외에는 쿠키 자르#[]에 전달 된 값을 찾을 수없는 것 같다. 상호 방법.

기능 테스트에서 쿠키가 설정된 도메인을 확인하는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

당신은 값을 확인할 수 있습니다 Set-Cookie 액세스 할 수있는 헤더 @response.headers['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 불행히도 방법. 에서 ActionController::Integration::Session#process 원천 (actionpack/lib/action_controller/integration.rb), 통합 테스트 쿠키는 다음과 같이 프로세스이며 value 입력 해시의 일부 :

(@headers['Set-Cookie'] || "").split("\n").each do |cookie|
  name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2]
  @cookies[name] = value
end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top