Estoy intentando escribir un escenario de Pepino que requiere que tenga un usuario conectado; eso sería bastante simple pero solo estoy usando Autenticación OpenID (curtosy del plugin de autenticación). Sin embargo, después de excavar las agallas de los complementos de open_id_authentication, no estoy seguro de cómo lograrlo dentro de Cucumber.¿Cómo falsifico el inicio de sesión de OpenID en la historia del usuario de RSpec?/Cucumber cuando uso el complemento open_id_authentication
Respuesta
que he descubierto una manera, si coloca esto en su características/soporte/env.rb:
ActionController::Base.class_eval do
private
def begin_open_id_authentication(identity_url, options = {})
yield OpenIdAuthentication::Result.new(:successful), identity_url, nil
end
end
continuación, sólo puede hacer algo como esto en su paso apropiado:
Given /^I am logged in as "(.*)"$/ do |name|
user = User.find_by_name(user)
post '/session', :openid_url => user.identity_url
# Some assertions just to make sure our hack in env.rb is still working
response.should redirect_to('/')
flash[:notice].should eql('Logged in successfully')
end
Estoy acabando completamente con la autenticación de identificación abierta para las funciones de pepino, obviamente, si necesito instancias en las que haya un inicio de sesión fallido, podría hacerlo en función de la identidad identificada.
respuesta de Defusion funciona excepto que necesitaba para normalizar la identity_url como:
ActionController::Base.class_eval do
private
def begin_open_id_authentication(identity_url, options = {})
yield OpenIdAuthentication::Result.new(:successful), self.normalize_identifier(identity_url), nil
end
end
Gracias
Bort, una aplicación de esqueleto carriles, tiene un conjunto completo de pruebas rspec y soporta entrada openID por lo que puede Quiero echar un vistazo y ver lo que hacen.
Si usted quiere ser capaz de apagar las respuestas de hacer esto:
En funciones/soporte/helpers.rb:
ActionController::Base.class_eval do
private
def fake_openid_response(identity_url)
[OpenIdAuthentication::Result.new(:successful), identity_url, nil]
end
def begin_open_id_authentication(identity_url, options = {})
yield fake_openid_response(identity_url)
end
end
Moviendo la respuesta a un método separado ahora se puede stub la respuesta en tus pasos si es necesario. Por ejemplo, si quisiera una: falta respuesta y tenía un controlador GoogleLoginController, podría hacer lo siguiente con Mocha:
GoogleLoginController.any_instance.stubs(:fake_openid_response)
.returns([OpenIdAuthentication::Result.new(:missing), identity_url, nil])
- 1. TYPO3 - Redirigiendo a la página de inicio de sesión cuando el usuario no ha iniciado sesión
- 2. No se puede abrir la base de datos solicitada por el inicio de sesión. El inicio de sesión falló. Falló el inicio de sesión para el usuario
- 3. Integración de openID y oauth como inicio de sesión del sitio web, inicio de sesión y sistema de autenticación
- 4. OpenID. Cómo cerrar sesión
- 5. El código de inicio de sesión de OpenID falla en el servidor activo
- 6. ¿Cómo debo probar el inicio de sesión/inicio de sesión del usuario con una biblioteca de terceros como Omniauth?
- 7. Cómo cambiar las URL de inicio de sesión y de registro en el complemento Rails3
- 8. Creación de un widget de inicio de sesión de OpenID
- 9. Ajax.ActionLink devuelve la página de inicio de sesión dentro de div cuando el usuario necesita iniciar sesión nuevamente
- 10. Verificar la clave privada del usuario para el inicio de sesión del sitio web
- 11. Django: ¿señal cuando el usuario inicia sesión?
- 12. ¿Cómo guardar el estado de inicio de sesión del usuario en Android?
- 13. ¿alguien puede explicar brevemente el inicio de sesión único? Quiero utilizar OpenID como SSO
- 14. cómo mostrar el nombre de usuario en el control de nombre de inicio de sesión
- 15. Inicio de sesión con OpenID en el servidor de desarrollo local para el motor de la aplicación Google
- 16. Lista de imágenes del logotipo del proveedor de OpenID y URL de inicio de sesión?
- 17. Cómo detener el inicio de sesión del usuario borrado suave con Devise
- 18. Remove "Inicio" -Actividad de la historia
- 19. permitiendo solo el inicio de sesión de súper usuario
- 20. ¿Cómo funciona el inicio de sesión único?
- 21. Obtener el directorio de inicio del usuario
- 22. ¿Cómo pruebo el inicio de sesión usando openid en Zend Framework?
- 23. Cómo obtener el SID de inicio de sesión en C#
- 24. No obteniendo la imagen del usuario con el inicio de sesión de google
- 25. Backbone.js - cómo manejar el "inicio de sesión"?
- 26. ¿Detecta cuando el usuario regresa del uso de EmailComposeTask?
- 27. ¿Cómo puedo crear un formulario de inicio de sesión de OpenID
- 28. Cómo evitar el inicio de sesión múltiple para el mismo usuario
- 29. ¿Cómo redirigir a la página de acceso de deseo del usuario después del inicio de sesión del usuario?
- 30. Google OpenID/inicio de sesión federado falla periódicamente