xref: /webtrees/tests/feature/EmbeddedVariablesTest.php (revision 4c78e066e3ba48f4c71bb900fac88b9e85e97474)
1fd9aba47SGreg Roach<?php
23976b470SGreg Roach
3fd9aba47SGreg Roach/**
4fd9aba47SGreg Roach * webtrees: online genealogy
589f7189bSGreg Roach * Copyright (C) 2021 webtrees development team
6fd9aba47SGreg Roach * This program is free software: you can redistribute it and/or modify
7fd9aba47SGreg Roach * it under the terms of the GNU General Public License as published by
8fd9aba47SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9fd9aba47SGreg Roach * (at your option) any later version.
10fd9aba47SGreg Roach * This program is distributed in the hope that it will be useful,
11fd9aba47SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12fd9aba47SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13fd9aba47SGreg Roach * GNU General Public License for more details.
14fd9aba47SGreg Roach * You should have received a copy of the GNU General Public License
1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16fd9aba47SGreg Roach */
17fcfa147eSGreg Roach
18fd9aba47SGreg Roachdeclare(strict_types=1);
19fd9aba47SGreg Roach
20fd9aba47SGreg Roachnamespace Fisharebest\Webtrees;
21fd9aba47SGreg Roach
221fe542e9SGreg Roachuse Fisharebest\Webtrees\Contracts\UserInterface;
23e5a6b4d4SGreg Roachuse Fisharebest\Webtrees\Services\ModuleService;
241e653452SGreg Roachuse Fisharebest\Webtrees\Services\TreeService;
25e5a6b4d4SGreg Roachuse Fisharebest\Webtrees\Services\UserService;
26*4c78e066SGreg Roachuse Fisharebest\Webtrees\Statistics\Service\CountryService;
27cd94ca66SGreg Roachuse Psr\Http\Message\ServerRequestInterface;
28e5a6b4d4SGreg Roach
29fd9aba47SGreg Roach/**
30fd9aba47SGreg Roach * Test the user functions
3194caf646SGreg Roach *
3227701ab0SGreg Roach * @covers \Fisharebest\Webtrees\Statistics
33f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\BrowserRepository
34f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\ServerRepository
35f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\LatestUserRepository
36f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\FamilyDatesRepository
37f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\HitCountRepository
38f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\NewsRepository
39f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\FavoritesRepository
40f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\IndividualRepository
41f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\MediaRepository
42f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\MessageRepository
43f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\ContactRepository
44f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\GedcomRepository
45f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\FamilyRepository
46f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\EventRepository
47f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\PlaceRepository
48f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Repository\UserRepository
49f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartChildren
50f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartAge
51f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartCommonGiven
52f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartMarriageAge
53f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartCommonSurname
54f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartDistribution
55f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartFamilyLargest
56f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartNoChildrenFamilies
57f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartSex
58f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartMedia
59f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartMarriage
60f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartFamilyWithSources
61f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartMortality
62f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartDeath
63f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartIndividualWithSources
64f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartBirth
65f389d81eSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Google\ChartDivorce
66d12c87dfSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Service\CountryService
67d12c87dfSGreg Roach * @covers \Fisharebest\Webtrees\Statistics\Service\CenturyService
6894caf646SGreg Roach */
6994caf646SGreg Roachclass EmbeddedVariablesTest extends TestCase
7094caf646SGreg Roach{
71cd94ca66SGreg Roach    protected static bool $uses_database = true;
7294caf646SGreg Roach
7394caf646SGreg Roach    /**
74fd9aba47SGreg Roach     * @return void
75fd9aba47SGreg Roach     */
76e5a6b4d4SGreg Roach    public function testAllEmbeddedVariables(): void
77fd9aba47SGreg Roach    {
78cd94ca66SGreg Roach        $user_service = new UserService();
79e5a6b4d4SGreg Roach
80cd94ca66SGreg Roach        $user = $user_service->create('user', 'User', 'user@example.com', 'secret');
811fe542e9SGreg Roach        $user->setPreference(UserInterface::PREF_IS_ADMINISTRATOR, '1');
82945057aeSGreg Roach        Auth::login($user);
83e5a6b4d4SGreg Roach
84cd94ca66SGreg Roach        $tree       = $this->importTree('demo.ged');
85cd94ca66SGreg Roach        $request    = self::createRequest()->withAttribute('tree', $tree);
86cd94ca66SGreg Roach        Webtrees::set(ServerRequestInterface::class, $request);
87cd94ca66SGreg Roach
88*4c78e066SGreg Roach        $statistics = new Statistics(new CountryService(), new ModuleService(), $tree, $user_service);
89cd94ca66SGreg Roach
90cd94ca66SGreg Roach        // As member
91cd94ca66SGreg Roach        $text = $statistics->embedTags('#getAllTagsTable#');
92cd94ca66SGreg Roach        self::assertNotEquals('#getAllTagsTable#', $text);
93cd94ca66SGreg Roach
94cd94ca66SGreg Roach        // As visitor
9538ef8377SGreg Roach        $text = $statistics->embedTags('#getAllTagsTable#');
965e933c21SGreg Roach        self::assertNotEquals('#getAllTagsTable#', $text);
97e5a6b4d4SGreg Roach    }
98e5a6b4d4SGreg Roach
99e5a6b4d4SGreg Roach    /**
100e5a6b4d4SGreg Roach     * @return void
101e5a6b4d4SGreg Roach     */
102e5a6b4d4SGreg Roach    public function testAllEmbeddedVariablesWithEmptyTree(): void
103e5a6b4d4SGreg Roach    {
1041e653452SGreg Roach        $tree_service = new TreeService();
1051e653452SGreg Roach        $tree         = $tree_service->create('name', 'title');
106*4c78e066SGreg Roach        $statistics   = new Statistics(new CountryService(), new ModuleService(), $tree, new UserService());
107e5a6b4d4SGreg Roach
108945057aeSGreg Roach        // As visitor
1094a520496SGreg Roach        $text = $statistics->embedTags('#getAllTagsTable#');
1105e933c21SGreg Roach        self::assertNotEquals('#getAllTagsTable#', $text);
111945057aeSGreg Roach
112945057aeSGreg Roach        // As member
113945057aeSGreg Roach        $user = (new UserService())->create('user', 'User', 'user@example.com', 'secret');
1141fe542e9SGreg Roach        $user->setPreference(UserInterface::PREF_IS_ADMINISTRATOR, '1');
115945057aeSGreg Roach        Auth::login($user);
116e5a6b4d4SGreg Roach
11738ef8377SGreg Roach        $text = $statistics->embedTags('#getAllTagsTable#');
1185e933c21SGreg Roach        self::assertNotEquals('#getAllTagsTable#', $text);
119fd9aba47SGreg Roach    }
120fd9aba47SGreg Roach}
121