ConfigOverridesUpdateTest.php in Drupal 8        
                          
                  
                        
  
  
  
  
  
File
  core/modules/system/tests/src/Functional/Update/ConfigOverridesUpdateTest.php
  
    View source  
  <?php
namespace Drupal\Tests\system\Functional\Update;
use Drupal\FunctionalTests\Update\UpdatePathTestBase;
class ConfigOverridesUpdateTest extends UpdatePathTestBase {
  
  protected $defaultTheme = 'stark';
  
  protected function setDatabaseDumpFiles() {
    $this->databaseDumpFiles = [
      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.filled.standard.php.gz',
      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.config-override-fix.php',
    ];
  }
  
  public function testUpdatedSite() {
    $key_to_be_removed = 'display.default.display_options.fields.nid';
    
    $language_config_override = \Drupal::service('language.config_factory_override');
    $config_override = $language_config_override
      ->getOverride('es', 'views.view.content');
    $this
      ->assertEqual('Spanish ID', $config_override
      ->get($key_to_be_removed)['label'], 'The spanish override for the missing field exists before updating.');
    
    $config_override = $language_config_override
      ->getOverride('es', 'system.cron');
    $this
      ->assertEqual('Should be cleaned by system_update_8200', $config_override
      ->get('bogus_key'), 'The spanish override in system.cron exists before updating.');
    $this
      ->runUpdates();
    
    $config_override = \Drupal::service('language.config_factory_override')
      ->getOverride('es', 'views.view.content');
    $this
      ->assertNull($config_override
      ->get($key_to_be_removed), 'The spanish override for the missing field has been removed.');
    $config_override = $language_config_override
      ->getOverride('es', 'system.cron');
    $this
      ->assertTrue($config_override
      ->isNew(), 'After updating the system.cron spanish override does not exist.');
    $this
      ->assertTrue(empty($config_override
      ->get()), 'After updating the system.cron spanish override has no data.');
    
    $this
      ->drupalLogin($this
      ->createUser([
      'access content overview',
    ]));
    $this
      ->drupalGet('admin/content', [
      'language' => \Drupal::languageManager()
        ->getLanguage('es'),
    ]);
    $this
      ->assertText('Spanish Title');
    $this
      ->assertText('Spanish Author');
  }
}