<?php // XStringTest.php // Created: 2021-04-26 // Updated: 2024-07-31 declare(strict_types=1); use PHPUnit\Framework\TestCase; use PHPUnit\Framework\Attributes\CoversClass; use Index\XString; #[CoversClass(XString::class)] final class XStringTest extends TestCase { public function testEscape(): void { $dirty = '<img onerror="alert(\'xss\')">'; $clean = '<img onerror="alert(\'xss\')">'; $this->assertEquals($clean, XString::escape($dirty)); } public function testEmpty(): void { $this->assertTrue(XString::nullOrEmpty(null)); $this->assertTrue(XString::nullOrEmpty('')); $this->assertFalse(XString::nullOrEmpty('soap')); $this->assertTrue(XString::nullOrWhitespace('')); $this->assertTrue(XString::nullOrWhitespace(' ')); } public function testCountUnique(): void { $this->assertEquals(10, XString::countUnique('iaabbccddjjefghefghi')); $this->assertEquals(11, XString::countUnique('jeff has three apples')); } }