function DblogFiltersAndFieldsUpgradeTest::testDblogUpgradePath
Tests that field and filter handlers are updated properly.
File
-
core/
modules/ dblog/ tests/ src/ Functional/ Update/ DblogFiltersAndFieldsUpgradeTest.php, line 32
Class
- DblogFiltersAndFieldsUpgradeTest
- Tests the upgrade path for views field and filter handlers.
Namespace
Drupal\Tests\dblog\Functional\UpdateCode
public function testDblogUpgradePath() {
$this->runUpdates();
$view = Views::getView('dblog_2851293');
$data = $view->storage
->toArray();
$fields = $data['display']['default']['display_options']['fields'];
// The 'wid' and 'uid' fields should use the standard plugin now.
$this->assertEqual('standard', $fields['wid']['plugin_id']);
$this->assertEqual('standard', $fields['uid']['plugin_id']);
$filters = $data['display']['default']['display_options']['filters'];
// The 'type' filter should use the dblog_types plugin now.
$this->assertEqual('dblog_types', $filters['type']['plugin_id']);
// Now that the view had been converted, try the same approach but using
// dblog_view_presave()
$config_factory = \Drupal::configFactory();
$config_view = $config_factory->getEditable('views.view.dblog_2851293');
$config_view->setData(Yaml::decode(file_get_contents('core/modules/dblog/tests/modules/dblog_test_views/test_views/views.view.dblog_2851293.yml')));
$config_view->save();
// Make sure we have a not upgraded view.
$view = Views::getView('dblog_2851293');
$data = $view->storage
->toArray();
$fields = $data['display']['default']['display_options']['fields'];
$filters = $data['display']['default']['display_options']['filters'];
$this->assertEqual('numeric', $fields['wid']['plugin_id']);
$this->assertEqual('numeric', $fields['uid']['plugin_id']);
$this->assertEqual('in_operator', $filters['type']['plugin_id']);
// Now save the view. This trigger dblog_view_presave().
$view->save();
// Finally check the same conversion process ran.
$data = $view->storage
->toArray();
$fields = $data['display']['default']['display_options']['fields'];
$filters = $data['display']['default']['display_options']['filters'];
$this->assertEqual('standard', $fields['wid']['plugin_id']);
$this->assertEqual('standard', $fields['uid']['plugin_id']);
$this->assertEqual('dblog_types', $filters['type']['plugin_id']);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.