Added logic for new tracking options

This commit is contained in:
Alejandro Celaya
2021-05-16 09:51:52 +02:00
parent d423d18249
commit f0dc32b6e5
7 changed files with 76 additions and 27 deletions

View File

@@ -6,6 +6,7 @@ namespace ShlinkioTest\Shlink\Core\Model;
use PHPUnit\Framework\TestCase;
use Shlinkio\Shlink\Core\Model\Visitor;
use Shlinkio\Shlink\Core\Options\TrackingOptions;
use function random_int;
use function str_repeat;
@@ -71,4 +72,28 @@ class VisitorTest extends TestCase
}
return $randomString;
}
/** @test */
public function newNormalizedInstanceIsCreatedFromTrackingOptions(): void
{
$visitor = new Visitor(
$this->generateRandomString(2000),
$this->generateRandomString(2000),
$this->generateRandomString(2000),
$this->generateRandomString(2000),
);
$normalizedVisitor = $visitor->normalizeForTrackingOptions(new TrackingOptions([
'disableIpTracking' => true,
'disableReferrerTracking' => true,
'disableUaTracking' => true,
]));
self::assertNotSame($visitor, $normalizedVisitor);
self::assertEmpty($normalizedVisitor->getUserAgent());
self::assertNotEmpty($visitor->getUserAgent());
self::assertEmpty($normalizedVisitor->getReferer());
self::assertNotEmpty($visitor->getReferer());
self::assertNull($normalizedVisitor->getRemoteAddress());
self::assertNotNull($visitor->getRemoteAddress());
}
}