ソースを参照

Merge branch 'master' into 3.next

Mark Story 6 年 前
コミット
82493e7b90
27 ファイル変更80 行追加60 行削除
  1. 1 0
      .gitignore
  2. 6 4
      src/Database/Schema/MysqlSchema.php
  3. 2 2
      src/Http/Client/FormData.php
  4. 4 4
      src/I18n/Number.php
  5. 2 0
      src/Routing/Router.php
  6. 1 1
      src/TestSuite/Constraint/Console/ContentsBase.php
  7. 1 1
      src/TestSuite/Constraint/Console/ContentsContainRow.php
  8. 1 1
      src/TestSuite/Constraint/Console/ContentsRegExp.php
  9. 1 1
      src/TestSuite/Constraint/Response/BodyRegExp.php
  10. 1 1
      src/TestSuite/Constraint/Response/ContentType.php
  11. 1 1
      src/TestSuite/Constraint/Response/CookieEncryptedEquals.php
  12. 1 1
      src/TestSuite/Constraint/Response/CookieEquals.php
  13. 1 1
      src/TestSuite/Constraint/Response/CookieNotSet.php
  14. 1 1
      src/TestSuite/Constraint/Response/CookieSet.php
  15. 1 1
      src/TestSuite/Constraint/Response/HeaderContains.php
  16. 3 1
      src/TestSuite/Constraint/Response/HeaderEquals.php
  17. 1 1
      src/TestSuite/Constraint/Response/HeaderNotContains.php
  18. 2 2
      src/TestSuite/Constraint/Response/StatusCode.php
  19. 2 2
      src/TestSuite/Constraint/Session/FlashParamEquals.php
  20. 1 1
      src/TestSuite/Constraint/View/LayoutFileEquals.php
  21. 1 1
      src/TestSuite/Constraint/View/TemplateFileEquals.php
  22. 6 1
      tests/TestCase/Database/Schema/MysqlSchemaTest.php
  23. 1 4
      tests/TestCase/Http/Client/FormDataTest.php
  24. 9 1
      tests/TestCase/I18n/NumberTest.php
  25. 3 1
      tests/TestCase/Routing/RouterTest.php
  26. 3 3
      tests/TestCase/TestSuite/ConsoleIntegrationTestTraitTest.php
  27. 23 22
      tests/TestCase/TestSuite/IntegrationTestTraitTest.php

+ 1 - 0
.gitignore

@@ -7,6 +7,7 @@
 /phpunit.xml
 /phpcs.xml
 /vendor
+/vendors
 /composer.phar
 *.mo
 debug.log

+ 6 - 4
src/Database/Schema/MysqlSchema.php

@@ -389,10 +389,12 @@ class MysqlSchema extends BaseSchema
         }
 
         $hasPrecision = [TableSchema::TYPE_FLOAT, TableSchema::TYPE_DECIMAL];
