Mercurial > hg > isophonics-drupal-site
diff core/modules/node/tests/src/Kernel/NodeOwnerTest.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/NodeOwnerTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,78 @@ +<?php + +namespace Drupal\Tests\node\Kernel; + +use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; +use Drupal\language\Entity\ConfigurableLanguage; +use Drupal\node\Entity\Node; +use Drupal\node\Entity\NodeType; + +/** + * Tests node owner functionality. + * + * @group Entity + */ +class NodeOwnerTest extends EntityKernelTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['node', 'language']; + + protected function setUp() { + parent::setUp(); + + // Create the node bundles required for testing. + $type = NodeType::create([ + 'type' => 'page', + 'name' => 'page', + ]); + $type->save(); + + // Enable two additional languages. + ConfigurableLanguage::createFromLangcode('de')->save(); + ConfigurableLanguage::createFromLangcode('it')->save(); + + $this->installSchema('node', 'node_access'); + } + + /** + * Tests node owner functionality. + */ + public function testOwner() { + $user = $this->createUser(); + + $container = \Drupal::getContainer(); + $container->get('current_user')->setAccount($user); + + // Create a test node. + $english = Node::create([ + 'type' => 'page', + 'title' => $this->randomMachineName(), + 'language' => 'en', + ]); + $english->save(); + + $this->assertEqual($user->id(), $english->getOwnerId()); + + $german = $english->addTranslation('de'); + $german->title = $this->randomString(); + $italian = $english->addTranslation('it'); + $italian->title = $this->randomString(); + + // Node::preSave() sets owner to anonymous user if owner is nor set. + $english->set('uid', ['target_id' => NULL]); + $german->set('uid', ['target_id' => NULL]); + $italian->set('uid', ['target_id' => NULL]); + + // Entity::save() saves all translations! + $italian->save(); + + $this->assertEqual(0, $english->getOwnerId()); + $this->assertEqual(0, $german->getOwnerId()); + $this->assertEqual(0, $italian->getOwnerId()); + } + +}