public function testCheckMessageOverride()
{
$request = new Request(array('params' => array('library' => 'test_library', 'controller' => 'test_controllers', 'action' => 'test_action')));
$guest = array();
$user = array('username' => 'test');
$request->data = $guest;
$expected = array('message' => 'Rule access denied message.', 'redirect' => '/');
$result = Access::check('test_message_override', $guest, $request, array('checkSession' => false));
$this->assertIdentical($expected, $result);
$request->data = $user;
$expected = array();
$result = Access::check('test_message_override', $user, $request, array('checkSession' => false, 'success' => 'true'));
$this->assertIdentical($expected, $result);
$request->params = array('controller' => 'test_controllers', 'action' => 'test_deinied_action');
$request->data = $guest;
$expected = array('message' => 'You are not permitted to access this area.', 'redirect' => '/');
$result = Access::check('test_message_override', $guest, $request, array('checkSession' => false));
$this->assertIdentical($expected, $result);
$request->data = $user;
$expected = array('message' => 'You are not permitted to access this area.', 'redirect' => '/');
$result = Access::check('test_message_override', $user, $request, array('checkSession' => false));
$this->assertIdentical($expected, $result);
$request->data = $user;
$expected = array('message' => 'Message override!', 'redirect' => '/new_redirect');
$result = Access::check('test_message_override', $user, $request, array('checkSession' => false, 'message' => 'Message override!', 'redirect' => '/new_redirect'));
$this->assertIdentical($expected, $result);
}