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