From 3214ee97526f5a8ebc08a3566297bb7ecb57a873 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:01:27 +0200 Subject: [PATCH 01/11] url --- src/Extensions/InternetExtension.php | 23 +++++++++++++++++++ .../Unit/Extensions/InternetExtensionTest.php | 9 ++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 4bb88e7..eadfb7d 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -48,4 +48,27 @@ public function email() return sprintf('%s@%s', $letters, $this->domain()); } + + public function url(): string + { + $generateLetter = function(): string { + return $this->randomizer->getBytesFromString( + implode(range('a', 'z')), + $this->randomizer->getInt(4, 30) + ); + }; + + $url = $generateLetter(); + + for ($i = 0; $i < 3; $i++) + { + if ($this->randomizer->getInt(0, 1) < 0.5) + { + $url .= '/' . $generateLetter(); + } + } + + return sprintf('https://%s%s', $url, $this->domain()); + } + } diff --git a/tests/Unit/Extensions/InternetExtensionTest.php b/tests/Unit/Extensions/InternetExtensionTest.php index cd6e1f5..cecb95b 100644 --- a/tests/Unit/Extensions/InternetExtensionTest.php +++ b/tests/Unit/Extensions/InternetExtensionTest.php @@ -120,4 +120,13 @@ public function testEmail(): void $this->assertMatchesRegularExpression('/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD', $result); } } + + public function testUrl(): void + { + for ($i = 0; $i < 100; $i++) + { + $this->assertMatchesRegularExpression('/^https:\/\/([a-zA-Z0-9]+(\/[a-zA-Z0-9]+)*)?\.[a-zA-Z]+$/', $this->faker->unique()->url()); + } + } + } From 74787290393847d83bad6af07952e4bfdf530b07 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:03:28 +0200 Subject: [PATCH 02/11] patch styleci --- src/Extensions/InternetExtension.php | 13 +++++-------- tests/Unit/Extensions/InternetExtensionTest.php | 4 +--- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index eadfb7d..2a34380 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -51,7 +51,7 @@ public function email() public function url(): string { - $generateLetter = function(): string { + $generateLetter = function (): string { return $this->randomizer->getBytesFromString( implode(range('a', 'z')), $this->randomizer->getInt(4, 30) @@ -60,15 +60,12 @@ public function url(): string $url = $generateLetter(); - for ($i = 0; $i < 3; $i++) - { - if ($this->randomizer->getInt(0, 1) < 0.5) - { - $url .= '/' . $generateLetter(); + for ($i = 0; $i < 3; $i++) { + if ($this->randomizer->getInt(0, 1) < 0.5) { + $url .= '/'.$generateLetter(); } } return sprintf('https://%s%s', $url, $this->domain()); } - -} +} \ No newline at end of file diff --git a/tests/Unit/Extensions/InternetExtensionTest.php b/tests/Unit/Extensions/InternetExtensionTest.php index cecb95b..28b6406 100644 --- a/tests/Unit/Extensions/InternetExtensionTest.php +++ b/tests/Unit/Extensions/InternetExtensionTest.php @@ -123,10 +123,8 @@ public function testEmail(): void public function testUrl(): void { - for ($i = 0; $i < 100; $i++) - { + for ($i = 0; $i < 100; $i++) { $this->assertMatchesRegularExpression('/^https:\/\/([a-zA-Z0-9]+(\/[a-zA-Z0-9]+)*)?\.[a-zA-Z]+$/', $this->faker->unique()->url()); } } - } From 7c37f0ecac427ca6c2c8b67d479f56878b9af24e Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:03:55 +0200 Subject: [PATCH 03/11] patch styleci --- src/Extensions/InternetExtension.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 2a34380..3014c68 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -68,4 +68,5 @@ public function url(): string return sprintf('https://%s%s', $url, $this->domain()); } + } \ No newline at end of file From d60fbe664cc4802c99cc011e147beb0bbd6e2229 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Thu, 16 Oct 2025 08:52:45 +0200 Subject: [PATCH 04/11] add secure parameter --- src/Extensions/InternetExtension.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 3014c68..729bde4 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -49,7 +49,7 @@ public function email() return sprintf('%s@%s', $letters, $this->domain()); } - public function url(): string + public function url($secure = true): string { $generateLetter = function (): string { return $this->randomizer->getBytesFromString( @@ -66,7 +66,7 @@ public function url(): string } } - return sprintf('https://%s%s', $url, $this->domain()); + return sprintf('http%s://%s%s', $secure ? 's': '', $url, $this->domain()); } - + } \ No newline at end of file From 3dbd86e17e498d59664ed42e3e670315a403d9a6 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Wed, 22 Oct 2025 09:54:20 +0200 Subject: [PATCH 05/11] document url method --- src/Extensions/InternetExtension.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 729bde4..a4bea83 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -49,6 +49,10 @@ public function email() return sprintf('%s@%s', $letters, $this->domain()); } + /** + * Generating a random URL + * @param bool $secure + */ public function url($secure = true): string { $generateLetter = function (): string { From 1b6be4ea3a32fdab4d0eb34e542b0dc277a6979c Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Wed, 22 Oct 2025 09:58:47 +0200 Subject: [PATCH 06/11] patch ci --- src/Extensions/InternetExtension.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index a4bea83..09f542b 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -50,9 +50,10 @@ public function email() } /** - * Generating a random URL + * Generating a random URL. + * * @param bool $secure - */ + */ public function url($secure = true): string { $generateLetter = function (): string { @@ -70,7 +71,7 @@ public function url($secure = true): string } } - return sprintf('http%s://%s%s', $secure ? 's': '', $url, $this->domain()); + return sprintf('http%s://%s%s', $secure ? 's' : '', $url, $this->domain()); } } \ No newline at end of file From 26e1a45f93609fc2b575b7cb59f238de985ba0a6 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Thu, 30 Oct 2025 16:03:02 +0100 Subject: [PATCH 07/11] style ci patch --- src/Extensions/InternetExtension.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 09f542b..64c6d7e 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -73,5 +73,4 @@ public function url($secure = true): string return sprintf('http%s://%s%s', $secure ? 's' : '', $url, $this->domain()); } - -} \ No newline at end of file +} From 10a77c2bc09617306e0a40be5f269d033653e080 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:30:14 +0100 Subject: [PATCH 08/11] patch --- src/Extensions/InternetExtension.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index 64c6d7e..a61c372 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -59,14 +59,14 @@ public function url($secure = true): string $generateLetter = function (): string { return $this->randomizer->getBytesFromString( implode(range('a', 'z')), - $this->randomizer->getInt(4, 30) + rand(4, 30) ); }; $url = $generateLetter(); for ($i = 0; $i < 3; $i++) { - if ($this->randomizer->getInt(0, 1) < 0.5) { + if (rand(0, 1) < 0.5) { $url .= '/'.$generateLetter(); } } From c2e0f5bfcdebd09a63515747938c380325aafd18 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Tue, 18 Nov 2025 13:55:57 +0100 Subject: [PATCH 09/11] patch --- src/Extensions/InternetExtension.php | 8 ++++---- tests/Unit/Extensions/InternetExtensionTest.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index a61c372..c2033a7 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -59,18 +59,18 @@ public function url($secure = true): string $generateLetter = function (): string { return $this->randomizer->getBytesFromString( implode(range('a', 'z')), - rand(4, 30) + rand(4, 15) ); }; - $url = $generateLetter(); + $url = ''; for ($i = 0; $i < 3; $i++) { - if (rand(0, 1) < 0.5) { + if (rand(0, 1)) { $url .= '/'.$generateLetter(); } } - return sprintf('http%s://%s%s', $secure ? 's' : '', $url, $this->domain()); + return sprintf('http%s://%s%s', $secure ? 's' : '', $this->domain(), $url); } } diff --git a/tests/Unit/Extensions/InternetExtensionTest.php b/tests/Unit/Extensions/InternetExtensionTest.php index 28b6406..177ea18 100644 --- a/tests/Unit/Extensions/InternetExtensionTest.php +++ b/tests/Unit/Extensions/InternetExtensionTest.php @@ -124,7 +124,7 @@ public function testEmail(): void public function testUrl(): void { for ($i = 0; $i < 100; $i++) { - $this->assertMatchesRegularExpression('/^https:\/\/([a-zA-Z0-9]+(\/[a-zA-Z0-9]+)*)?\.[a-zA-Z]+$/', $this->faker->unique()->url()); + $this->assertMatchesRegularExpression('/^https?:\/\/[a-zA-Z0-9]+\.[a-zA-Z]+(?:\/[a-zA-Z0-9]+){0,3}$/', $this->faker->unique()->url(!rand(0, 1))); } } } From 048416dfc59c392c0667a3c2dce2aadf7aae41e3 Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:01:15 +0100 Subject: [PATCH 10/11] route var --- src/Extensions/InternetExtension.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Extensions/InternetExtension.php b/src/Extensions/InternetExtension.php index c2033a7..a743c8f 100644 --- a/src/Extensions/InternetExtension.php +++ b/src/Extensions/InternetExtension.php @@ -63,14 +63,14 @@ public function url($secure = true): string ); }; - $url = ''; + $route = ''; for ($i = 0; $i < 3; $i++) { if (rand(0, 1)) { - $url .= '/'.$generateLetter(); + $route .= '/'.$generateLetter(); } } - return sprintf('http%s://%s%s', $secure ? 's' : '', $this->domain(), $url); + return sprintf('http%s://%s%s', $secure ? 's' : '', $this->domain(), $route); } } From 5cbc0ecd5e21d23323eab3dc40426513f262c03f Mon Sep 17 00:00:00 2001 From: LixNew <129871802+LixNew2@users.noreply.github.com> Date: Tue, 18 Nov 2025 14:23:02 +0100 Subject: [PATCH 11/11] testunsecure and secure url unit test --- tests/Unit/Extensions/InternetExtensionTest.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/Unit/Extensions/InternetExtensionTest.php b/tests/Unit/Extensions/InternetExtensionTest.php index 177ea18..47fd8f5 100644 --- a/tests/Unit/Extensions/InternetExtensionTest.php +++ b/tests/Unit/Extensions/InternetExtensionTest.php @@ -121,10 +121,17 @@ public function testEmail(): void } } - public function testUrl(): void + public function testUnsecureUrl(): void { for ($i = 0; $i < 100; $i++) { - $this->assertMatchesRegularExpression('/^https?:\/\/[a-zA-Z0-9]+\.[a-zA-Z]+(?:\/[a-zA-Z0-9]+){0,3}$/', $this->faker->unique()->url(!rand(0, 1))); + $this->assertMatchesRegularExpression('/^http:\/\/[a-zA-Z0-9]+\.[a-zA-Z]+(?:\/[a-zA-Z0-9]+){0,3}$/', $this->faker->unique()->url(false)); + } + } + + public function testSecureUrl(): void + { + for ($i = 0; $i < 100; $i++) { + $this->assertMatchesRegularExpression('/^https:\/\/[a-zA-Z0-9]+\.[a-zA-Z]+(?:\/[a-zA-Z0-9]+){0,3}$/', $this->faker->unique()->url()); } } }