public function test_work_with_host_incomplete() { $url = new Url('http://foo.bar'); $this->assertEquals('foo.bar', $url->getHost()); $this->assertEquals('bar', $url->getTLD()); $this->assertEquals('foo', $url->getDomain()); $this->assertNull($url->getSubdomain()); $url->setHost('localhost'); $this->assertEquals('localhost', $url->getHost()); $this->assertEquals('localhost', $url->getDomain()); $this->assertNull($url->getTLD()); $this->assertNull($url->getSubdomain()); $url->setSubdomain('foo'); $this->assertEquals('foo', $url->getSubdomain()); $this->assertEquals('foo.localhost', $url->getHost()); $url->setTLD('com'); $this->assertEquals('com', $url->getTLD()); $this->assertEquals('foo.localhost.com', $url->getHost()); $url = new Url('http://localhost/foo/bar'); $this->assertEquals('localhost', $url->getHost()); $this->assertEquals('localhost', $url->getDomain()); $this->assertNull($url->getTLD()); $this->assertNull($url->getSubdomain()); $url->setSubdomain('foo'); $this->assertEquals('foo', $url->getSubdomain()); $this->assertNull($url->getTLD()); $this->assertEquals('foo.localhost', $url->getHost()); $url->setTLD('com'); $this->assertEquals('com', $url->getTLD()); $this->assertEquals('foo', $url->getSubdomain()); $this->assertEquals('foo.localhost.com', $url->getHost()); $url->setHost('foo.bar.baz.yolo'); $this->assertEquals('foo.bar.baz.yolo', $url->getHost()); $this->assertEquals('yolo', $url->getTLD()); $this->assertEquals('baz', $url->getDomain()); $this->assertEquals('foo.bar', $url->getSubdomain()); }