Version 1
[yaffs-website] / web / core / modules / simpletest / tests / src / Unit / PhpUnitErrorTest.php
diff --git a/web/core/modules/simpletest/tests/src/Unit/PhpUnitErrorTest.php b/web/core/modules/simpletest/tests/src/Unit/PhpUnitErrorTest.php
new file mode 100644 (file)
index 0000000..25211fc
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+
+namespace Drupal\Tests\simpletest\Unit;
+
+use Drupal\Tests\UnitTestCase;
+
+/**
+ * Tests PHPUnit errors are getting converted to Simpletest errors.
+ *
+ * @group simpletest
+ */
+class PhpUnitErrorTest extends UnitTestCase {
+
+  /**
+   * Test errors reported.
+   *
+   * @covers ::simpletest_phpunit_xml_to_rows
+   */
+  public function testPhpUnitXmlParsing() {
+    require_once __DIR__ . '/../../../simpletest.module';
+
+    $phpunit_error_xml = __DIR__ . '/../../fixtures/phpunit_error.xml';
+
+    $res = simpletest_phpunit_xml_to_rows(1, $phpunit_error_xml);
+    $this->assertEquals(count($res), 4, 'All testcases got extracted');
+    $this->assertNotEquals($res[0]['status'], 'pass');
+    $this->assertEquals($res[0]['status'], 'fail');
+
+    // Test nested testsuites, which appear when you use @dataProvider.
+    for ($i = 0; $i < 3; $i++) {
+      $this->assertNotEquals($res[$i + 1]['status'], 'pass');
+      $this->assertEquals($res[$i + 1]['status'], 'fail');
+    }
+
+    // Make sure simpletest_phpunit_xml_to_rows() does not balk if the test
+    // didn't run.
+    simpletest_phpunit_xml_to_rows(1, 'foobar');
+  }
+
+}