Skip to content

Commit ead80a4

Browse files
[10.x] Tests for Str and Stringable isMatch method (#46324)
1 parent 4fa264d commit ead80a4

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

tests/Support/SupportStrTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,24 @@ public function testIsJson()
440440
$this->assertFalse(Str::isJson([]));
441441
}
442442

443+
public function testIsMatch()
444+
{
445+
$this->assertTrue(Str::isMatch('/.*,.*!/', 'Hello, Laravel!'));
446+
$this->assertTrue(Str::isMatch('/^.*$(.*)/', 'Hello, Laravel!'));
447+
$this->assertTrue(Str::isMatch('/laravel/i', 'Hello, Laravel!'));
448+
$this->assertTrue(Str::isMatch('/^(.*(.*(.*)))/', 'Hello, Laravel!'));
449+
450+
$this->assertFalse(Str::isMatch('/H.o/', 'Hello, Laravel!'));
451+
$this->assertFalse(Str::isMatch('/^laravel!/i', 'Hello, Laravel!'));
452+
$this->assertFalse(Str::isMatch('/laravel!(.*)/', 'Hello, Laravel!'));
453+
$this->assertFalse(Str::isMatch('/^[a-zA-Z,!]+$/', 'Hello, Laravel!'));
454+
455+
$this->assertTrue(Str::isMatch(['/.*,.*!/', '/H.o/'], 'Hello, Laravel!'));
456+
$this->assertTrue(Str::isMatch(['/^laravel!/i', '/^.*$(.*)/'], 'Hello, Laravel!'));
457+
$this->assertTrue(Str::isMatch(['/laravel/i', '/laravel!(.*)/'], 'Hello, Laravel!'));
458+
$this->assertTrue(Str::isMatch(['/^[a-zA-Z,!]+$/', '/^(.*(.*(.*)))/'], 'Hello, Laravel!'));
459+
}
460+
443461
public function testKebab()
444462
{
445463
$this->assertSame('laravel-php-framework', Str::kebab('LaravelPhpFramework'));

tests/Support/SupportStringableTest.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,24 @@ public function testIsJson()
6262
$this->assertFalse($this->stringable(null)->isJson());
6363
}
6464

65+
public function testIsMatch()
66+
{
67+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/.*,.*!/'));
68+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/^.*$(.*)/'));
69+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/laravel/i'));
70+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/^(.*(.*(.*)))/'));
71+
72+
$this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/H.o/'));
73+
$this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/^laravel!/i'));
74+
$this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/laravel!(.*)/'));
75+
$this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/^[a-zA-Z,!]+$/'));
76+
77+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch(['/.*,.*!/', '/H.o/']));
78+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch(['/^laravel!/i', '/^.*$(.*)/']));
79+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch(['/laravel/i', '/laravel!(.*)/']));
80+
$this->assertTrue($this->stringable('Hello, Laravel!')->isMatch(['/^[a-zA-Z,!]+$/', '/^(.*(.*(.*)))/']));
81+
}
82+
6583
public function testIsEmpty()
6684
{
6785
$this->assertTrue($this->stringable('')->isEmpty());

0 commit comments

Comments
 (0)