/** * @covers ::getOperations */ public function testGetOperations() { $operation_name = $this->randomMachineName(); $operations = array($operation_name => array('title' => $this->randomMachineName())); $this->moduleHandler->expects($this->once())->method('invokeAll')->with('entity_operation', array($this->role))->will($this->returnValue($operations)); $this->moduleHandler->expects($this->once())->method('alter')->with('entity_operation'); $this->container->set('module_handler', $this->moduleHandler); $this->role->expects($this->any())->method('access')->will($this->returnValue(AccessResult::allowed())); $this->role->expects($this->any())->method('hasLinkTemplate')->will($this->returnValue(TRUE)); $url = $this->getMockBuilder('\\Drupal\\Core\\Url')->disableOriginalConstructor()->getMock(); $url->expects($this->any())->method('toArray')->will($this->returnValue(array())); $this->role->expects($this->any())->method('urlInfo')->will($this->returnValue($url)); $list = new EntityListBuilder($this->entityType, $this->roleStorage, $this->moduleHandler); $list->setStringTranslation($this->translationManager); $operations = $list->getOperations($this->role); $this->assertInternalType('array', $operations); $this->assertArrayHasKey('edit', $operations); $this->assertInternalType('array', $operations['edit']); $this->assertArrayHasKey('title', $operations['edit']); $this->assertArrayHasKey('delete', $operations); $this->assertInternalType('array', $operations['delete']); $this->assertArrayHasKey('title', $operations['delete']); $this->assertArrayHasKey($operation_name, $operations); $this->assertInternalType('array', $operations[$operation_name]); $this->assertArrayHasKey('title', $operations[$operation_name]); }
/** * Tests that buildRow() returns a string which has been run through * SafeMarkup::checkPlain(). * * @dataProvider providerTestBuildRow * * @param string $input * The entity label being passed into buildRow. * @param string $expected * The expected output of the label from buildRow. * @param string $message * The message to provide as output for the test. * @param bool $ignorewarnings * Whether or not to ignore PHP 5.3+ invalid multibyte sequence warnings. * * @see \Drupal\Core\Entity\EntityListBuilder::buildRow() */ public function testBuildRow($input, $expected, $message, $ignorewarnings = FALSE) { $this->role->expects($this->any())->method('label')->will($this->returnValue($input)); if ($ignorewarnings) { $built_row = @$this->entityListBuilder->buildRow($this->role); } else { $built_row = $this->entityListBuilder->buildRow($this->role); } $this->assertEquals($built_row['label'], $expected, $message); }