-        if (in_array($data['type'], $hasPrecision, true) &&
-            (isset($data['length']) || isset($data['precision']))
-        ) {
-            $out .= '(' . (int)$data['length'] . ',' . (int)$data['precision'] . ')';
+        if (in_array($data['type'], $hasPrecision, true) && isset($data['length'])) {
+            if (isset($data['precision'])) {
+                $out .= '(' . (int)$data['length'] . ',' . (int)$data['precision'] . ')';
+            } else {
+                $out .= '(' . (int)$data['length'] . ')';
+            }
         }
 
         $hasUnsigned = [

+ 2 - 2
src/Http/Client/FormData.php

@@ -230,7 +230,7 @@ class FormData implements Countable
             return 'application/x-www-form-urlencoded';
         }
 
-        return 'multipart/form-data; boundary="' . $this->boundary() . '"';
+        return 'multipart/form-data; boundary=' . $this->boundary();
     }
 
     /**
@@ -249,7 +249,7 @@ class FormData implements Countable
                 $out .= (string)$part;
                 $out .= "\r\n";
             }
-            $out .= "--$boundary--\r\n\r\n";
+            $out .= "--$boundary--\r\n";
 
             return $out;
         }

+ 4 - 4
src/I18n/Number.php

@@ -112,12 +112,12 @@ class Number
      */
     public static function toPercentage($value, $precision = 2, array $options = [])
     {
-        $options += ['multiply' => false];
-        if ($options['multiply']) {
-            $value *= 100;
+        $options += ['multiply' => false, 'type' => NumberFormatter::PERCENT];
+        if (!$options['multiply']) {
+            $value /= 100;
         }
 
-        return static::precision($value, $precision, $options) . '%';
+        return static::precision($value, $precision, $options);
     }
 
     /**

+ 2 - 0
src/Routing/Router.php

@@ -853,7 +853,9 @@ class Router
             $params['bare'],
             $params['requested'],
             $params['return'],
+            $params['isAjax'],
             $params['_Token'],
+            $params['_csrfToken'],
             $params['_matchedRoute'],
             $params['_name']
         );

+ 1 - 1
src/TestSuite/Constraint/Console/ContentsBase.php

@@ -35,7 +35,7 @@ abstract class ContentsBase extends Constraint
     /**
      * Constructor
      *
-     * @param int $contents Contents
+     * @param array $contents Contents
      * @param string $output Output type
      */
     public function __construct($contents, $output)

+ 1 - 1
src/TestSuite/Constraint/Console/ContentsContainRow.php

@@ -53,6 +53,6 @@ class ContentsContainRow extends ContentsRegExp
      */
     public function failureDescription($other)
     {
-        return $this->exporter->shortenedExport($other) . ' ' . $this->toString();
+        return '`' . $this->exporter->shortenedExport($other) . '` ' . $this->toString();
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Console/ContentsRegExp.php

@@ -47,6 +47,6 @@ class ContentsRegExp extends ContentsBase
      */
     public function failureDescription($other)
     {
-        return $other . ' ' . $this->toString();
+        return '`' . $other . '` ' . $this->toString();
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/BodyRegExp.php

@@ -47,6 +47,6 @@ class BodyRegExp extends ResponseBase
      */
     public function failureDescription($other)
     {
-        return $other . ' ' . $this->toString();
+        return '`' . $other . '`' . ' ' . $this->toString();
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/ContentType.php

@@ -43,6 +43,6 @@ class ContentType extends ResponseBase
      */
     public function toString()
     {
-        return 'was set as the Content-Type';
+        return 'is set as the Content-Type (`' . $this->response->getType() . '`)';
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/CookieEncryptedEquals.php

@@ -72,7 +72,7 @@ class CookieEncryptedEquals extends CookieEquals
      */
     public function toString()
     {
-        return sprintf('was encrypted in cookie \'%s\'', $this->cookieName);
+        return sprintf('is encrypted in cookie \'%s\'', $this->cookieName);
     }
 
     /**

+ 1 - 1
src/TestSuite/Constraint/Response/CookieEquals.php

@@ -60,6 +60,6 @@ class CookieEquals extends ResponseBase
      */
     public function toString()
     {
-        return sprintf('was in cookie \'%s\'', $this->cookieName);
+        return sprintf('is in cookie \'%s\'', $this->cookieName);
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/CookieNotSet.php

@@ -38,6 +38,6 @@ class CookieNotSet extends CookieSet
      */
     public function toString()
     {
-        return 'cookie was not set';
+        return 'cookie is not set';
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/CookieSet.php

@@ -40,6 +40,6 @@ class CookieSet extends ResponseBase
      */
     public function toString()
     {
-        return 'cookie was set';
+        return 'cookie is set';
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/HeaderContains.php

@@ -38,6 +38,6 @@ class HeaderContains extends HeaderEquals
      */
     public function toString()
     {
-        return sprintf('is in header \'%s\'', $this->headerName);
+        return sprintf('is in header \'%s\' (`%s`)', $this->headerName, $this->response->getHeaderLine($this->headerName));
     }
 }

+ 3 - 1
src/TestSuite/Constraint/Response/HeaderEquals.php

@@ -58,6 +58,8 @@ class HeaderEquals extends ResponseBase
      */
     public function toString()
     {
-        return sprintf('equals content in header \'%s\'', $this->headerName);
+        $responseHeader = $this->response->getHeaderLine($this->headerName);
+
+        return sprintf('equals content in header \'%s\' (`%s`)', $this->headerName, $responseHeader);
     }
 }

+ 1 - 1
src/TestSuite/Constraint/Response/HeaderNotContains.php

@@ -38,6 +38,6 @@ class HeaderNotContains extends HeaderContains
      */
     public function toString()
     {
-        return sprintf("is not in header '%s'", $this->headerName);
+        return sprintf("is not in header '%s' (`%s`)", $this->headerName, $this->response->getHeaderLine($this->headerName));
     }
 }

+ 2 - 2
src/TestSuite/Constraint/Response/StatusCode.php

@@ -27,7 +27,7 @@ class StatusCode extends StatusCodeBase
      */
     public function toString()
     {
-        return sprintf('matches response status code %d', $this->response->getStatusCode());
+        return sprintf('matches response status code `%d`', $this->response->getStatusCode());
     }
 
     /**
@@ -38,6 +38,6 @@ class StatusCode extends StatusCodeBase
      */
     public function failureDescription($other)
     {
-        return $other . ' ' . $this->toString();
+        return '`' . $other . '` ' . $this->toString();
     }
 }

+ 2 - 2
src/TestSuite/Constraint/Session/FlashParamEquals.php

@@ -100,9 +100,9 @@ class FlashParamEquals extends Constraint
     public function toString()
     {
         if ($this->at !== null) {
-            return sprintf('was in \'%s\' %s #%d', $this->key, $this->param, $this->at);
+            return sprintf('is in \'%s\' %s #%d', $this->key, $this->param, $this->at);
         }
 
-        return sprintf('was in \'%s\' %s', $this->key, $this->param);
+        return sprintf('is in \'%s\' %s', $this->key, $this->param);
     }
 }

+ 1 - 1
src/TestSuite/Constraint/View/LayoutFileEquals.php

@@ -27,6 +27,6 @@ class LayoutFileEquals extends TemplateFileEquals
      */
     public function toString()
     {
-        return sprintf('equals layout file %s', $this->filename);
+        return sprintf('equals layout file `%s`', $this->filename);
     }
 }

+ 1 - 1
src/TestSuite/Constraint/View/TemplateFileEquals.php

@@ -57,6 +57,6 @@ class TemplateFileEquals extends Constraint
      */
     public function toString()
     {
-        return sprintf('equals template file %s', $this->filename);
+        return sprintf('equals template file `%s`', $this->filename);
     }
 }

+ 6 - 1
tests/TestCase/Database/Schema/MysqlSchemaTest.php

@@ -670,7 +670,7 @@ SQL;
             [
                 'value',
                 ['type' => 'decimal', 'length' => 11, 'unsigned' => true],
-                '`value` DECIMAL(11,0) UNSIGNED'
+                '`value` DECIMAL(11) UNSIGNED'
             ],
             [
                 'value',
@@ -689,6 +689,11 @@ SQL;
                 '`value` FLOAT UNSIGNED'
             ],
             [
+                'latitude',
+                ['type' => 'float', 'length' => 53, 'null' => true, 'default' => null, 'unsigned' => true],
+                '`latitude` FLOAT(53) UNSIGNED',
+            ],
+            [
                 'value',
                 ['type' => 'float', 'length' => 11, 'precision' => 3],
                 '`value` FLOAT(11,3)'

+ 1 - 4
tests/TestCase/Http/Client/FormDataTest.php

@@ -116,7 +116,6 @@ class FormDataTest extends TestCase
             'value',
             '--' . $boundary . '--',
             '',
-            '',
         ];
         $this->assertEquals(implode("\r\n", $expected), (string)$data);
     }
