Mercurial > hg > isophonics-drupal-site
diff core/modules/node/tests/src/Kernel/NodeFieldOverridesTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/node/tests/src/Kernel/NodeFieldOverridesTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,64 @@ +<?php + +namespace Drupal\Tests\node\Kernel; + +use Drupal\user\UserInterface; +use Drupal\Core\Field\Entity\BaseFieldOverride; +use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; +use Drupal\node\Entity\Node; +use Drupal\node\Entity\NodeType; + +/** + * Tests node field overrides. + * + * @group node + */ +class NodeFieldOverridesTest extends EntityKernelTestBase { + + /** + * Current logged in user. + * + * @var \Drupal\user\UserInterface + */ + protected $user; + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['user', 'system', 'field', 'node']; + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + $this->installConfig(['user']); + $this->user = $this->createUser(); + \Drupal::service('current_user')->setAccount($this->user); + } + + /** + * Tests that field overrides work as expected. + */ + public function testFieldOverrides() { + if (!NodeType::load('ponies')) { + NodeType::create(['name' => 'Ponies', 'type' => 'ponies'])->save(); + } + $override = BaseFieldOverride::loadByName('node', 'ponies', 'uid'); + if ($override) { + $override->delete(); + } + $uid_field = \Drupal::entityManager()->getBaseFieldDefinitions('node')['uid']; + $config = $uid_field->getConfig('ponies'); + $config->save(); + $this->assertEqual($config->get('default_value_callback'), 'Drupal\node\Entity\Node::getCurrentUserId'); + /** @var \Drupal\node\NodeInterface $node */ + $node = Node::create(['type' => 'ponies']); + $owner = $node->getOwner(); + $this->assertTrue($owner instanceof UserInterface); + $this->assertEqual($owner->id(), $this->user->id()); + } + +}