public function AuthcacheP13nTestFragmentBuilder::testFragmentBuilderAccessChecker in Authenticated User Page Caching (Authcache) 7.2
Test request with access checker.
File
- modules/
authcache_p13n/ tests/ authcache_p13n.request-handler.test, line 423 - Define unit tests for request handler.
Class
- AuthcacheP13nTestFragmentBuilder
- Tests fragment builder.
Code
public function testFragmentBuilderAccessChecker() {
global $user;
$orig_user = $user;
$fake_user = (object) array(
'uid' => 42,
'mail' => 'fake@example.com',
'name' => 'fake',
);
$context = array(
'some' => 'context',
);
// Setup expectations.
$check = $this->stubObserver
->method($this->fragmentAccess, 'check', TRUE)
->expect(AuthcacheP13nTestStubVerifyer::once())
->expect(AuthcacheP13nTestStubVerifyer::args(array(
$fake_user,
'some_key',
'some_subject',
$context,
)));
$render = $this->stubObserver
->method($this->fragmentRenderer, 'render', 'rendered')
->expect(AuthcacheP13nTestStubVerifyer::once())
->expect(AuthcacheP13nTestStubVerifyer::args(array(
'some_key',
'some_subject',
$context,
)));
// Run builder.
$user = $fake_user;
$input = array(
'a' => array(
'some_key' => 'some_subject',
),
);
$builder = new AuthcacheP13nFragmentBuilder($this->fragmentRenderer, NULL, NULL, $this->fragmentAccess);
$result = $builder
->build($input, $context);
$user = $orig_user;
// Verify stub.
$this
->assertEqual('rendered', $result);
$this
->assert($check
->verify($message), $message);
$this
->assert($render
->verify($message), $message);
// Setup expectations.
$check = $this->stubObserver
->method($this->fragmentAccess, 'check', FALSE)
->expect(AuthcacheP13nTestStubVerifyer::once())
->expect(AuthcacheP13nTestStubVerifyer::args(array(
$fake_user,
'some_key',
'some_subject',
$context,
)));
$render = $this->stubObserver
->method($this->fragmentRenderer, 'render')
->expect(AuthcacheP13nTestStubVerifyer::never());
// Run builder.
$user = $fake_user;
$input = array(
'a' => array(
'some_key' => 'some_subject',
),
);
$builder = new AuthcacheP13nFragmentBuilder($this->fragmentRenderer, NULL, NULL, $this->fragmentAccess);
try {
$builder
->build($input, $context);
$this
->fail('AuthcacheP13nFragmentBuilder should throw an AuthcacheP13nRequestAccessDenied when access check fails');
} catch (AuthcacheP13nRequestAccessDenied $e) {
unset($e);
$this
->pass('AuthcacheP13nFragmentBuilder should throw an AuthcacheP13nRequestAccessDenied when access check fails');
}
$user = $orig_user;
// Verify stub.
$this
->assert($check
->verify($message), $message);
$this
->assert($render
->verify($message), $message);
}