From 9892ebef3f8c9d53dd73940492b5e4a080c65348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kub=C3=AD=C4=8Dek?= Date: Tue, 15 Sep 2015 09:09:45 +0200 Subject: [PATCH] Application: fixed heading colon in link generator [closes #72] --- src/Application/LinkGenerator.php | 4 ++++ tests/Application.Routers/LinkGenerator.phpt | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/Application/LinkGenerator.php b/src/Application/LinkGenerator.php index 7148fbb2f..ed35adc55 100644 --- a/src/Application/LinkGenerator.php +++ b/src/Application/LinkGenerator.php @@ -46,6 +46,10 @@ public function link($dest, array $params = []) } list(, $presenter, $action, $frag) = $m; + if ($presenter[0] === ':') { + $presenter = substr($presenter, 1); + } + try { $class = $this->presenterFactory ? $this->presenterFactory->getPresenterClass($presenter) : NULL; } catch (InvalidPresenterException $e) { diff --git a/tests/Application.Routers/LinkGenerator.phpt b/tests/Application.Routers/LinkGenerator.phpt index 3b9a24ef8..100001a0b 100644 --- a/tests/Application.Routers/LinkGenerator.phpt +++ b/tests/Application.Routers/LinkGenerator.phpt @@ -54,6 +54,7 @@ namespace { Assert::same('http://nette.org/en/?a=10&action=default&presenter=Homepage', $generator->link('Homepage:', [10])); Assert::same('http://nette.org/en/?id=20&b=10&action=detail&presenter=Homepage', $generator->link('Homepage:detail', [10, 'id' => 20])); Assert::same('http://nette.org/en/?action=default&presenter=Homepage#frag:ment', $generator->link('Homepage:#frag:ment')); + Assert::same('http://nette.org/en/?action=default&presenter=Module%3AMy', $generator->link(':Module:My:default')); }); @@ -78,6 +79,7 @@ namespace { Assert::same('http://nette.org/en/?0=10&presenter=Homepage', $generator->link('Homepage:', [10])); Assert::same('http://nette.org/en/?0=10&id=20&action=detail&presenter=Homepage', $generator->link('Homepage:detail', [10, 'id' => 20])); Assert::same('http://nette.org/en/?presenter=Homepage#frag:ment', $generator->link('Homepage:#frag:ment')); + Assert::same('http://nette.org/en/?action=default&presenter=Module%3AMy', $generator->link(':Module:My:default')); }); }