'Contextual links example functionality', 'description' => 'Tests the behavior of the contextual links provided by the Contextual links example module.', 'group' => 'Examples', ); } /** * Enable modules and create user with specific permissions. */ public function setUp() { parent::setUp('contextual', 'contextual_links_example'); $this->webUser = $this->drupalCreateUser(array('access contextual links', 'administer blocks')); $this->drupalLogin($this->webUser); } /** * Test the various contextual links that this module defines and displays. */ public function testContextualLinksExample() { // Create a node and promote it to the front page. Then view the front page // and verify that the "Example action" contextual link works. $node = $this->drupalCreateNode(array('type' => 'page', 'promote' => 1)); $this->drupalGet(''); $this->clickLink(t('Example action')); $this->assertUrl('node/' . $node->nid . '/example-action', array('query' => array('destination' => 'node'))); // Visit our example overview page and click the third contextual link. // This should take us to a page for editing the third object we defined. $this->drupalGet('examples/contextual-links'); $this->clickLink('Edit object', 2); $this->assertUrl('examples/contextual-links/3/edit', array('query' => array('destination' => 'examples/contextual-links'))); // Enable our module's block, go back to the front page, and click the // "Edit object" contextual link that we expect to be there. $edit['blocks[contextual_links_example_example][region]'] = 'sidebar_first'; $this->drupalPost('admin/structure/block', $edit, t('Save blocks')); $this->drupalGet(''); $this->clickLink('Edit object'); $this->assertUrl('examples/contextual-links/1/edit', array('query' => array('destination' => 'node'))); } }