1 config.test | ConfigurationUITest::testExport() |
Tests export of configuration.
File
- core/
modules/ config/ tests/ config.test, line 398 - Tests for Configuration module.
Class
- ConfigurationUITest
- Tests the UI for syncing, importing, and exporting.
Code
function testExport() {
// Verify the export page with export submit button is available.
$this->backdropGet('admin/config/development/configuration/full/export');
$this->assertFieldById('edit-submit', t('Export'));
// Submit the export form and verify response.
$this->backdropPost('admin/config/development/configuration/full/export', array(), t('Export'));
$this->assertResponse(200, 'User can access the download callback.');
// Get the archived binary file provided to user for download.
$archive_data = $this->backdropGetContent();
// Temporarily save the archive file.
$uri = 'temporary://config.tar.gz';
file_put_contents($uri, $archive_data);
// Extract the archive and verify it's not empty.
$file_path = file_directory_temp() . '/' . file_uri_target($uri);
$archiver = new Archive_Tar($file_path);
$archive_contents = $archiver->listContent();
$archive_files = array();
foreach ($archive_contents as $file) {
$archive_files[] = $file['filename'];
}
$this->assert(!empty($archive_files), 'Downloaded archive file is not empty.');
// Prepare the list of config files from active storage.
$storage_active = config_get_config_storage('active');
$config_files = array();
foreach ($storage_active->listAll() as $config_name) {
$config_files[] = $config_name . '.json';
}
// Assert that the downloaded archive file contents are the same as the test
// site active store.
$this->assertIdentical($archive_files, $config_files, 'Downloaded archive contains all active configuration files.');
// Delete the archive.
unlink($uri);
}