Skip to content

Commit 558bcba

Browse files
khorskydg
authored andcommitted
Presenter: added isModuleCurrent() [Closes #240] (#243)
1 parent 89a989b commit 558bcba

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

src/Application/UI/Presenter.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,12 @@ final public function getModule(): string
188188
}
189189

190190

191+
public function isModuleCurrent(string $moduleName): bool
192+
{
193+
return Nette\Utils\Strings::startsWith($this->getModule() . ':', ltrim($moduleName . ':', ':'));
194+
}
195+
196+
191197
/********************* interface IPresenter ****************d*g**/
192198

193199

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
/**
4+
* Test: Presenter::isModuleCurrent.
5+
*/
6+
7+
declare(strict_types = 1);
8+
9+
use Tester\Assert;
10+
11+
require __DIR__ . '/../bootstrap.php';
12+
13+
14+
class TestPresenter extends \Nette\Application\UI\Presenter
15+
{
16+
}
17+
18+
19+
test(function () {
20+
$presenter = new TestPresenter;
21+
$presenter->setParent(null, 'Test');
22+
23+
Assert::same('', $presenter->getModule());
24+
25+
Assert::true($presenter->isModuleCurrent(''));
26+
Assert::false($presenter->isModuleCurrent('Test'));
27+
Assert::false($presenter->isModuleCurrent(':Test'));
28+
});
29+
30+
31+
test(function () {
32+
$presenter = new TestPresenter;
33+
$presenter->setParent(null, 'First:Second:Third:Test');
34+
35+
Assert::same('First:Second:Third', $presenter->getModule());
36+
37+
Assert::false($presenter->isModuleCurrent('First:Second:Third:Test'));
38+
39+
Assert::true($presenter->isModuleCurrent('First:Second:Third'));
40+
Assert::true($presenter->isModuleCurrent('First:Second'));
41+
Assert::true($presenter->isModuleCurrent('First'));
42+
Assert::true($presenter->isModuleCurrent(''));
43+
44+
Assert::true($presenter->isModuleCurrent(':First:Second:Third'));
45+
Assert::true($presenter->isModuleCurrent(':First:Second'));
46+
Assert::true($presenter->isModuleCurrent(':First'));
47+
Assert::true($presenter->isModuleCurrent(':'));
48+
49+
Assert::false($presenter->isModuleCurrent('First:Second:Other'));
50+
Assert::false($presenter->isModuleCurrent('First:Other'));
51+
Assert::false($presenter->isModuleCurrent('First:Second:T'));
52+
Assert::false($presenter->isModuleCurrent('First:S'));
53+
});

0 commit comments

Comments
 (0)