@@ -163,7 +162,6 @@ class FormDataTest extends TestCase
             $contents,
             '--' . $boundary . '--',
             '',
-            ''
         ];
         $this->assertEquals(implode("\r\n", $expected), $result);
     }
@@ -194,7 +192,6 @@ class FormDataTest extends TestCase
             $contents,
             '--' . $boundary . '--',
             '',
-            ''
         ];
         $this->assertEquals(implode("\r\n", $expected), $result);
     }
@@ -217,7 +214,7 @@ class FormDataTest extends TestCase
         $data->addFile('upload', fopen($file, 'r'));
         $boundary = $data->boundary();
         $result = $data->contentType();
-        $expected = 'multipart/form-data; boundary="' . $boundary . '"';
+        $expected = 'multipart/form-data; boundary=' . $boundary;
         $this->assertEquals($expected, $result);
     }
 }

+ 9 - 1
tests/TestCase/I18n/NumberTest.php

@@ -461,7 +461,15 @@ class NumberTest extends TestCase
         $this->assertEquals($expected, $result);
 
         $result = $this->Number->toPercentage(0.456, 2, ['locale' => 'de-DE', 'multiply' => true]);
-        $expected = '45,60%';
+        $expected = '45,60 %';
+        $this->assertEquals($expected, $result);
+
+        $result = $this->Number->toPercentage(13, 0, ['locale' => 'fi_FI']);
+        $expected = '13 %';
+        $this->assertEquals($expected, $result);
+
+        $result = $this->Number->toPercentage(0.13, 0, ['locale' => 'fi_FI', 'multiply' => true]);
+        $expected = '13 %';
         $this->assertEquals($expected, $result);
     }
 

