Version 1
[yaffs-website] / web / core / modules / datetime / src / Tests / Views / DateTimeHandlerTestBase.php
1 <?php
2
3 namespace Drupal\datetime\Tests\Views;
4
5 use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
6 use Drupal\field\Entity\FieldConfig;
7 use Drupal\node\Entity\NodeType;
8 use Drupal\views\Tests\Handler\HandlerTestBase;
9 use Drupal\views\Tests\ViewTestData;
10 use Drupal\field\Entity\FieldStorageConfig;
11
12 /**
13  * Base class for testing datetime handlers.
14  */
15 abstract class DateTimeHandlerTestBase extends HandlerTestBase {
16
17   /**
18    * {@inheritdoc}
19    */
20   public static $modules = ['datetime_test', 'node', 'datetime'];
21
22   /**
23    * Name of the field.
24    *
25    * Note, this is used in the default test view.
26    *
27    * @var string
28    */
29   protected static $field_name = 'field_date';
30
31   /**
32    * Nodes to test.
33    *
34    * @var \Drupal\node\NodeInterface[]
35    */
36   protected $nodes = [];
37
38   /**
39    * {@inheritdoc}
40    */
41   protected function setUp() {
42     parent::setUp();
43
44     // Add a date field to page nodes.
45     $node_type = NodeType::create([
46       'type' => 'page',
47       'name' => 'page'
48     ]);
49     $node_type->save();
50     $fieldStorage = FieldStorageConfig::create([
51       'field_name' => static::$field_name,
52       'entity_type' => 'node',
53       'type' => 'datetime',
54       'settings' => ['datetime_type' => DateTimeItem::DATETIME_TYPE_DATETIME],
55     ]);
56     $fieldStorage->save();
57     $field = FieldConfig::create([
58       'field_storage' => $fieldStorage,
59       'bundle' => 'page',
60       'required' => TRUE,
61     ]);
62     $field->save();
63
64     // Views needs to be aware of the new field.
65     $this->container->get('views.views_data')->clear();
66
67     // Set column map.
68     $this->map = [
69       'nid' => 'nid',
70     ];
71
72     // Load test views.
73     ViewTestData::createTestViews(get_class($this), ['datetime_test']);
74   }
75
76 }