1.20.x views_access.test ViewsAccessTest::testDynamicAccessPlugin()

Tests dynamic access plugin.

File

modules/views/tests/views_access.test, line 124
Definition of ViewsAccessTest.

Class

ViewsAccessTest
Basic test for pluggable access.

Code

function testDynamicAccessPlugin() {
  $view = $this->view_access_dynamic();
  $argument1 = $this->randomName();
  $argument2 = $this->randomName();
  state_set('test_dynamic_access_argument1', $argument1);
  state_set('test_dynamic_access_argument2', $argument2);

  $view->set_display('default');
  $access_plugin = $view->display_handler->get_plugin('access');

  $this->assertFalse($access_plugin->access($this->normal_user));

  $access_plugin->options['access'] = TRUE;
  $this->assertFalse($access_plugin->access($this->normal_user));

  $view->set_arguments(array($argument1, $argument2));
  $this->assertTrue($access_plugin->access($this->normal_user));

  // FALSE comes from hook_menu caching.
  $expected_hook_menu = array(
    'views_test_test_dynamic_access_callback', array(FALSE, 1, 2)
  );
  $hook_menu = $view->execute_hook_menu('page_1');
  $this->assertEqual($expected_hook_menu, $hook_menu['test_access_dynamic']['access arguments'][0]);

  $expected_hook_menu = array(
    'views_test_test_dynamic_access_callback', array(TRUE, 1, 2)
  );
  $this->assertTrue(views_access($expected_hook_menu, $argument1, $argument2));
}