You are here

SilexApplicationTest.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/stack/builder/tests/functional/SilexApplicationTest.php

Namespace

functional

File

vendor/stack/builder/tests/functional/SilexApplicationTest.php
View source
<?php

namespace functional;

use Silex\Application;
use Stack\Builder;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
class SilexApplicationTest extends \PHPUnit_Framework_TestCase {
  public function testWithAppendMiddlewares() {
    $app = new Application();
    $app
      ->get('/foo', function () {
      return 'bar';
    });
    $finished = false;
    $app
      ->finish(function () use (&$finished) {
      $finished = true;
    });
    $stack = new Builder();
    $stack
      ->push('functional\\Append', '.A')
      ->push('functional\\Append', '.B');
    $app = $stack
      ->resolve($app);
    $request = Request::create('/foo');
    $response = $app
      ->handle($request);
    $app
      ->terminate($request, $response);
    $this
      ->assertSame('bar.B.A', $response
      ->getContent());
    $this
      ->assertTrue($finished);
  }

}
class Append implements HttpKernelInterface {
  private $app;
  private $appendix;
  public function __construct(HttpKernelInterface $app, $appendix) {
    $this->app = $app;
    $this->appendix = $appendix;
  }
  public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) {
    $response = clone $this->app
      ->handle($request, $type, $catch);
    $response
      ->setContent($response
      ->getContent() . $this->appendix);
    return $response;
  }

}

Classes