Chris@17: drupalCreateContentType([ Chris@17: 'type' => 'page', Chris@17: 'name' => 'Basic page', Chris@17: 'display_submitted' => FALSE, Chris@17: ]); Chris@17: Chris@17: // Create initial node. Chris@17: $node = $this->drupalCreateNode(); Chris@17: Chris@17: $nodes = []; Chris@17: Chris@17: // Get original node. Chris@17: $nodes[] = clone $node; Chris@17: Chris@17: // Create two revisions. Chris@17: $revision_count = 2; Chris@17: for ($i = 0; $i < $revision_count; $i++) { Chris@17: Chris@17: // Create revision with a random title and body and update variables. Chris@17: $node->title = $this->randomMachineName(); Chris@17: $node->body = [ Chris@17: 'value' => $this->randomMachineName(32), Chris@17: 'format' => filter_default_format(), Chris@17: ]; Chris@17: $node->setNewRevision(); Chris@17: Chris@17: $node->save(); Chris@17: Chris@17: // Make sure we get revision information. Chris@17: $node = Node::load($node->id()); Chris@17: $nodes[] = clone $node; Chris@17: } Chris@17: Chris@17: $this->nodes = $nodes; Chris@17: Chris@17: $this->drupalLogin($this->createUser( Chris@17: [ Chris@17: 'view page revisions', Chris@17: 'revert page revisions', Chris@17: 'delete page revisions', Chris@17: 'edit any page content', Chris@17: 'delete any page content', Chris@17: 'access contextual links', Chris@17: 'administer content types', Chris@17: ] Chris@17: )); Chris@17: } Chris@17: Chris@17: /** Chris@17: * Tests the contextual links on revisions. Chris@17: */ Chris@17: public function testRevisionContextualLinks() { Chris@17: // Confirm that the "Edit" and "Delete" contextual links appear for the Chris@17: // default revision. Chris@17: $this->drupalGet('node/' . $this->nodes[0]->id()); Chris@17: $page = $this->getSession()->getPage(); Chris@17: $page->waitFor(10, function () use ($page) { Chris@17: return $page->find('css', "main .contextual"); Chris@17: }); Chris@17: Chris@17: $this->toggleContextualTriggerVisibility('main'); Chris@17: $page->find('css', 'main .contextual button')->press(); Chris@17: $links = $page->findAll('css', "main .contextual-links li a"); Chris@17: Chris@17: $this->assertEquals('Edit', $links[0]->getText()); Chris@17: $this->assertEquals('Delete', $links[1]->getText()); Chris@17: Chris@17: // Confirm that "Edit" and "Delete" contextual links don't appear for Chris@17: // non-default revision. Chris@17: $this->drupalGet("node/" . $this->nodes[0]->id() . "/revisions/" . $this->nodes[1]->getRevisionId() . "/view"); Chris@17: $this->assertSession()->pageTextContains($this->nodes[1]->getTitle()); Chris@17: $page->waitFor(10, function () use ($page) { Chris@17: return $page->find('css', "main .contextual"); Chris@17: }); Chris@17: Chris@17: $this->toggleContextualTriggerVisibility('main'); Chris@17: $contextual_button = $page->find('css', 'main .contextual button'); Chris@17: $this->assertEmpty(0, $contextual_button); Chris@17: } Chris@17: Chris@17: }