Dans le cadre d'une API que je construis, il existe une méthode d'authentification utilisateur qui en cas de succès, retourne une charge utile d'informations utilisateur utiles, jeton API, etc.HTTP Test de base Auth dans Rails 2.2+
En écrivant fonctionnelle tests pour le contrôleur qui gère cela, je cours dans un problème de test HTTP Basic auth; J'ai trouvé de nombreux blogs qui mentionnent le code suivant doit être utilisé pour les en-têtes spoof pour une tentative d'authentification:
@request.env['HTTP_AUTHORIZATION'] = ActionController::HttpAuthentication::Basic.encode_credentials(email, pass)
Le problème est que cela n'a pas d'effet; authenticate_with_http_basic
ne voit pas les en-têtes et retourne donc faux même en présence d'informations d'identification valides.
Ai-je raté quelque chose?
Notez que l'application est gelée vers Rails 2.2.2 si cela est utile pour répondre.
Je veux juste noter que dans l'année 2011 et dans Rails 3. * le code que vous avez cité fonctionne parfaitement. – Arsen7