Loading core/profiles/demo_umami/demo_umami.profile +12 −4 Changes for core/profiles/demo_umami/demo_umami.profile: 12 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -34,8 +34,17 @@ function demo_umami_toolbar() { // @todo: This can be removed once a generic warning for experimental profiles has been introduced. // @see https://www.drupal.org/project/drupal/issues/2934374 $items['experimental-profile-warning'] = [ '#type' => 'toolbar_item', 'tab' => [ '#weight' => 999, '#cache' => [ 'contexts' => ['route'], ], ]; // Show warning only on administration pages. $admin_context = \Drupal::service('router.admin_context'); if ($admin_context->isAdminRoute()) { $items['experimental-profile-warning']['#type'] = 'toolbar_item'; $items['experimental-profile-warning']['tab'] = [ '#type' => 'inline_template', '#template' => '<a class="toolbar-warning" href="{{ more_info_link }}">This installation is for demonstration purposes only.</a>', '#context' => [ Loading @@ -44,8 +53,7 @@ function demo_umami_toolbar() { '#attached' => [ 'library' => ['demo_umami/toolbar-warning'], ], ], '#weight' => 999, ]; } return $items; } core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php +47 −0 Changes for core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php: 47 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -122,4 +122,51 @@ public function testAppearance() { $webassert->pageTextContains('Umami'); } /** * Tests that the toolbar warning only appears on the admin pages. */ public function testDemonstrationWarningMessage() { $permissions = [ 'access content overview', 'administer nodes', 'create recipe content', 'edit any recipe content', 'access toolbar', ]; $account = $this->drupalCreateUser($permissions); $this->drupalLogin($account); $web_assert = $this->assertSession(); $nodes = $this->container->get('entity_type.manager') ->getStorage('node') ->loadByProperties(['title' => 'Deep mediterranean quiche']); /* @var \Drupal\node\Entity\Node $recipe_node */ $recipe_node = reset($nodes); // Check when editing a node, the warning is visible. $this->drupalGet($recipe_node->toUrl('edit-form')); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when adding a node, the warning is visible. $this->drupalGet('node/add/recipe'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when looking at admin/content, the warning is visible. $this->drupalGet('admin/content'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when viewing a node, the warning is not visible. $this->drupalGet($recipe_node->toUrl()); $web_assert->statusCodeEquals('200'); $web_assert->pageTextNotContains('This installation is for demonstration purposes only.'); // Check when viewing the homepage, the warning is not visible. $this->drupalGet('<front>'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextNotContains('This installation is for demonstration purposes only.'); } } Loading
core/profiles/demo_umami/demo_umami.profile +12 −4 Changes for core/profiles/demo_umami/demo_umami.profile: 12 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -34,8 +34,17 @@ function demo_umami_toolbar() { // @todo: This can be removed once a generic warning for experimental profiles has been introduced. // @see https://www.drupal.org/project/drupal/issues/2934374 $items['experimental-profile-warning'] = [ '#type' => 'toolbar_item', 'tab' => [ '#weight' => 999, '#cache' => [ 'contexts' => ['route'], ], ]; // Show warning only on administration pages. $admin_context = \Drupal::service('router.admin_context'); if ($admin_context->isAdminRoute()) { $items['experimental-profile-warning']['#type'] = 'toolbar_item'; $items['experimental-profile-warning']['tab'] = [ '#type' => 'inline_template', '#template' => '<a class="toolbar-warning" href="{{ more_info_link }}">This installation is for demonstration purposes only.</a>', '#context' => [ Loading @@ -44,8 +53,7 @@ function demo_umami_toolbar() { '#attached' => [ 'library' => ['demo_umami/toolbar-warning'], ], ], '#weight' => 999, ]; } return $items; }
core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php +47 −0 Changes for core/profiles/demo_umami/tests/src/Functional/DemoUmamiProfileTest.php: 47 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -122,4 +122,51 @@ public function testAppearance() { $webassert->pageTextContains('Umami'); } /** * Tests that the toolbar warning only appears on the admin pages. */ public function testDemonstrationWarningMessage() { $permissions = [ 'access content overview', 'administer nodes', 'create recipe content', 'edit any recipe content', 'access toolbar', ]; $account = $this->drupalCreateUser($permissions); $this->drupalLogin($account); $web_assert = $this->assertSession(); $nodes = $this->container->get('entity_type.manager') ->getStorage('node') ->loadByProperties(['title' => 'Deep mediterranean quiche']); /* @var \Drupal\node\Entity\Node $recipe_node */ $recipe_node = reset($nodes); // Check when editing a node, the warning is visible. $this->drupalGet($recipe_node->toUrl('edit-form')); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when adding a node, the warning is visible. $this->drupalGet('node/add/recipe'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when looking at admin/content, the warning is visible. $this->drupalGet('admin/content'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextContains('This installation is for demonstration purposes only.'); // Check when viewing a node, the warning is not visible. $this->drupalGet($recipe_node->toUrl()); $web_assert->statusCodeEquals('200'); $web_assert->pageTextNotContains('This installation is for demonstration purposes only.'); // Check when viewing the homepage, the warning is not visible. $this->drupalGet('<front>'); $web_assert->statusCodeEquals('200'); $web_assert->pageTextNotContains('This installation is for demonstration purposes only.'); } }