Mercurial > hg > isophonics-drupal-site
diff core/modules/views/src/Tests/Update/EntityViewsMultiValueBaseFieldDataUpdateTest.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/views/src/Tests/Update/EntityViewsMultiValueBaseFieldDataUpdateTest.php Mon Apr 23 09:46:53 2018 +0100 @@ -0,0 +1,54 @@ +<?php + +namespace Drupal\views\Tests\Update; + +use Drupal\system\Tests\Update\UpdatePathTestBase; +use Drupal\views\Views; + +/** + * Tests the upgrade path for views multi-value base field data. + * + * @see views_update_8500() + * + * @group Update + */ +class EntityViewsMultiValueBaseFieldDataUpdateTest extends UpdatePathTestBase { + + /** + * {@inheritdoc} + */ + protected function setDatabaseDumpFiles() { + $this->databaseDumpFiles = [ + __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz', + __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.views-entity-views-data-2846614.php', + ]; + } + + /** + * Tests multi-value base field views data is updated correctly. + */ + public function testUpdateMultiValueBaseFields() { + $this->runUpdates(); + + $view = Views::getView('test_user_multi_value'); + $display = $view->storage->get('display'); + + // Check each handler type present in the configuration to make sure the + // field got updated correctly. + foreach (['fields', 'filters', 'arguments'] as $type) { + $handler_config = $display['default']['display_options'][$type]['roles']; + + // The ID should remain unchanged. Otherwise the update handler could + // overwrite a separate handler config. + $this->assertEqual('roles', $handler_config['id']); + // The field should be updated from 'roles' to the correct column name. + $this->assertEqual('roles_target_id', $handler_config['field']); + // Check the table is still correct. + $this->assertEqual('user__roles', $handler_config['table']); + + // The plugin ID should be updated as well. + $this->assertEqual($type === 'arguments' ? 'user__roles_rid' : 'user_roles', $handler_config['plugin_id']); + } + } + +}