misd / mock-raven-service-bundle
提供模拟Raven服务的控制器,允许应用程序功能测试登录过程
Requires
- php: >=5.3.3
- ext-openssl: *
- symfony/framework-bundle: ~2.1
Requires (Dev)
- phpunit/phpunit: 3.7.*
- symfony/browser-kit: ~2.1
- symfony/class-loader: ~2.1
- symfony/finder: ~2.1
- symfony/yaml: ~2.1
This package is auto-updated.
Last update: 2024-09-11 00:05:17 UTC
README
提供模拟Raven服务的控制器,允许应用程序功能测试登录过程。
作者
- Chris Wilkinson chris.wilkinson@admin.cam.ac.uk
需求
安装
-
将捆绑包添加到您的开发依赖项
// composer.json { // ... "require-dev": { // ... "misd/mock-raven-service-bundle": "~1.0@dev" } }
-
使用Composer下载并安装捆绑包
$ php composer.phar update misd/mock-raven-service-bundle
-
在应用程序的测试环境中注册捆绑包
// app/AppKernel.php class AppKernel extends Kernel { // ... public function registerBundles() { // ... if ('test' === $this->getEnvironment()) { $bundles[] = new Misd\MockRavenServiceBundle\MisdMockRavenServiceBundle(); } // ... } // ... }
-
将捆绑包的路由添加到您的测试路由配置
// app/routing_test.yml misd_mock_raven_service: resource: "@MisdMockRavenServiceBundle/Resources/config/routing.yml"
-
确保模拟Raven服务路径未加密
// app/security.yml mock_raven_service: pattern: ^/auth/authenticate.html security: false
如果您使用misd/raven-bundle,请确保您的测试环境使用Raven测试服务
// app/config_test.yml
misd_raven:
use_test_service: true
用法
默认情况下,捆绑包将看到用户已登录到Raven,CRSid为'test0001'。
例如,在一个扩展Symfony\Bundle\FrameworkBundle\Test\WebTestCase
的测试用例中运行
$client = static::createClient();
$client->followRedirects();
$client->request('GET', '/secured-page');
将返回成功的Raven登录响应。如果您使用misd/raven-bundle,Raven响应将为您处理。
自定义Raven服务响应
在发出请求之前,通过设置next_wls_response
会话属性为一个Misd\MockRavenServiceBundle\WlsResponse\WlsResponseInterface
的实例来控制模拟Raven服务返回的响应。例如
use Misd\MockRavenServiceBundle\WlsResponse\AuthenticationCancelledWlsResponse;
$client = static::createClient();
$client->followRedirects();
$client->getContainer()->get('session')->set('next_wls_response', new AuthenticationCancelledWlsResponse());
$client->request('GET', '/secured_path');
可用的实现包括
Misd\MockRavenServiceBundle\WlsResponse\AuthenticationCancelled
:一个“410 用户取消了身份验证请求”响应。
Misd\MockRavenServiceBundle\WlsResponse\AuthenticationDeclined
:一个“570 身份验证被拒绝”响应。
Misd\MockRavenServiceBundle\WlsResponse\GeneralRequestParameterError
:一个“530 通用请求参数错误”响应。
Misd\MockRavenServiceBundle\WlsResponse\InteractionWouldBeRequired
:一个“540 需要交互”响应。
Misd\MockRavenServiceBundle\WlsResponse\NoMutuallyAcceptableAuthenticationTypesAvailable
:一个“510 没有可接受的互认身份验证类型”响应。
Misd\MockRavenServiceBundle\WlsResponse\SuccessfulAuthentication
:一个“200 成功身份验证”响应。
Misd\MockRavenServiceBundle\WlsResponse\UnsupportedProtocolVersion
:一个“520 不支持的协议版本”响应。
Misd\MockRavenServiceBundle\WlsResponse\WaaNotAuthorised
:一个“560 WAA 未授权”响应。
还有指示响应损坏的实现
Misd\MockRavenServiceBundle\WlsResponse\Invalid\Expired
:一个带有过期问题日期的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\Incomplete
:一个不完整的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\Invalid
:一个无效的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\UndefinedStatusCode
:一个带有无效状态码的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\WrongAuth
:一个带有无效“auth”参数的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\WrongKid
:一个带有无效“kid”参数的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\WrongSso
:一个带有无效“sso”参数的响应。
Misd\MockRavenServiceBundle\WlsResponse\Invalid\WrongUrl
:一个带有不同URL的响应。