From 880b8e1f51c0a1b4c7929fcd26158b79c6900171 Mon Sep 17 00:00:00 2001 From: Ben van Hartingsveldt Date: Sat, 22 Feb 2025 13:41:12 +0100 Subject: [PATCH] Add functions to check if FQDN is absolute or relative --- src/Fields/FQDN.php | 14 ++++++++++++++ tests/Fields/FQDNTest.php | 22 ++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/Fields/FQDN.php b/src/Fields/FQDN.php index 8d05069..1b068b5 100644 --- a/src/Fields/FQDN.php +++ b/src/Fields/FQDN.php @@ -32,6 +32,20 @@ public function getValue(): array{ return $this->value; } + /** + * @return bool + */ + public function isAbsolute(): bool{ + return $this->value[count($this->value)-1]===''; + } + + /** + * @return bool + */ + public function isRelative(): bool{ + return !$this->isAbsolute(); + } + /** * @return string */ diff --git a/tests/Fields/FQDNTest.php b/tests/Fields/FQDNTest.php index c35382f..e6ae961 100644 --- a/tests/Fields/FQDNTest.php +++ b/tests/Fields/FQDNTest.php @@ -52,6 +52,28 @@ public function testGetValue(): void{ self::assertSame(['www','example','com',''],(new FQDN('www','example','com',''))->getValue()); } + /** + * @return void + * @throws DNSFieldException + */ + public function testIsAbsolute(){ + self::assertFalse((new FQDN('example','com'))->isAbsolute()); + self::assertTrue((new FQDN('example','com',''))->isAbsolute()); + self::assertFalse((new FQDN('www','example','com'))->isAbsolute()); + self::assertTrue((new FQDN('www','example','com',''))->isAbsolute()); + } + + /** + * @return void + * @throws DNSFieldException + */ + public function testIsRelative(){ + self::assertTrue((new FQDN('example','com'))->isRelative()); + self::assertFalse((new FQDN('example','com',''))->isRelative()); + self::assertTrue((new FQDN('www','example','com'))->isRelative()); + self::assertFalse((new FQDN('www','example','com',''))->isRelative()); + } + /** * @return void * @throws DNSFieldException