mirror of
https://github.com/shlinkio/shlink.git
synced 2025-03-14 04:00:57 +03:00
Add API test for dynamic IP-based redirects
This commit is contained in:
parent
f4a7712ded
commit
626caa4afa
3 changed files with 31 additions and 0 deletions
|
@ -10,6 +10,8 @@ use PHPUnit\Framework\Attributes\Test;
|
|||
use PHPUnit\Framework\Attributes\TestWith;
|
||||
use Shlinkio\Shlink\TestUtils\ApiTest\ApiTestCase;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
use const ShlinkioTest\Shlink\ANDROID_USER_AGENT;
|
||||
use const ShlinkioTest\Shlink\DESKTOP_USER_AGENT;
|
||||
use const ShlinkioTest\Shlink\IOS_USER_AGENT;
|
||||
|
@ -86,6 +88,16 @@ class RedirectTest extends ApiTestCase
|
|||
],
|
||||
'https://blog.alejandrocelaya.com/2017/12/09/acmailer-7-0-the-most-important-release-in-a-long-time/',
|
||||
];
|
||||
|
||||
$clientDetection = require __DIR__ . '/../../../../config/autoload/client-detection.global.php';
|
||||
foreach ($clientDetection['ip_address_resolution']['headers_to_inspect'] as $header) {
|
||||
yield sprintf('rule: IP address in "%s" header', $header) => [
|
||||
[
|
||||
RequestOptions::HEADERS => [$header => '1.2.3.4'],
|
||||
],
|
||||
'https://example.com/static-ip-address',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -87,6 +87,17 @@ class ListRedirectRulesTest extends ApiTestCase
|
|||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'longUrl' => 'https://example.com/static-ip-address',
|
||||
'priority' => 6,
|
||||
'conditions' => [
|
||||
[
|
||||
'type' => 'ip-address',
|
||||
'matchKey' => null,
|
||||
'matchValue' => '1.2.3.4',
|
||||
],
|
||||
],
|
||||
],
|
||||
]])]
|
||||
public function returnsListOfRulesForShortUrl(string $shortCode, array $expectedRules): void
|
||||
{
|
||||
|
|
|
@ -70,6 +70,14 @@ class ShortUrlRedirectRulesFixture extends AbstractFixture implements DependentF
|
|||
);
|
||||
$manager->persist($iosRule);
|
||||
|
||||
$ipAddressRule = new ShortUrlRedirectRule(
|
||||
shortUrl: $defShortUrl,
|
||||
priority: 6,
|
||||
longUrl: 'https://example.com/static-ip-address',
|
||||
conditions: new ArrayCollection([RedirectCondition::forIpAddress('1.2.3.4')]),
|
||||
);
|
||||
$manager->persist($ipAddressRule);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue