Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / FunctionalTests / Routing / LazyRouteProviderInstallTest.php
diff --git a/web/core/tests/Drupal/FunctionalTests/Routing/LazyRouteProviderInstallTest.php b/web/core/tests/Drupal/FunctionalTests/Routing/LazyRouteProviderInstallTest.php
new file mode 100644 (file)
index 0000000..cec35a0
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+namespace Drupal\FunctionalTests\Routing;
+
+use Drupal\Tests\BrowserTestBase;
+
+/**
+ * @group routing
+ */
+class LazyRouteProviderInstallTest extends BrowserTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = ['lazy_route_provider_install_test'];
+
+  /**
+   * Tests that the lazy route provider is used during a module install.
+   */
+  public function testInstallation() {
+    $this->container->get('module_installer')->install(['router_test']);
+    // Note that on DrupalCI the test site is installed in a sub directory so
+    // we cannot use ::assertEquals().
+    $this->assertStringEndsWith('/admin', \Drupal::state()->get('Drupal\lazy_route_provider_install_test\PluginManager'));
+    $this->assertStringEndsWith('/router_test/test1', \Drupal::state()->get('router_test_install'));
+    // If there is an exception thrown in rebuilding a route then the state
+    // 'lazy_route_provider_install_test_menu_links_discovered_alter' will be
+    // set.
+    // @see lazy_route_provider_install_test_menu_links_discovered_alter().
+    $this->assertEquals('success', \Drupal::state()->get('lazy_route_provider_install_test_menu_links_discovered_alter', NULL));
+  }
+
+}