Skip to content

Commit 24d9308

Browse files
committed
feat: introduce global template props
1 parent 13ea38b commit 24d9308

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Akqa\SilverStripe\Traits;
6+
7+
use SilverStripe\Control\Director;
8+
use SilverStripe\View\TemplateGlobalProvider;
9+
10+
class GlobalTemplateProvider implements TemplateGlobalProvider
11+
{
12+
public static function get_template_global_variables()
13+
{
14+
return [
15+
'IsLive' => 'is_live',
16+
'IsTest' => 'is_test',
17+
'IsDev' => 'is_dev',
18+
];
19+
}
20+
21+
public static function is_live(): bool
22+
{
23+
return Director::isLive();
24+
}
25+
26+
public static function is_dev(): bool
27+
{
28+
return Director::isDev();
29+
}
30+
31+
public static function is_test(): bool
32+
{
33+
return Director::isTest();
34+
}
35+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Akqa\SilverStripe\Tests\Traits;
6+
7+
use Akqa\SilverStripe\Traits\GlobalTemplateProvider;
8+
use SilverStripe\Control\Director;
9+
use SilverStripe\Dev\SapphireTest;
10+
use SilverStripe\View\TemplateGlobalProvider;
11+
12+
class GlobalTemplateProviderTest extends SapphireTest
13+
{
14+
public function testImplementsTemplateGlobalProvider(): void
15+
{
16+
$this->assertInstanceOf(TemplateGlobalProvider::class, new GlobalTemplateProvider());
17+
}
18+
19+
public function testGetTemplateGlobalVariablesReturnsExpectedKeys(): void
20+
{
21+
$vars = GlobalTemplateProvider::get_template_global_variables();
22+
23+
$this->assertIsArray($vars);
24+
$this->assertArrayHasKey('IsLive', $vars);
25+
$this->assertArrayHasKey('IsTest', $vars);
26+
$this->assertArrayHasKey('IsDev', $vars);
27+
$this->assertSame('is_live', $vars['IsLive']);
28+
$this->assertSame('is_test', $vars['IsTest']);
29+
$this->assertSame('is_dev', $vars['IsDev']);
30+
}
31+
32+
public function testIsTestDelegatesToDirector(): void
33+
{
34+
$this->assertSame(Director::isTest(), GlobalTemplateProvider::is_test());
35+
}
36+
37+
public function testIsLiveDelegatesToDirector(): void
38+
{
39+
$this->assertSame(Director::isLive(), GlobalTemplateProvider::is_live());
40+
}
41+
42+
public function testIsDevDelegatesToDirector(): void
43+
{
44+
$this->assertSame(Director::isDev(), GlobalTemplateProvider::is_dev());
45+
}
46+
}

0 commit comments

Comments
 (0)