diff --git a/core/modules/views/tests/Drupal/views/Tests/Plugin/argument_validator/EntityTest.php b/core/modules/views/tests/Drupal/views/Tests/Plugin/argument_validator/EntityTest.php index f56fa1f8f0bca5cbf7a4c22974fbfce81f0b71cc..fe96e662b25dc8005b697124cc55c0c3e1c85c50 100644 --- a/core/modules/views/tests/Drupal/views/Tests/Plugin/argument_validator/EntityTest.php +++ b/core/modules/views/tests/Drupal/views/Tests/Plugin/argument_validator/EntityTest.php @@ -64,10 +64,7 @@ protected function setUp() { $this->entityManager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface'); - $mock_entity = $this->getMockBuilder('Drupal\Core\Entity\Entity') - ->disableOriginalConstructor() - ->setMethods(array('bundle', 'access')) - ->getMock(); + $mock_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(), '', FALSE, TRUE, TRUE, array('bundle', 'access')); $mock_entity->expects($this->any()) ->method('bundle') ->will($this->returnValue('test_bundle')); @@ -79,10 +76,7 @@ protected function setUp() { array('test_op_3', NULL, TRUE), ))); - $mock_entity_bundle_2 = $this->getMockBuilder('Drupal\Core\Entity\Entity') - ->disableOriginalConstructor() - ->setMethods(array('bundle', 'access')) - ->getMock(); + $mock_entity_bundle_2 = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(), '', FALSE, TRUE, TRUE, array('bundle', 'access')); $mock_entity_bundle_2->expects($this->any()) ->method('bundle') ->will($this->returnValue('test_bundle_2')); diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php index 2ff0bf796b61d880e08905a1123ad1d6277db940..8f33a4ff7ad92d9d6110d72e38eab032e4068b4c 100644 --- a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php @@ -7,9 +7,7 @@ namespace Drupal\Tests\Core\Entity; -use Drupal\Core\Config\Entity\ConfigEntityBase; use Drupal\Core\DependencyInjection\ContainerBuilder; -use Drupal\Core\Entity\Entity; use Drupal\Core\Entity\EntityInterface; use Drupal\Tests\UnitTestCase; @@ -70,7 +68,7 @@ protected function setUp() { */ public function testUrlInfo($entity_class, $link_template, $expected) { /** @var $entity \Drupal\Core\Entity\EntityInterface */ - $entity = new $entity_class(array('id' => 'test_entity_id'), 'test_entity_type'); + $entity = $this->getMockForAbstractClass($entity_class, array(array('id' => 'test_entity_id'), 'test_entity_type')); $uri = $this->getTestUrlInfo($entity, $link_template); $this->assertSame($expected, $uri->getRouteName()); @@ -82,10 +80,10 @@ public function testUrlInfo($entity_class, $link_template, $expected) { */ public function providerTestUrlInfo() { return array( - array('Drupal\Tests\Core\Entity\TestEntity', 'edit-form', 'test_entity_type.edit'), - array('Drupal\Tests\Core\Entity\TestConfigEntity', 'edit-form', 'test_entity_type.edit'), + array('Drupal\Core\Entity\Entity', 'edit-form', 'test_entity_type.edit'), + array('Drupal\Core\Config\Entity\ConfigEntityBase', 'edit-form', 'test_entity_type.edit'), // Test that overriding the default $rel parameter works. - array('Drupal\Tests\Core\Entity\TestConfigEntity', FALSE, 'test_entity_type.edit'), + array('Drupal\Core\Config\Entity\ConfigEntityBase', FALSE, 'test_entity_type.edit'), ); } @@ -101,7 +99,7 @@ public function providerTestUrlInfo() { */ public function testUrlInfoForInvalidLinkTemplate($entity_class, $link_template) { /** @var $entity \Drupal\Core\Entity\EntityInterface */ - $entity = new $entity_class(array('id' => 'test_entity_id'), 'test_entity_type'); + $entity = $this->getMockForAbstractClass($entity_class, array(array('id' => 'test_entity_id'), 'test_entity_type')); $uri = $this->getTestUrlInfo($entity, $link_template); $this->assertEmpty($uri); @@ -112,9 +110,9 @@ public function testUrlInfoForInvalidLinkTemplate($entity_class, $link_template) */ public function providerTestUrlInfoForInvalidLinkTemplate() { return array( - array('Drupal\Tests\Core\Entity\TestEntity', 'canonical'), - array('Drupal\Tests\Core\Entity\TestEntity', FALSE), - array('Drupal\Tests\Core\Entity\TestConfigEntity', 'canonical'), + array('Drupal\Core\Entity\Entity', 'canonical'), + array('Drupal\Core\Entity\Entity', FALSE), + array('Drupal\Core\Config\Entity\ConfigEntityBase', 'canonical'), ); } @@ -164,7 +162,7 @@ protected function getTestUrlInfo(EntityInterface $entity, $link_template) { * @expectedException \Drupal\Core\Entity\EntityMalformedException */ public function testUrlInfoForNewEntity() { - $entity = new TestEntity(array(), 'test_entity_type'); + $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array(), 'test_entity_type')); $entity->urlInfo(); } @@ -187,13 +185,13 @@ public function testUrl() { ->with('test_entity_type') ->will($this->returnValue($entity_type)); - $invalid_entity = new TestEntity(array(), 'test_entity_type'); + $invalid_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array(), 'test_entity_type')); $this->assertSame('', $invalid_entity->url()); - $no_link_entity = new TestEntity(array('id' => 'test_entity_id'), 'test_entity_type'); + $no_link_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type')); $this->assertSame('', $no_link_entity->url('banana')); - $valid_entity = new TestEntity(array('id' => 'test_entity_id'), 'test_entity_type'); + $valid_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type')); $this->urlGenerator->expects($this->exactly(2)) ->method('generateFromRoute') ->will($this->returnValueMap(array( @@ -245,7 +243,10 @@ public function testUrlForAdminForm() { )) ->will($this->returnValue('entity/test_entity_type/test_entity_bundle/test_entity_id')); - $entity = new TestEntityWithBundle(array('id' => 'test_entity_id', 'bundle' => 'test_entity_bundle'), 'test_entity_type'); + $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'), '', TRUE, TRUE, TRUE, array('bundle')); + $entity->expects($this->any()) + ->method('bundle') + ->will($this->returnValue('test_entity_bundle')); $this->assertSame('entity/test_entity_type/test_entity_bundle/test_entity_id', $entity->url('admin-form')); } @@ -269,7 +270,7 @@ public function testGetSystemPath() { ->with('test_entity_type') ->will($this->returnValue($entity_type)); - $no_link_entity = new TestEntity(array('id' => 'test_entity_id'), 'test_entity_type'); + $no_link_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type')); $this->assertSame('', $no_link_entity->getSystemPath('banana')); $this->urlGenerator->expects($this->once()) @@ -277,7 +278,7 @@ public function testGetSystemPath() { ->with('test_entity_type.view', array('test_entity_type' => 'test_entity_id')) ->will($this->returnValue('entity/test_entity_type/test_entity_id')); - $valid_entity = new TestEntity(array('id' => 'test_entity_id'), 'test_entity_type'); + $valid_entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type')); $this->assertSame('entity/test_entity_type/test_entity_id', $valid_entity->getSystemPath()); } @@ -290,21 +291,30 @@ public function testGetSystemPath() { * * @dataProvider providerTestLinkTemplates */ - public function testLinkTemplates($entity_class, $expected) { + public function testLinkTemplates($override_templates, $expected) { $entity_type = $this->getMock('Drupal\Core\Entity\EntityTypeInterface'); - $entity_type->expects($this->exactly(2)) + $entity_type->expects($this->any()) ->method('getLinkTemplates') ->will($this->returnValue(array( 'canonical' => 'test_entity_type.view', ))); $this->entityManager - ->expects($this->exactly(2)) + ->expects($this->any()) ->method('getDefinition') ->with('test_entity_type') ->will($this->returnValue($entity_type)); - $entity = new $entity_class(array('id' => 'test_entity_id'), 'test_entity_type'); + $entity = $this->getMockForAbstractClass('Drupal\Core\Entity\Entity', array(array('id' => 'test_entity_id'), 'test_entity_type'), '', TRUE, TRUE, TRUE, array('linkTemplates')); + $entity->expects($this->any()) + ->method('linkTemplates') + ->will($this->returnCallback(function () use ($entity_type, $override_templates) { + $templates = $entity_type->getLinkTemplates(); + if ($override_templates) { + $templates['bananas'] = 'test_entity_type.bananas'; + } + return $templates; + })); $this->assertSame($expected['canonical'], $entity->hasLinkTemplate('canonical')); $this->assertSame($expected['bananas'], $entity->hasLinkTemplate('bananas')); } @@ -314,11 +324,11 @@ public function testLinkTemplates($entity_class, $expected) { */ public function providerTestLinkTemplates() { return array( - array('Drupal\Tests\Core\Entity\TestEntity', array( + array(FALSE, array( 'canonical' => TRUE, 'bananas' => FALSE, )), - array('Drupal\Tests\Core\Entity\TestEntityWithTemplates', array( + array(TRUE, array( 'canonical' => TRUE, 'bananas' => TRUE, )), @@ -326,41 +336,3 @@ public function providerTestLinkTemplates() { } } - -class TestConfigEntity extends ConfigEntityBase { -} - -class TestEntity extends Entity { - -} - -class TestEntityWithTemplates extends TestEntity { - - /** - * {@inheritdoc} - */ - protected function linkTemplates() { - $templates = parent::linkTemplates(); - $templates['bananas'] = 'test_entity_type.bananas'; - return $templates; - } - -} - -class TestEntityWithBundle extends TestEntity { - - /** - * The entity bundle. - * - * @var string - */ - protected $bundle; - - /** - * {@inheritdoc} - */ - public function bundle() { - return $this->bundle; - } - -}