Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / KernelTests / KernelTestBaseTest.php
index 817d894d424c43c3f9f0a2e5bff57836ba859ebc..f44c9650f6a3564d7ab7db5a2ea286aa965abc12 100644 (file)
@@ -9,6 +9,7 @@ use org\bovigo\vfs\visitor\vfsStreamStructureVisitor;
 
 /**
  * @coversDefaultClass \Drupal\KernelTests\KernelTestBase
+ *
  * @group PHPUnit
  * @group Test
  * @group KernelTests
@@ -182,7 +183,7 @@ class KernelTestBaseTest extends KernelTestBase {
     $output = \Drupal::service('renderer')->renderRoot($build);
     $this->assertEquals('core', \Drupal::theme()->getActiveTheme()->getName());
 
-    $this->assertEquals($expected, $build['#children']);
+    $this->assertEquals($expected, $build['#markup']);
     $this->assertEquals($expected, $output);
   }
 
@@ -222,6 +223,60 @@ class KernelTestBaseTest extends KernelTestBase {
     $this->assertEquals('Australia/Sydney', date_default_timezone_get());
   }
 
+  /**
+   * Tests that a test method is skipped when it requires a module not present.
+   *
+   * In order to catch checkRequirements() regressions, we have to make a new
+   * test object and run checkRequirements() here.
+   *
+   * @covers ::checkRequirements
+   * @covers ::checkModuleRequirements
+   */
+  public function testMethodRequiresModule() {
+    require __DIR__ . '/../../fixtures/KernelMissingDependentModuleMethodTest.php';
+
+    $stub_test = new KernelMissingDependentModuleMethodTest();
+    // We have to setName() to the method name we're concerned with.
+    $stub_test->setName('testRequiresModule');
+
+    // We cannot use $this->setExpectedException() because PHPUnit would skip
+    // the test before comparing the exception type.
+    try {
+      $stub_test->publicCheckRequirements();
+      $this->fail('Missing required module throws skipped test exception.');
+    }
+    catch (\PHPUnit_Framework_SkippedTestError $e) {
+      $this->assertEqual('Required modules: module_does_not_exist', $e->getMessage());
+    }
+  }
+
+  /**
+   * Tests that a test case is skipped when it requires a module not present.
+   *
+   * In order to catch checkRequirements() regressions, we have to make a new
+   * test object and run checkRequirements() here.
+   *
+   * @covers ::checkRequirements
+   * @covers ::checkModuleRequirements
+   */
+  public function testRequiresModule() {
+    require __DIR__ . '/../../fixtures/KernelMissingDependentModuleTest.php';
+
+    $stub_test = new KernelMissingDependentModuleTest();
+    // We have to setName() to the method name we're concerned with.
+    $stub_test->setName('testRequiresModule');
+
+    // We cannot use $this->setExpectedException() because PHPUnit would skip
+    // the test before comparing the exception type.
+    try {
+      $stub_test->publicCheckRequirements();
+      $this->fail('Missing required module throws skipped test exception.');
+    }
+    catch (\PHPUnit_Framework_SkippedTestError $e) {
+      $this->assertEqual('Required modules: module_does_not_exist', $e->getMessage());
+    }
+  }
+
   /**
    * {@inheritdoc}
    */