You are here

public function AuthcacheP13nTestDefaultRequestHandler::testDefaultRequestHandlerWithResponseFilter in Authenticated User Page Caching (Authcache) 7.2

Test handler with response filter.

File

modules/authcache_p13n/tests/authcache_p13n.request-handler.test, line 157
Define unit tests for request handler.

Class

AuthcacheP13nTestDefaultRequestHandler
Test cases for default request handler.

Code

public function testDefaultRequestHandlerWithResponseFilter() {
  $filters = array(
    'response' => array(
      new AuthcacheP13nTestFilterStub($this->stubObserver),
      new AuthcacheP13nTestFilterStub($this->stubObserver),
    ),
  );
  $context_providers = array();
  $params = array(
    'some' => 'args',
  );

  // Setup expectations.
  $encode = $this->stubObserver
    ->method($this->contentEncoder, 'encode', 'encoded output')
    ->expect(AuthcacheP13nTestStubVerifyer::once());
  $first_filter = $this->stubObserver
    ->method($filters['response'][0], 'filter', 'output after first filter')
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    'response',
    'encoded output',
  )));
  $second_filter = $this->stubObserver
    ->method($filters['response'][1], 'filter', 'output after second filter')
    ->expect(AuthcacheP13nTestStubVerifyer::once())
    ->expect(AuthcacheP13nTestStubVerifyer::args(array(
    'response',
    'output after first filter',
  )));

  // Run handler.
  $handler = new AuthcacheP13nDefaultRequestHandler($this->coreService, $this->requestValidator, $this->contentBuilder, $this->contentEncoder, $filters, $context_providers);
  ob_start();
  $handler
    ->handle($params);
  $result = ob_get_clean();
  $this
    ->assertEqual('output after second filter', $result);

  // Verify stubs.
  $this
    ->assert($encode
    ->verify($message), $message);
  $this
    ->assert($first_filter
    ->verify($message), $message);
  $this
    ->assert($second_filter
    ->verify($message), $message);
}