Est-il possible de vérifier le domaine qu'un cookie a été configuré pour utiliser les tests d'intégration Rails?

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

Question

J'utilise la technique suivante pour définir un cookie générique pour notre domaine:

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

Ce qui semble fonctionner facilement. Malheureusement, je n'arrive pas à chercher quoi que ce soit, mais la valeur associée à la clé 'value' dans le hachage transmis à CookieJar # [] = en raison du fait que CookieJar # [] ne renvoie pas réellement le hachage des options passé à son méthode réciproque.

Quelqu'un connaît-il un moyen de vérifier le domaine pour lequel un cookie a été défini lors d'un test fonctionnel?

Était-ce utile?

La solution

Vous pouvez vérifier la valeur de l'en-tête Set-Cookie accessible dans @ response.headers ['Set-Cookie'] .

Essayez quelque chose dans ce sens:

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

Malheureusement, vous ne pouvez pas extraire ces valeurs de la méthode cookies . Dans la source ActionController :: Integration :: Session # process ( actionpack / lib / action_controller / integration.rb ), les cookies de test d'intégration sont des processus décrits ci-dessous, que seuls extraits. la partie valeur du hachage d'entrée:

(@headers['Set-Cookie'] || "").split("\n").each do |cookie|
  name, value = cookie.match(/^([^=]*)=([^;]*);/)[1,2]
  @cookies[name] = value
end
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top