From ff8dde65473483a33591a8b4dc37ac390049d4d4 Mon Sep 17 00:00:00 2001
From: mmorris <mmorris@tombras.com>
Date: Wed, 2 Sep 2015 14:07:36 -0400
Subject: [PATCH] Adjust assertion handler to have default arguments, have
 simpletest throw an assert with and without a message argument to test this.

---
 core/lib/Drupal/Component/Assertion/Handle.php       |  2 +-
 core/modules/simpletest/src/Tests/SimpleTestTest.php | 13 +++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/core/lib/Drupal/Component/Assertion/Handle.php b/core/lib/Drupal/Component/Assertion/Handle.php
index 3912156..dd9911e 100644
--- a/core/lib/Drupal/Component/Assertion/Handle.php
+++ b/core/lib/Drupal/Component/Assertion/Handle.php
@@ -57,7 +57,7 @@ public static function register() {
 
     if (version_compare(PHP_VERSION, '7.0.0-dev') < 0) {
       // PHP 5 - create a handler to throw the exception directly.
-      assert_options(ASSERT_CALLBACK, function($file, $line, $code, $message) {
+      assert_options(ASSERT_CALLBACK, function($file = '', $line = 0, $code = '', $message = '') {
         if (empty($message)) {
           $message = $code;
         }
diff --git a/core/modules/simpletest/src/Tests/SimpleTestTest.php b/core/modules/simpletest/src/Tests/SimpleTestTest.php
index c3758a7..8785897 100644
--- a/core/modules/simpletest/src/Tests/SimpleTestTest.php
+++ b/core/modules/simpletest/src/Tests/SimpleTestTest.php
@@ -167,11 +167,20 @@ function stubTest() {
     // Check to see if runtime assertions are indeed on, if successful this
     // will be the first of sixteen passes asserted in confirmStubResults()
     try {
-      assert(FALSE, 'Lorem Ipsum');
+      // Test with minimum possible arguments to make sure no notice for
+      // missing argument is thrown.
+      assert(FALSE);
       $this->fail('Runtime assertions are not working.');
     }
     catch (\AssertionError $e) {
-      $this->assertEqual($e->getMessage(), 'Lorem Ipsum', 'Runtime assertions Enabled and running.');
+      try {
+        // Now test with an error message to insure it is correctly passed
+        // along by the rethrow.
+        assert(FALSE, 'Lorem Ipsum');
+      }
+      catch ( \AssertionError $e ) {
+        $this->assertEqual($e->getMessage(), 'Lorem Ipsum', 'Runtime assertions Enabled and running.');
+      }
     }
     // This causes the second of the sixteen passes asserted in
     // confirmStubResults().
-- 
1.8.4.2

