annotate core/modules/system/tests/fixtures/update/drupal-8.views-taxonomy-parent-2543726.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents a9cd425dd02b
children
rev   line source
Chris@4 1 <?php
Chris@4 2
Chris@4 3 /**
Chris@4 4 * @file
Chris@4 5 * Contains database additions to drupal-8.bare.standard.php.gz for testing the
Chris@4 6 * upgrade path of https://www.drupal.org/node/2455125.
Chris@4 7 */
Chris@4 8
Chris@4 9 use Drupal\Component\Uuid\Php;
Chris@4 10 use Drupal\Core\Database\Database;
Chris@4 11 use Drupal\Core\Serialization\Yaml;
Chris@4 12
Chris@4 13 $connection = Database::getConnection();
Chris@4 14
Chris@4 15 $view_file = __DIR__ . '/drupal-8.views-taxonomy-parent-2543726.yml';
Chris@4 16 $view_config = Yaml::decode(file_get_contents($view_file));
Chris@4 17
Chris@4 18 $connection->insert('config')
Chris@4 19 ->fields(['collection', 'name', 'data'])
Chris@4 20 ->values([
Chris@4 21 'collection' => '',
Chris@4 22 'name' => "views.view.test_taxonomy_parent",
Chris@4 23 'data' => serialize($view_config),
Chris@4 24 ])
Chris@4 25 ->execute();
Chris@4 26
Chris@4 27 $uuid = new Php();
Chris@4 28
Chris@4 29 // The root tid.
Chris@4 30 $tids = [0];
Chris@4 31
Chris@4 32 for ($i = 0; $i < 4; $i++) {
Chris@4 33 $name = $this->randomString();
Chris@4 34
Chris@4 35 $tid = $connection->insert('taxonomy_term_data')
Chris@4 36 ->fields(['vid', 'uuid', 'langcode'])
Chris@4 37 ->values(['vid' => 'tags', 'uuid' => $uuid->generate(), 'langcode' => 'en'])
Chris@4 38 ->execute();
Chris@4 39
Chris@4 40 $connection->insert('taxonomy_term_field_data')
Chris@4 41 ->fields(['tid', 'vid', 'langcode', 'name', 'weight', 'changed', 'default_langcode'])
Chris@4 42 ->values(['tid' => $tid, 'vid' => 'tags', 'langcode' => 'en', 'name' => $name, 'weight' => 0, 'changed' => REQUEST_TIME, 'default_langcode' => 1])
Chris@4 43 ->execute();
Chris@4 44
Chris@4 45 $tids[] = $tid;
Chris@4 46 }
Chris@4 47
Chris@4 48 $hierarchy = [
Chris@4 49 // Term with tid 1 has terms with tids 2 and 3 as parents.
Chris@4 50 1 => [2, 3],
Chris@4 51 2 => [3, 0],
Chris@4 52 3 => [0],
Chris@4 53 ];
Chris@4 54
Chris@4 55 $query = $connection->insert('taxonomy_term_hierarchy')->fields(['tid', 'parent']);
Chris@4 56
Chris@4 57 foreach ($hierarchy as $tid => $parents) {
Chris@4 58 foreach ($parents as $parent) {
Chris@4 59 $query->values(['tid' => $tids[$tid], 'parent' => $tids[$parent]]);
Chris@4 60 }
Chris@4 61 }
Chris@4 62
Chris@4 63 // Insert an extra record with no corresponding term.
Chris@4 64 // See https://www.drupal.org/project/drupal/issues/2997982
Chris@4 65 $query->values(['tid' => max($tids) + 1, 'parent' => 0]);
Chris@4 66
Chris@4 67 $query->execute();