. * * @package LibreNMS * @link http://librenms.org * @copyright 2021 Tony Murray * @author Tony Murray */ namespace LibreNMS\Tests\Unit\Util; use LibreNMS\Tests\TestCase; use LibreNMS\Util\StringHelpers; class StringHelperTest extends TestCase { /** * A basic feature test example. * * @return void */ public function testInferEncoding(): void { $this->assertEquals(null, StringHelpers::inferEncoding(null)); $this->assertEquals('', StringHelpers::inferEncoding('')); $this->assertEquals('~null', StringHelpers::inferEncoding('~null')); $this->assertEquals('Øverbyvegen', StringHelpers::inferEncoding('Øverbyvegen')); $this->assertEquals('Øverbyvegen', StringHelpers::inferEncoding(base64_decode('w5h2ZXJieXZlZ2Vu'))); $this->assertEquals('Øverbyvegen', StringHelpers::inferEncoding(base64_decode('2HZlcmJ5dmVnZW4='))); 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)); } }