diff --git a/core/profiles/demo_umami/config/optional/block.block.umami_banner_recipes.yml b/core/profiles/demo_umami/config/optional/block.block.umami_banner_recipes.yml index e242d8d6d1..4a5a0bd05e 100644 --- a/core/profiles/demo_umami/config/optional/block.block.umami_banner_recipes.yml +++ b/core/profiles/demo_umami/config/optional/block.block.umami_banner_recipes.yml @@ -1,18 +1,17 @@ -uuid: null langcode: en status: true dependencies: - enforced: - module: - - demo_umami_content content: - 'block_content:banner_block:4c7d58a3-a45d-412d-9068-259c57e40541' + enforced: + module: + - demo_umami_content module: - block_content - system theme: - umami -id: umamirecipesbanner +id: umami_banner_recipes theme: umami region: banner_top weight: -10 diff --git a/core/profiles/demo_umami/config/optional/block.block.umami_disclaimer.yml b/core/profiles/demo_umami/config/optional/block.block.umami_disclaimer.yml index de7dc1340d..747a287e32 100644 --- a/core/profiles/demo_umami/config/optional/block.block.umami_disclaimer.yml +++ b/core/profiles/demo_umami/config/optional/block.block.umami_disclaimer.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + module: + - demo_umami theme: - umami id: umami_disclaimer @@ -16,8 +18,8 @@ settings: label_display: '0' umami_disclaimer: value: 'Umami Magazine & Umami Publications is a fictional magazine and publisher for illustrative purposes only.' - format: 'basic_html' + format: basic_html umami_copyright: value: '© 2018 Terms & Conditions' - format: 'basic_html' + format: basic_html visibility: { } diff --git a/core/profiles/demo_umami/config/optional/block.block.umami_footer_promo.yml b/core/profiles/demo_umami/config/optional/block.block.umami_footer_promo.yml index ed59cb13cd..338621885d 100644 --- a/core/profiles/demo_umami/config/optional/block.block.umami_footer_promo.yml +++ b/core/profiles/demo_umami/config/optional/block.block.umami_footer_promo.yml @@ -1,6 +1,8 @@ langcode: en status: true dependencies: + module: + - demo_umami theme: - umami id: umami_footer_promo diff --git a/core/profiles/demo_umami/config/optional/image.style.max_1300x1300.yml b/core/profiles/demo_umami/config/optional/image.style.max_1300x1300.yml index 5c9ca1d2a2..28aad5aada 100644 --- a/core/profiles/demo_umami/config/optional/image.style.max_1300x1300.yml +++ b/core/profiles/demo_umami/config/optional/image.style.max_1300x1300.yml @@ -1,18 +1,17 @@ +langcode: en +status: true +dependencies: + enforced: + module: + - responsive_image name: max_1300x1300 label: 'Max 1300x1300' effects: 04caae9a-fa3e-4ea6-ae09-9c26aec7d308: + uuid: 04caae9a-fa3e-4ea6-ae09-9c26aec7d308 id: image_scale + weight: 1 data: width: 1300 height: 1300 upscale: false - weight: 1 - uuid: 04caae9a-fa3e-4ea6-ae09-9c26aec7d308 -langcode: en -dependencies: - module: - - responsive_image - enforced: - module: - - responsive_image diff --git a/core/profiles/demo_umami/config/optional/image.style.max_2600x2600.yml b/core/profiles/demo_umami/config/optional/image.style.max_2600x2600.yml index cef91d50cc..ace3a8a492 100644 --- a/core/profiles/demo_umami/config/optional/image.style.max_2600x2600.yml +++ b/core/profiles/demo_umami/config/optional/image.style.max_2600x2600.yml @@ -1,18 +1,17 @@ +langcode: en +status: true +dependencies: + enforced: + module: + - responsive_image name: max_2600x2600 label: 'Max 2600x2600' effects: 9b311dd1-0351-45a1-9500-cd069e4670cb: + uuid: 9b311dd1-0351-45a1-9500-cd069e4670cb id: image_scale + weight: 3 data: width: 2600 height: 2600 upscale: false - weight: 3 - uuid: 9b311dd1-0351-45a1-9500-cd069e4670cb -langcode: en -dependencies: - module: - - responsive_image - enforced: - module: - - responsive_image diff --git a/core/profiles/demo_umami/config/optional/image.style.max_325x325.yml b/core/profiles/demo_umami/config/optional/image.style.max_325x325.yml index 30cb39e030..f9a236c0cc 100644 --- a/core/profiles/demo_umami/config/optional/image.style.max_325x325.yml +++ b/core/profiles/demo_umami/config/optional/image.style.max_325x325.yml @@ -1,18 +1,18 @@ +uuid: 87156683-2ee3-4a06-9124-7c2e26be093c +langcode: en +status: true +dependencies: + enforced: + module: + - responsive_image name: max_325x325 label: 'Max 325x325' effects: cb842cc8-682f-42a6-bd05-5a1ac726f0d8: + uuid: cb842cc8-682f-42a6-bd05-5a1ac726f0d8 id: image_scale + weight: 1 data: width: 325 height: 325 upscale: false - weight: 1 - uuid: cb842cc8-682f-42a6-bd05-5a1ac726f0d8 -langcode: en -dependencies: - module: - - responsive_image - enforced: - module: - - responsive_image diff --git a/core/profiles/demo_umami/config/optional/image.style.max_650x650.yml b/core/profiles/demo_umami/config/optional/image.style.max_650x650.yml index 30bd8c44f1..9aa0fb5fc8 100644 --- a/core/profiles/demo_umami/config/optional/image.style.max_650x650.yml +++ b/core/profiles/demo_umami/config/optional/image.style.max_650x650.yml @@ -1,18 +1,17 @@ +langcode: en +status: true +dependencies: + enforced: + module: + - responsive_image name: max_650x650 label: 'Max 650x650' effects: 949c201a-77f5-48f6-ba00-be91eb1aad47: + uuid: 949c201a-77f5-48f6-ba00-be91eb1aad47 id: image_scale + weight: 1 data: width: 650 height: 650 upscale: false - weight: 1 - uuid: 949c201a-77f5-48f6-ba00-be91eb1aad47 -langcode: en -dependencies: - module: - - responsive_image - enforced: - module: - - responsive_image diff --git a/core/profiles/demo_umami/config/optional/responsive_image.styles.narrow.yml b/core/profiles/demo_umami/config/optional/responsive_image.styles.narrow.yml index df56ec9d1e..8f2426783f 100644 --- a/core/profiles/demo_umami/config/optional/responsive_image.styles.narrow.yml +++ b/core/profiles/demo_umami/config/optional/responsive_image.styles.narrow.yml @@ -1,11 +1,10 @@ -uuid: 8eb79e19-da57-4bd3-8304-4e0b5a147276 +langcode: en status: true dependencies: config: - image.style.max_1300x1300 - - image.style.max_650x650 - image.style.max_325x325 -langcode: en + - image.style.max_650x650 id: narrow label: Narrow image_style_mappings: diff --git a/core/profiles/demo_umami/config/optional/responsive_image.styles.wide.yml b/core/profiles/demo_umami/config/optional/responsive_image.styles.wide.yml index 8e07611c65..f689ba8170 100644 --- a/core/profiles/demo_umami/config/optional/responsive_image.styles.wide.yml +++ b/core/profiles/demo_umami/config/optional/responsive_image.styles.wide.yml @@ -1,12 +1,11 @@ -uuid: 5cffd3ef-5656-4446-b200-b771d8076568 +langcode: en status: true dependencies: config: - - image.style.max_2600x2600 - image.style.max_1300x1300 - - image.style.max_650x650 + - image.style.max_2600x2600 - image.style.max_325x325 -langcode: en + - image.style.max_650x650 id: wide label: Wide image_style_mappings: diff --git a/core/profiles/demo_umami/demo_umami_content/demo_umami_content.info.yml b/core/profiles/demo_umami/demo_umami_content/demo_umami_content.info.yml old mode 100755 new mode 100644 diff --git a/core/profiles/demo_umami/demo_umami_content/tests/src/Functional/UninstallDefaultContentTest.php b/core/profiles/demo_umami/demo_umami_content/tests/src/Functional/UninstallDefaultContentTest.php index 970577ddec..76a5d7cebb 100644 --- a/core/profiles/demo_umami/demo_umami_content/tests/src/Functional/UninstallDefaultContentTest.php +++ b/core/profiles/demo_umami/demo_umami_content/tests/src/Functional/UninstallDefaultContentTest.php @@ -50,7 +50,7 @@ public function testReinstall() { ->count() ->execute(); $this->assertEquals(0, $count); - $this->assertNull($this->container->get('entity_type.manager')->getStorage('block')->load('umamirecipesbanner')); + $this->assertNull($this->container->get('entity_type.manager')->getStorage('block')->load('umami_banner_recipes')); // Assert the removal of nodes on uninstall. $count = $node_storage->getQuery() diff --git a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php index 63dd7f42f9..6ac6147e00 100644 --- a/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php +++ b/core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php @@ -2,6 +2,10 @@ namespace Drupal\Tests\demo_umami\Functional; +use Drupal\Core\Config\FileStorage; +use Drupal\Core\Config\InstallStorage; +use Drupal\Core\Config\StorageInterface; +use Drupal\KernelTests\AssertConfigTrait; use Drupal\Tests\BrowserTestBase; /** @@ -10,6 +14,13 @@ * @group demo_umami */ class DemoUmamiProfileTest extends BrowserTestBase { + use AssertConfigTrait; + + protected function installParameters() { + $parameters = parent::installParameters(); + $parameters['forms']['install_configure_form']['site_mail'] = 'admin@example.com'; + return $parameters; + } /** * {@inheritdoc} @@ -35,4 +46,47 @@ public function testWarningsOnStatusPage() { } + /** + * Tests the profile supplied configuration is the same after installation. + */ + public function testConfig() { + // Just connect directly to the config table so we don't need to worry about + // the cache layer. + $active_config_storage = $this->container->get('config.storage'); + + $default_config_storage = new FileStorage(drupal_get_path('profile', 'demo_umami') . '/' . InstallStorage::CONFIG_INSTALL_DIRECTORY, InstallStorage::DEFAULT_COLLECTION); + $this->assertDefaultConfig($default_config_storage, $active_config_storage); + + $default_config_storage = new FileStorage(drupal_get_path('profile', 'demo_umami') . '/' . InstallStorage::CONFIG_OPTIONAL_DIRECTORY, InstallStorage::DEFAULT_COLLECTION); + $this->assertDefaultConfig($default_config_storage, $active_config_storage); + } + + /** + * Asserts that the default configuration matches active configuration. + * + * @param \Drupal\Core\Config\StorageInterface $default_config_storage + * The default configuration storage to check. + * @param \Drupal\Core\Config\StorageInterface $active_config_storage + * The active configuration storage. + */ + protected function assertDefaultConfig(StorageInterface $default_config_storage, StorageInterface $active_config_storage) { + /** @var \Drupal\Core\Config\ConfigManagerInterface $config_manager */ + $config_manager = $this->container->get('config.manager'); + + foreach ($default_config_storage->listAll() as $config_name) { + if ($active_config_storage->exists($config_name)) { + $result = $config_manager->diff($default_config_storage, $active_config_storage, $config_name); + $this->assertConfigDiff($result, $config_name, [ + // The filter.format.*:roles key is a special install key. + 'filter.format.basic_html' => ['roles:', ' - authenticated'], + 'filter.format.full_html' => ['roles:', ' - administrator'], + 'filter.format.restricted_html' => ['roles:', ' - anonymous'], + ]); + } + else { + $this->fail("$config_name has not been installed"); + } + } + } + } diff --git a/core/profiles/demo_umami/themes/umami/css/base.css b/core/profiles/demo_umami/themes/umami/css/base.css old mode 100755 new mode 100644 diff --git a/core/profiles/demo_umami/themes/umami/css/components/blocks/banner/banner.css b/core/profiles/demo_umami/themes/umami/css/components/blocks/banner/banner.css old mode 100755 new mode 100644 diff --git a/core/profiles/demo_umami/themes/umami/css/components/navigation/menu-footer/menu-footer.css b/core/profiles/demo_umami/themes/umami/css/components/navigation/menu-footer/menu-footer.css old mode 100755 new mode 100644 diff --git a/core/profiles/demo_umami/themes/umami/css/components/navigation/skip-link/skip-link.css b/core/profiles/demo_umami/themes/umami/css/components/navigation/skip-link/skip-link.css old mode 100755 new mode 100644