Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
50.00% |
2 / 4 |
CRAP | |
58.93% |
33 / 56 |
| ViewTestData | |
0.00% |
0 / 1 |
|
50.00% |
2 / 4 |
21.98 | |
58.93% |
33 / 56 |
| createTestViews | |
0.00% |
0 / 1 |
90 | |
0.00% |
0 / 21 |
|||
| schemaDefinition | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| viewsData | |
100.00% |
1 / 1 |
1 | |
100.00% |
8 / 8 |
|||
| dataSet | |
100.00% |
1 / 1 |
1 | |
100.00% |
25 / 25 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\views\Tests\ViewTestData. | |
| */ | |
| namespace Drupal\views\Tests; | |
| use Drupal\Core\Config\FileStorage; | |
| /** | |
| * Provides tests view data and the base test schema with sample data records. | |
| * | |
| * The methods will be used by both views test base classes. | |
| * | |
| * @see \Drupal\views\Tests\ViewKernelTestBase. | |
| * @see \Drupal\views\Tests\ViewTestBase. | |
| */ | |
| class ViewTestData { | |
| /** | |
| * Create test views from config. | |
| * | |
| * @param string $class | |
| * The name of the test class. Installs the listed test views *in order*. | |
| * @param array $modules | |
| * The module directories to look in for test views. | |
| */ | |
| public static function createTestViews($class, array $modules) { | |
| $views = array(); | |
| while ($class) { | |
| if (property_exists($class, 'testViews')) { | |
| $views = array_merge($views, $class::$testViews); | |
| } | |
| $class = get_parent_class($class); | |
| } | |
| if (!empty($views)) { | |
| $storage = \Drupal::entityManager()->getStorage('view'); | |
| $module_handler = \Drupal::moduleHandler(); | |
| foreach ($modules as $module) { | |
| $config_dir = drupal_get_path('module', $module) . '/test_views'; | |
| if (!is_dir($config_dir) || !$module_handler->moduleExists($module)) { | |
| continue; | |
| } | |
| $file_storage = new FileStorage($config_dir); | |
| $available_views = $file_storage->listAll('views.view.'); | |
| foreach ($views as $id) { | |
| $config_name = 'views.view.' . $id; | |
| if (in_array($config_name, $available_views)) { | |
| $storage | |
| ->create($file_storage->read($config_name)) | |
| ->save(); | |
| } | |
| } | |
| } | |
| } | |
| // Rebuild the router once. | |
| \Drupal::service('router.builder')->rebuild(); | |
| } | |
| /** | |
| * Returns the schema definition. | |
| */ | |
| public static function schemaDefinition() { | |
| $schema['views_test_data'] = array( | |
| 'description' => 'Basic test table for Views tests.', | |
| 'fields' => array( | |
| 'id' => array( | |
| 'type' => 'serial', | |
| 'unsigned' => TRUE, | |
| 'not null' => TRUE, | |
| ), | |
| 'name' => array( | |
| 'description' => "A person's name", | |
| 'type' => 'varchar_ascii', | |
| 'length' => 255, | |
| 'not null' => TRUE, | |
| 'default' => '', | |
| ), | |
| 'age' => array( | |
| 'description' => "The person's age", | |
| 'type' => 'int', | |
| 'unsigned' => TRUE, | |
| 'not null' => TRUE, | |
| 'default' => 0), | |
| 'job' => array( | |
| 'description' => "The person's job", | |
| 'type' => 'varchar', | |
| 'length' => 255, | |
| 'not null' => TRUE, | |
| 'default' => 'Undefined', | |
| ), | |
| 'created' => array( | |
| 'description' => "The creation date of this record", | |
| 'type' => 'int', | |
| 'unsigned' => TRUE, | |
| 'not null' => TRUE, | |
| 'default' => 0, | |
| ), | |
| 'status' => array( | |
| 'description' => "The status of this record", | |
| 'type' => 'int', | |
| 'unsigned' => TRUE, | |
| 'not null' => TRUE, | |
| 'default' => 0, | |
| ), | |
| ), | |
| 'primary key' => array('id'), | |
| 'unique keys' => array( | |
| 'name' => array('name') | |
| ), | |
| 'indexes' => array( | |
| 'ages' => array('age'), | |
| ), | |
| ); | |
| return $schema; | |
| } | |
| /** | |
| * Returns the views data definition. | |
| */ | |
| public static function viewsData() { | |
| // Declaration of the base table. | |
| $data['views_test_data']['table'] = array( | |
| 'group' => 'Views test', | |
| 'base' => array( | |
| 'field' => 'id', | |
| 'title' => 'Views test data', | |
| 'help' => 'Users who have created accounts on your site.', | |
| ), | |
| ); | |
| // Declaration of fields. | |
| $data['views_test_data']['id'] = array( | |
| 'title' => 'ID', | |
| 'help' => 'The test data ID', | |
| 'field' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'argument' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'standard', | |
| ), | |
| ); | |
| $data['views_test_data']['name'] = array( | |
| 'title' => 'Name', | |
| 'help' => 'The name of the person', | |
| 'field' => array( | |
| 'id' => 'standard', | |
| ), | |
| 'argument' => array( | |
| 'id' => 'string', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'string', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'standard', | |
| ), | |
| ); | |
| $data['views_test_data']['age'] = array( | |
| 'title' => 'Age', | |
| 'help' => 'The age of the person', | |
| 'field' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'argument' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'numeric', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'standard', | |
| ), | |
| ); | |
| $data['views_test_data']['job'] = array( | |
| 'title' => 'Job', | |
| 'help' => 'The job of the person', | |
| 'field' => array( | |
| 'id' => 'standard', | |
| ), | |
| 'argument' => array( | |
| 'id' => 'string', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'string', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'standard', | |
| ), | |
| ); | |
| $data['views_test_data']['created'] = array( | |
| 'title' => 'Created', | |
| 'help' => 'The creation date of this record', | |
| 'field' => array( | |
| 'id' => 'date', | |
| ), | |
| 'argument' => array( | |
| 'id' => 'date', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'date', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'date', | |
| ), | |
| ); | |
| $data['views_test_data']['status'] = array( | |
| 'title' => 'Status', | |
| 'help' => 'The status of this record', | |
| 'field' => array( | |
| 'id' => 'boolean', | |
| ), | |
| 'filter' => array( | |
| 'id' => 'boolean', | |
| ), | |
| 'sort' => array( | |
| 'id' => 'standard', | |
| ), | |
| ); | |
| return $data; | |
| } | |
| /** | |
| * Returns a very simple test dataset. | |
| */ | |
| public static function dataSet() { | |
| return array( | |
| array( | |
| 'name' => 'John', | |
| 'age' => 25, | |
| 'job' => 'Singer', | |
| 'created' => gmmktime(0, 0, 0, 1, 1, 2000), | |
| 'status' => 1, | |
| ), | |
| array( | |
| 'name' => 'George', | |
| 'age' => 27, | |
| 'job' => 'Singer', | |
| 'created' => gmmktime(0, 0, 0, 1, 2, 2000), | |
| 'status' => 0, | |
| ), | |
| array( | |
| 'name' => 'Ringo', | |
| 'age' => 28, | |
| 'job' => 'Drummer', | |
| 'created' => gmmktime(6, 30, 30, 1, 1, 2000), | |
| 'status' => 1, | |
| ), | |
| array( | |
| 'name' => 'Paul', | |
| 'age' => 26, | |
| 'job' => 'Songwriter', | |
| 'created' => gmmktime(6, 0, 0, 1, 1, 2000), | |
| 'status' => 0, | |
| ), | |
| array( | |
| 'name' => 'Meredith', | |
| 'age' => 30, | |
| 'job' => 'Speaker', | |
| 'created' => gmmktime(6, 30, 10, 1, 1, 2000), | |
| 'status' => 1, | |
| ), | |
| ); | |
| } | |
| } |