views-data-table-dependency.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * @file
  4. * Contains database additions to drupal-8.bare.standard.php.gz for testing
  5. * views_post_update_views_data_table_dependencies().
  6. */
  7. use Drupal\Core\Database\Database;
  8. use Drupal\Core\Serialization\Yaml;
  9. use Drupal\views\Tests\ViewTestData;
  10. $connection = Database::getConnection();
  11. // Install the views_test_data module.
  12. $extensions = $connection->select('config')
  13. ->fields('config', ['data'])
  14. ->condition('collection', '')
  15. ->condition('name', 'core.extension')
  16. ->execute()
  17. ->fetchField();
  18. $extensions = unserialize($extensions);
  19. $extensions['module']['views_test_data'] = 8000;
  20. $connection->update('config')
  21. ->fields([
  22. 'data' => serialize($extensions),
  23. ])
  24. ->condition('collection', '')
  25. ->condition('name', 'core.extension')
  26. ->execute();
  27. $views_configs = [];
  28. // A view that should depend on views_data_test.
  29. $views_configs[] = Yaml::decode(file_get_contents(__DIR__ . '/views.view.test_table_dependency_update.yml'));
  30. foreach ($views_configs as $views_config) {
  31. $connection->insert('config')
  32. ->fields([
  33. 'collection',
  34. 'name',
  35. 'data',
  36. ])
  37. ->values([
  38. 'collection' => '',
  39. 'name' => 'views.view.' . $views_config['id'],
  40. 'data' => serialize($views_config),
  41. ])
  42. ->execute();
  43. }
  44. // We need the views_test_data table to exist and state entries for
  45. // views_test_data_schema() and views_test_data_views_data().
  46. $schema = ViewTestData::schemaDefinition();
  47. $connection->schema()->createTable('views_test_data', $schema['views_test_data']);
  48. $connection->insert('key_value')
  49. ->fields([
  50. 'collection',
  51. 'name',
  52. 'value',
  53. ])
  54. ->values([
  55. 'collection' => 'state',
  56. 'name' => 'views_test_data_schema',
  57. 'value' => serialize($schema),
  58. ])
  59. ->values([
  60. 'collection' => 'state',
  61. 'name' => 'views_test_data_views_data',
  62. 'value' => serialize(ViewTestData::viewsData()),
  63. ])
  64. ->execute();