¿Es posible verificar el dominio para el que se configuró una cookie para usar las pruebas de integración de Rails?

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

Pregunta

Estoy usando la siguiente técnica para configurar una cookie comodín para nuestro dominio:

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

Que parece funcionar fácilmente. Desafortunadamente, parece que no puedo buscar nada más que el valor asociado con la clave 'value' en el hash pasado a CookieJar # [] = debido al hecho de que CookieJar # [] en realidad no devuelve el hash de opciones pasado a su método recíproco.

¿Alguien sabe de una forma de verificar el dominio para el que se ha establecido una cookie en una prueba funcional?

¿Fue útil?

Solución

Puede verificar el valor del encabezado Set-Cookie al que se puede acceder en @ response.headers ['Set-Cookie'] .

Pruebe algo en este sentido:

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

Desafortunadamente, no puede extraer estos valores del método cookies . En la fuente ActionController :: Integration :: Session # process ( actionpack / lib / action_controller / Integration.rb ), las cookies de prueba de integración son procesos que se detallan a continuación, que solo extrae la parte value del hash de entrada:

(@headers['Set-Cookie'] || "").split("\n").each do |cookie|
  name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2]
  @cookies[name] = value
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top