1a25f0a04SGreg Roach<?php 2a25f0a04SGreg Roach/** 3a25f0a04SGreg Roach * webtrees: online genealogy 4*8fcd0d32SGreg Roach * Copyright (C) 2019 webtrees development team 5a25f0a04SGreg Roach * This program is free software: you can redistribute it and/or modify 6a25f0a04SGreg Roach * it under the terms of the GNU General Public License as published by 7a25f0a04SGreg Roach * the Free Software Foundation, either version 3 of the License, or 8a25f0a04SGreg Roach * (at your option) any later version. 9a25f0a04SGreg Roach * This program is distributed in the hope that it will be useful, 10a25f0a04SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of 11a25f0a04SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12a25f0a04SGreg Roach * GNU General Public License for more details. 13a25f0a04SGreg Roach * You should have received a copy of the GNU General Public License 14a25f0a04SGreg Roach * along with this program. If not, see <http://www.gnu.org/licenses/>. 15a25f0a04SGreg Roach */ 16e7f56f2aSGreg Roachdeclare(strict_types=1); 17e7f56f2aSGreg Roach 1832f20c14SGreg Roachnamespace Fisharebest\Webtrees; 1932f20c14SGreg Roach 2032f20c14SGreg Roachuse function mb_substr; 2132f20c14SGreg Roachuse function str_repeat; 2232f20c14SGreg Roachuse function strlen; 23a25f0a04SGreg Roach 24a25f0a04SGreg Roach/** 2532f20c14SGreg Roach * Test the site functions 26a25f0a04SGreg Roach */ 2784e2cf4eSGreg Roachclass SiteTest extends \Fisharebest\Webtrees\TestCase 28c1010edaSGreg Roach{ 2932f20c14SGreg Roach protected static $uses_database = true; 3032f20c14SGreg Roach 31a25f0a04SGreg Roach /** 3232f20c14SGreg Roach * @covers \Fisharebest\Webtrees\Site 3352348eb8SGreg Roach * 3452348eb8SGreg Roach * @return void 35a25f0a04SGreg Roach */ 3632f20c14SGreg Roach public function testDefault(): void 37c1010edaSGreg Roach { 3832f20c14SGreg Roach $this->assertSame('foo', Site::getPreference('no-such-setting', 'foo')); 3932f20c14SGreg Roach $this->assertSame('bar', Site::getPreference('no-such-setting', 'bar')); 4032f20c14SGreg Roach } 4132f20c14SGreg Roach 4232f20c14SGreg Roach /** 4332f20c14SGreg Roach * @covers \Fisharebest\Webtrees\Site 4432f20c14SGreg Roach * 4532f20c14SGreg Roach * @return void 4632f20c14SGreg Roach */ 4732f20c14SGreg Roach public function testSetAndGetPreference(): void 4832f20c14SGreg Roach { 4932f20c14SGreg Roach Site::setPreference('setting', 'foo'); 5032f20c14SGreg Roach 5132f20c14SGreg Roach $this->assertSame('foo', Site::getPreference('setting')); 5232f20c14SGreg Roach } 5332f20c14SGreg Roach 5432f20c14SGreg Roach /** 5532f20c14SGreg Roach * @covers \Fisharebest\Webtrees\Site 5632f20c14SGreg Roach * 5732f20c14SGreg Roach * @return void 5832f20c14SGreg Roach */ 5932f20c14SGreg Roach public function test2000CharacterLimit(): void 6032f20c14SGreg Roach { 6132f20c14SGreg Roach $too_long = str_repeat('x', 3000); 6232f20c14SGreg Roach $expected = str_repeat('x', 2000); 6332f20c14SGreg Roach 6432f20c14SGreg Roach Site::setPreference('setting', $too_long); 6532f20c14SGreg Roach 6632f20c14SGreg Roach $this->assertSame($expected, Site::getPreference('setting')); 67a25f0a04SGreg Roach } 68a25f0a04SGreg Roach} 69