3 namespace Drupal\Tests\node\Kernel;
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;
11 * Tests node owner functionality.
15 class NodeOwnerTest extends EntityKernelTestBase {
22 public static $modules = ['node', 'language'];
24 protected function setUp() {
27 // Create the node bundles required for testing.
28 $type = NodeType::create([
34 // Enable two additional languages.
35 ConfigurableLanguage::createFromLangcode('de')->save();
36 ConfigurableLanguage::createFromLangcode('it')->save();
38 $this->installSchema('node', 'node_access');
42 * Tests node owner functionality.
44 public function testOwner() {
45 $user = $this->createUser();
47 $container = \Drupal::getContainer();
48 $container->get('current_user')->setAccount($user);
50 // Create a test node.
51 $english = Node::create([
53 'title' => $this->randomMachineName(),
58 $this->assertEqual($user->id(), $english->getOwnerId());
60 $german = $english->addTranslation('de');
61 $german->title = $this->randomString();
62 $italian = $english->addTranslation('it');
63 $italian->title = $this->randomString();
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]);
70 // Entity::save() saves all translations!
73 $this->assertEqual(0, $english->getOwnerId());
74 $this->assertEqual(0, $german->getOwnerId());
75 $this->assertEqual(0, $italian->getOwnerId());