+ 3 - 1
tests/TestCase/Routing/RouterTest.php

@@ -2792,7 +2792,9 @@ class RouterTest extends TestCase
             'bare' => 1,
             'return' => 1,
             'requested' => 1,
-            '_Token' => ['key' => 'sekret']
+            '_Token' => ['key' => 'sekret'],
+            '_csrfToken' => 'foo',
+            'isAjax' => true,
         ];
         $result = Router::reverse($params);
         $this->assertEquals('/posts/view/1', $result);

+ 3 - 3
tests/TestCase/TestSuite/ConsoleIntegrationTestTraitTest.php

@@ -247,10 +247,10 @@ class ConsoleIntegrationTestTraitTest extends ConsoleIntegrationTestCase
             'assertOutputEmpty' => ['assertOutputEmpty', 'Failed asserting that output is empty.', 'routes'],
             'assertOutputContains' => ['assertOutputContains', 'Failed asserting that \'missing\' is in output.', 'routes', 'missing'],
             'assertOutputNotContains' => ['assertOutputNotContains', 'Failed asserting that \'controller\' is not in output.', 'routes', 'controller'],
-            'assertOutputRegExp' => ['assertOutputRegExp', 'Failed asserting that /missing/ PCRE pattern found in output.', 'routes', '/missing/'],
-            'assertOutputContainsRow' => ['assertOutputContainsRow', 'Failed asserting that Array (...) row was in output.', 'routes', ['test', 'missing']],
+            'assertOutputRegExp' => ['assertOutputRegExp', 'Failed asserting that `/missing/` PCRE pattern found in output.', 'routes', '/missing/'],
+            'assertOutputContainsRow' => ['assertOutputContainsRow', 'Failed asserting that `Array (...)` row was in output.', 'routes', ['test', 'missing']],
             'assertErrorContains' => ['assertErrorContains', 'Failed asserting that \'test\' is in error output.', 'routes', 'test'],
-            'assertErrorRegExp' => ['assertErrorRegExp', 'Failed asserting that /test/ PCRE pattern found in error output.', 'routes', '/test/'],
+            'assertErrorRegExp' => ['assertErrorRegExp', 'Failed asserting that `/test/` PCRE pattern found in error output.', 'routes', '/test/'],
             'assertErrorEmpty' => ['assertErrorEmpty', 'Failed asserting that error output is empty.', 'integration args_and_options'],
         ];
     }

