Better handling of some alerting errors (#13446)

* Better handling of some alerting errors

* Better error output

* Consolidate simple template parsing

* Fixes reported by phpstan (one was a bug, yay!)

* add back forgotten trim

* don't remove the template if there is no match

* Match previous behavior, which was inconsistent.

* use anonymous class for tests instead

* Oopsie, Stringable is PHP8+

* fix style
This commit is contained in:
Tony Murray
2021-10-29 22:12:20 -05:00
committed by GitHub
parent 99d2462b80
commit 2c77edf4d2
12 changed files with 187 additions and 124 deletions

View File

@@ -35,7 +35,7 @@ class StringHelperTest extends TestCase
*
* @return void
*/
public function testInferEncoding()
public function testInferEncoding(): void
{
$this->assertEquals(null, StringHelpers::inferEncoding(null));
$this->assertEquals('', StringHelpers::inferEncoding(''));
@@ -48,4 +48,31 @@ class StringHelperTest extends TestCase
config(['app.charset' => 'Shift_JIS']);
$this->assertEquals('コンサート', StringHelpers::inferEncoding(base64_decode('g1KDk4NUgVuDZw==')));
}
public function testIsStringable(): void
{
$this->assertTrue(StringHelpers::isStringable(null));
$this->assertTrue(StringHelpers::isStringable(''));
$this->assertTrue(StringHelpers::isStringable('string'));
$this->assertTrue(StringHelpers::isStringable(-1));
$this->assertTrue(StringHelpers::isStringable(1.0));
$this->assertTrue(StringHelpers::isStringable(false));
$this->assertFalse(StringHelpers::isStringable([]));
$this->assertFalse(StringHelpers::isStringable((object) []));
$stringable = new class
{
public function __toString()
{
return '';
}
};
$this->assertTrue(StringHelpers::isStringable($stringable));
$nonstringable = new class
{
};
$this->assertFalse(StringHelpers::isStringable($nonstringable));
}
}