annotate core/modules/datetime/src/Tests/Views/DateTimeHandlerTestBase.php @ 19:fa3358dc1485 tip

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