/** * @covers Navinator\Collection::getNodeMatchingUrl */ public function testNodeMatchingUrl() { $nodeData = array('alpha', 'alpha-2/a', 'alpha-2', 'alpha-2/b', 'alpha-3/a/b', 'alpha-3/a', 'alpha-3/a/b/c'); $testMatches = array('/alpha/' => 'alpha', '/alpha-2/' => 'alpha-2', '/alpha-2/a/' => 'alpha-2/a', '/alpha-2/b/' => 'alpha-2/b', '/alpha-3/a/' => 'alpha-3/a', '/alpha-3/a/b/' => 'alpha-3/a/b', '/alpha-3/a/b/ddddd/' => 'alpha-3/a/b', '/alpha-3/a/b/' => 'alpha-3/a/b', '/alpha-3/a/b/c/' => 'alpha-3/a/b/c', '/alpha-3/a/b/c/ddddddd/' => 'alpha-3/a/b/c'); $nodes = array(); $c = new Collection(); foreach ($nodeData as $path) { $n = new Node($path); $nodes[$path] = $n; $c->addNode($n); } foreach ($testMatches as $url => $nodePath) { $this->assertSame($nodes[$nodePath], $c->getNodeMatchingUrl($url)); } foreach ($testMatches as $url => $nodePath) { $_SERVER['REQUEST_URI'] = $url; $this->assertSame($nodes[$nodePath], $c->getNodeMatchingUrl()); } }