misd/mock-raven-service-bundle

提供模拟Raven服务的控制器,允许应用程序功能测试登录过程

dev-master / 1.0.x-dev 2013-06-17 11:05 UTC

This package is auto-updated.

Last update: 2024-09-11 00:05:17 UTC


README

Build Status

提供模拟Raven服务的控制器,允许应用程序功能测试登录过程。

作者

需求

安装

  1. 将捆绑包添加到您的开发依赖项

    // composer.json
    
    {
       // ...
       "require-dev": {
           // ...
           "misd/mock-raven-service-bundle": "~1.0@dev"
       }
    }
    
  2. 使用Composer下载并安装捆绑包

    $ php composer.phar update misd/mock-raven-service-bundle
    
  3. 在应用程序的测试环境中注册捆绑包

    // app/AppKernel.php
    
    class AppKernel extends Kernel
    {
        // ...
        public function registerBundles()
        {
            // ...
            if ('test' === $this->getEnvironment()) {
                $bundles[] = new Misd\MockRavenServiceBundle\MisdMockRavenServiceBundle();
            }
            // ...
        }
        // ...
    }
    
  4. 将捆绑包的路由添加到您的测试路由配置

    // app/routing_test.yml
    
    misd_mock_raven_service:
        resource: "@MisdMockRavenServiceBundle/Resources/config/routing.yml"
    
  5. 确保模拟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的响应。