drupalCreateContentType(['type' => 'page']); $this->addDefaultCommentField('node', 'page'); ViewTestData::createTestViews(get_class($this), ['views_test_config']); } /** * Tests the getEntity method. */ public function testGetEntity() { // The view is a view of comments, their nodes and their authors, so there // are three layers of entities. $account = User::create(['name' => $this->randomMachineName(), 'bundle' => 'user']); $account->save(); $node = Node::create([ 'uid' => $account->id(), 'type' => 'page', 'title' => $this->randomString(), ]); $node->save(); $comment = Comment::create([ 'uid' => $account->id(), 'entity_id' => $node->id(), 'entity_type' => 'node', 'field_name' => 'comment', ]); $comment->save(); $user = $this->drupalCreateUser(['access comments']); $this->drupalLogin($user); $view = Views::getView('test_field_get_entity'); $this->executeView($view); $row = $view->result[0]; // Tests entities on the base level. $entity = $view->field['cid']->getEntity($row); $this->assertEqual($entity->id(), $comment->id(), 'Make sure the right comment entity got loaded.'); // Tests entities as relationship on first level. $entity = $view->field['nid']->getEntity($row); $this->assertEqual($entity->id(), $node->id(), 'Make sure the right node entity got loaded.'); // Tests entities as relationships on second level. $entity = $view->field['uid']->getEntity($row); $this->assertEqual($entity->id(), $account->id(), 'Make sure the right user entity got loaded.'); } }