Version 1
[yaffs-website] / web / core / modules / views / tests / src / Functional / Entity / BaseFieldAccessTest.php
diff --git a/web/core/modules/views/tests/src/Functional/Entity/BaseFieldAccessTest.php b/web/core/modules/views/tests/src/Functional/Entity/BaseFieldAccessTest.php
new file mode 100644 (file)
index 0000000..19aa191
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+
+namespace Drupal\Tests\views\Functional\Entity;
+
+use Drupal\entity_test\Entity\EntityTest;
+use Drupal\Tests\views\Functional\ViewTestBase;
+use Drupal\views\Tests\ViewTestData;
+
+/**
+ * Tests views base field access.
+ *
+ * @group views
+ */
+class BaseFieldAccessTest extends ViewTestBase {
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = ['test_entity_test_protected_access'];
+
+  /**
+   * Modules to enable
+   *
+   * @var array
+   */
+  public static $modules = [
+    'views', 'views_test_config', 'entity_test', 'node', 'views_entity_test',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp($import_test_views = TRUE) {
+    parent::setUp($import_test_views);
+    /** @var \Drupal\Core\Entity\EntityDefinitionUpdateManager $update_manager */
+    $update_manager = $this->container->get('entity.definition_update_manager');
+    \Drupal::entityManager()->clearCachedDefinitions();
+    $update_manager->applyUpdates();
+    ViewTestData::createTestViews(get_class($this), ['comment_test_views']);
+    \Drupal::state()->set('entity_test.views_data', [
+      'entity_test' => [
+        'test_text_access' => [
+          'field' => [
+            'id' => 'standard',
+          ],
+        ],
+      ],
+    ]);
+    $entity_1 = EntityTest::create([
+      'test_text_access' => 'no access value',
+    ]);
+    $entity_1->save();
+    $entity_2 = EntityTest::create([
+      'test_text_access' => 'ok to see this one',
+    ]);
+    $entity_2->save();
+    $this->drupalLogin($this->drupalCreateUser(['access content']));
+  }
+
+  /**
+   * Test access to protected base fields.
+   */
+  public function testProtectedField() {
+    $this->drupalGet('test-entity-protected-access');
+    $this->assertText('ok to see this one');
+    $this->assertNoText('no access value');
+  }
+
+}