+ 23 - 22
tests/TestCase/TestSuite/IntegrationTestTraitTest.php

@@ -795,7 +795,7 @@ class IntegrationTestTraitTest extends IntegrationTestCase
     public function testCookieNotSetFailure()
     {
         $this->expectException(AssertionFailedError::class);
-        $this->expectExceptionMessage('Failed asserting that \'remember_me\' cookie was not set');
+        $this->expectExceptionMessage('Failed asserting that \'remember_me\' cookie is not set');
         $this->post('/posts/index');
         $this->assertCookieNotSet('remember_me');
     }
@@ -1497,27 +1497,28 @@ class IntegrationTestTraitTest extends IntegrationTestCase
         $templateDir = TEST_APP . 'TestApp' . DS . 'Template' . DS;
 
         return [
-            'assertContentType' => ['assertContentType', 'Failed asserting that \'test\' was set as the Content-Type.', '/posts/index', 'test'],
+            'assertContentType' => ['assertContentType', 'Failed asserting that \'test\' is set as the Content-Type (`text/html`).', '/posts/index', 'test'],
             'assertContentTypeVerbose' => ['assertContentType', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'test'],
-            'assertCookie' => ['assertCookie', 'Failed asserting that \'test\' was in cookie \'remember_me\'.', '/posts/index', 'test', 'remember_me'],
+            'assertCookie' => ['assertCookie', 'Failed asserting that \'test\' is in cookie \'remember_me\'.', '/posts/index', 'test', 'remember_me'],
             'assertCookieVerbose' => ['assertCookie', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'test', 'remember_me'],
-            'assertCookieEncrypted' => ['assertCookieEncrypted', 'Failed asserting that \'test\' was encrypted in cookie \'NameOfCookie\'.', '/cookie_component_test/set_cookie', 'test', 'NameOfCookie'],
+            'assertCookieEncrypted' => ['assertCookieEncrypted', 'Failed asserting that \'test\' is encrypted in cookie \'NameOfCookie\'.', '/cookie_component_test/set_cookie', 'test', 'NameOfCookie'],
             'assertCookieEncryptedVerbose' => ['assertCookieEncrypted', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'test', 'NameOfCookie'],
-            'assertCookieNotSet' => ['assertCookieNotSet', 'Failed asserting that \'remember_me\' cookie was not set.', '/posts/index', 'remember_me'],
+            'assertCookieNotSet' => ['assertCookieNotSet', 'Failed asserting that \'remember_me\' cookie is not set.', '/posts/index', 'remember_me'],
             'assertFileResponse' => ['assertFileResponse', 'Failed asserting that \'test\' file was sent.', '/posts/file', 'test'],
             'assertFileResponseVerbose' => ['assertFileResponse', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'test'],
-            'assertHeader' => ['assertHeader', 'Failed asserting that \'test\' equals content in header \'X-Cake\'.', '/posts/header', 'X-Cake', 'test'],
-            'assertHeaderContains' => ['assertHeaderContains', 'Failed asserting that \'test\' is in header \'X-Cake\'', '/posts/header', 'X-Cake', 'test'],
+            'assertHeader' => ['assertHeader', 'Failed asserting that \'test\' equals content in header \'X-Cake\' (`custom header`).', '/posts/header', 'X-Cake', 'test'],
+            'assertHeaderContains' => ['assertHeaderContains', 'Failed asserting that \'test\' is in header \'X-Cake\' (`custom header`)', '/posts/header', 'X-Cake', 'test'],
+            'assertHeaderNotContains' => ['assertHeaderNotContains', 'Failed asserting that \'custom header\' is not in header \'X-Cake\' (`custom header`)', '/posts/header', 'X-Cake', 'custom header'],
             'assertHeaderContainsVerbose' => ['assertHeaderContains', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'X-Cake', 'test'],
             'assertHeaderNotContainsVerbose' => ['assertHeaderNotContains', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'X-Cake', 'test'],
-            'assertLayout' => ['assertLayout', 'Failed asserting that \'custom_layout\' equals layout file ' . $templateDir . 'Layout' . DS . 'default.ctp.', '/posts/index', 'custom_layout'],
+            'assertLayout' => ['assertLayout', 'Failed asserting that \'custom_layout\' equals layout file `' . $templateDir . 'Layout' . DS . 'default.ctp`.', '/posts/index', 'custom_layout'],
             'assertLayoutVerbose' => ['assertLayout', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'custom_layout'],
-            'assertRedirect' => ['assertRedirect', 'Failed asserting that \'http://localhost/\' equals content in header \'Location\'.', '/posts/flashNoRender', '/'],
+            'assertRedirect' => ['assertRedirect', 'Failed asserting that \'http://localhost/\' equals content in header \'Location\' (`http://localhost/app/Posts`).', '/posts/flashNoRender', '/'],
             'assertRedirectVerbose' => ['assertRedirect', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', '/'],
-            'assertRedirectContains' => ['assertRedirectContains', 'Failed asserting that \'/posts/somewhere-else\' is in header \'Location\'.', '/posts/flashNoRender', '/posts/somewhere-else'],
+            'assertRedirectContains' => ['assertRedirectContains', 'Failed asserting that \'/posts/somewhere-else\' is in header \'Location\' (`http://localhost/app/Posts`).', '/posts/flashNoRender', '/posts/somewhere-else'],
             'assertRedirectContainsVerbose' => ['assertRedirectContains', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', '/posts/somewhere-else'],
             'assertRedirectNotContainsVerbose' => ['assertRedirectNotContains', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', '/posts/somewhere-else'],
-            'assertResponseCode' => ['assertResponseCode', 'Failed asserting that 302 matches response status code 200.', '/posts/index', 302],
+            'assertResponseCode' => ['assertResponseCode', 'Failed asserting that `302` matches response status code `200`.', '/posts/index', 302],
             'assertResponseContains' => ['assertResponseContains', 'Failed asserting that \'test\' is in response body.', '/posts/index', 'test'],
             'assertResponseEmpty' => ['assertResponseEmpty', 'Failed asserting that response body is empty.', '/posts/index'],
             'assertResponseEquals' => ['assertResponseEquals', 'Failed asserting that \'test\' matches response body.', '/posts/index', 'test'],
@@ -1527,23 +1528,23 @@ class IntegrationTestTraitTest extends IntegrationTestCase
             'assertResponseNotContains' => ['assertResponseNotContains', 'Failed asserting that \'index\' is not in response body.', '/posts/index', 'index'],
             'assertResponseNotEmpty' => ['assertResponseNotEmpty', 'Failed asserting that response body is not empty.', '/posts/empty_response'],
             'assertResponseNotEquals' => ['assertResponseNotEquals', 'Failed asserting that \'posts index\' does not match response body.', '/posts/index/error', 'posts index'],
-            'assertResponseNotRegExp' => ['assertResponseNotRegExp', 'Failed asserting that /index/ PCRE pattern not found in response body.', '/posts/index/error', '/index/'],
+            'assertResponseNotRegExp' => ['assertResponseNotRegExp', 'Failed asserting that `/index/` PCRE pattern not found in response body.', '/posts/index/error', '/index/'],
             'assertResponseNotRegExpVerbose' => ['assertResponseNotRegExp', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', '/index/'],
             'assertResponseOk' => ['assertResponseOk', 'Failed asserting that 404 is between 200 and 204.', '/posts/missing', '/index/'],
-            'assertResponseRegExp' => ['assertResponseRegExp', 'Failed asserting that /test/ PCRE pattern found in response body.', '/posts/index/error', '/test/'],
+            'assertResponseRegExp' => ['assertResponseRegExp', 'Failed asserting that `/test/` PCRE pattern found in response body.', '/posts/index/error', '/test/'],
             'assertResponseSuccess' => ['assertResponseSuccess', 'Failed asserting that 404 is between 200 and 308.', '/posts/missing'],
             'assertResponseSuccessVerbose' => ['assertResponseSuccess', 'Possibly related to Cake\Controller\Exception\MissingActionException: "Action PostsController::missing() could not be found, or is not accessible."', '/posts/missing'],
             'assertSession' => ['assertSession', 'Failed asserting that \'test\' is in session path \'Missing.path\'.', '/posts/index', 'test', 'Missing.path'],
-            'assertTemplate' => ['assertTemplate', 'Failed asserting that \'custom_template\' equals template file ' . $templateDir . 'Posts' . DS . 'index.ctp.', '/posts/index', 'custom_template'],
+            'assertTemplate' => ['assertTemplate', 'Failed asserting that \'custom_template\' equals template file `' . $templateDir . 'Posts' . DS . 'index.ctp`.', '/posts/index', 'custom_template'],
             'assertTemplateVerbose' => ['assertTemplate', 'Possibly related to Cake\Routing\Exception\MissingRouteException: "A route matching "/notfound" could not be found."', '/notfound', 'custom_template'],
-            'assertFlashMessage' => ['assertFlashMessage', 'Failed asserting that \'missing\' was in \'flash\' message.', '/posts/index', 'missing'],
-            'assertFlashMessageWithKey' => ['assertFlashMessage', 'Failed asserting that \'missing\' was in \'auth\' message.', '/posts/index', 'missing', 'auth'],
-            'assertFlashMessageAt' => ['assertFlashMessageAt', 'Failed asserting that \'missing\' was in \'flash\' message #0.', '/posts/index', 0, 'missing'],
-            'assertFlashMessageAtWithKey' => ['assertFlashMessageAt', 'Failed asserting that \'missing\' was in \'auth\' message #0.', '/posts/index', 0, 'missing', 'auth'],
-            'assertFlashElement' => ['assertFlashElement', 'Failed asserting that \'missing\' was in \'flash\' element.', '/posts/index', 'missing'],
-            'assertFlashElementWithKey' => ['assertFlashElement', 'Failed asserting that \'missing\' was in \'auth\' element.', '/posts/index', 'missing', 'auth'],
-            'assertFlashElementAt' => ['assertFlashElementAt', 'Failed asserting that \'missing\' was in \'flash\' element #0.', '/posts/index', 0, 'missing'],
-            'assertFlashElementAtWithKey' => ['assertFlashElementAt', 'Failed asserting that \'missing\' was in \'auth\' element #0.', '/posts/index', 0, 'missing', 'auth'],
+            'assertFlashMessage' => ['assertFlashMessage', 'Failed asserting that \'missing\' is in \'flash\' message.', '/posts/index', 'missing'],
+            'assertFlashMessageWithKey' => ['assertFlashMessage', 'Failed asserting that \'missing\' is in \'auth\' message.', '/posts/index', 'missing', 'auth'],
+            'assertFlashMessageAt' => ['assertFlashMessageAt', 'Failed asserting that \'missing\' is in \'flash\' message #0.', '/posts/index', 0, 'missing'],
+            'assertFlashMessageAtWithKey' => ['assertFlashMessageAt', 'Failed asserting that \'missing\' is in \'auth\' message #0.', '/posts/index', 0, 'missing', 'auth'],
+            'assertFlashElement' => ['assertFlashElement', 'Failed asserting that \'missing\' is in \'flash\' element.', '/posts/index', 'missing'],
+            'assertFlashElementWithKey' => ['assertFlashElement', 'Failed asserting that \'missing\' is in \'auth\' element.', '/posts/index', 'missing', 'auth'],
+            'assertFlashElementAt' => ['assertFlashElementAt', 'Failed asserting that \'missing\' is in \'flash\' element #0.', '/posts/index', 0, 'missing'],
+            'assertFlashElementAtWithKey' => ['assertFlashElementAt', 'Failed asserting that \'missing\' is in \'auth\' element #0.', '/posts/index', 0, 'missing', 'auth'],
         ];
     }