annotate core/modules/node/tests/src/Kernel/NodeOwnerTest.php @ 12:7a779792577d

Update Drupal core to v8.4.5 (via Composer)
author Chris Cannam
date Fri, 23 Feb 2018 15:52:07 +0000
parents 4c8ae668cc8c
children af1871eacc83
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\node\Kernel;
Chris@0 4
Chris@0 5 use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
Chris@0 6 use Drupal\language\Entity\ConfigurableLanguage;
Chris@0 7 use Drupal\node\Entity\Node;
Chris@0 8 use Drupal\node\Entity\NodeType;
Chris@0 9
Chris@0 10 /**
Chris@0 11 * Tests node owner functionality.
Chris@0 12 *
Chris@0 13 * @group Entity
Chris@0 14 */
Chris@0 15 class NodeOwnerTest extends EntityKernelTestBase {
Chris@0 16
Chris@0 17 /**
Chris@0 18 * Modules to enable.
Chris@0 19 *
Chris@0 20 * @var array
Chris@0 21 */
Chris@0 22 public static $modules = ['node', 'language'];
Chris@0 23
Chris@0 24 protected function setUp() {
Chris@0 25 parent::setUp();
Chris@0 26
Chris@0 27 // Create the node bundles required for testing.
Chris@0 28 $type = NodeType::create([
Chris@0 29 'type' => 'page',
Chris@0 30 'name' => 'page',
Chris@0 31 ]);
Chris@0 32 $type->save();
Chris@0 33
Chris@0 34 // Enable two additional languages.
Chris@0 35 ConfigurableLanguage::createFromLangcode('de')->save();
Chris@0 36 ConfigurableLanguage::createFromLangcode('it')->save();
Chris@0 37
Chris@0 38 $this->installSchema('node', 'node_access');
Chris@0 39 }
Chris@0 40
Chris@0 41 /**
Chris@0 42 * Tests node owner functionality.
Chris@0 43 */
Chris@0 44 public function testOwner() {
Chris@0 45 $user = $this->createUser();
Chris@0 46
Chris@0 47 $container = \Drupal::getContainer();
Chris@0 48 $container->get('current_user')->setAccount($user);
Chris@0 49
Chris@0 50 // Create a test node.
Chris@0 51 $english = Node::create([
Chris@0 52 'type' => 'page',
Chris@0 53 'title' => $this->randomMachineName(),
Chris@0 54 'language' => 'en',
Chris@0 55 ]);
Chris@0 56 $english->save();
Chris@0 57
Chris@0 58 $this->assertEqual($user->id(), $english->getOwnerId());
Chris@0 59
Chris@0 60 $german = $english->addTranslation('de');
Chris@0 61 $german->title = $this->randomString();
Chris@0 62 $italian = $english->addTranslation('it');
Chris@0 63 $italian->title = $this->randomString();
Chris@0 64
Chris@0 65 // Node::preSave() sets owner to anonymous user if owner is nor set.
Chris@0 66 $english->set('uid', ['target_id' => NULL]);
Chris@0 67 $german->set('uid', ['target_id' => NULL]);
Chris@0 68 $italian->set('uid', ['target_id' => NULL]);
Chris@0 69
Chris@0 70 // Entity::save() saves all translations!
Chris@0 71 $italian->save();
Chris@0 72
Chris@0 73 $this->assertEqual(0, $english->getOwnerId());
Chris@0 74 $this->assertEqual(0, $german->getOwnerId());
Chris@0 75 $this->assertEqual(0, $italian->getOwnerId());
Chris@0 76 }
Chris@0 77
Chris@0 78 }