xref: /webtrees/tests/app/Module/MapLinkGoogleTest.php (revision a6305e6047f26d536d849acd709f6e8bad1366d9)
1c9c6f2ecSGreg Roach<?php
2c9c6f2ecSGreg Roach
3c9c6f2ecSGreg Roach/**
4c9c6f2ecSGreg Roach * webtrees: online genealogy
5d11be702SGreg Roach * Copyright (C) 2023 webtrees development team
6c9c6f2ecSGreg Roach * This program is free software: you can redistribute it and/or modify
7c9c6f2ecSGreg Roach * it under the terms of the GNU General Public License as published by
8c9c6f2ecSGreg Roach * the Free Software Foundation, either version 3 of the License, or
9c9c6f2ecSGreg Roach * (at your option) any later version.
10c9c6f2ecSGreg Roach * This program is distributed in the hope that it will be useful,
11c9c6f2ecSGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12c9c6f2ecSGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13c9c6f2ecSGreg Roach * GNU General Public License for more details.
14c9c6f2ecSGreg Roach * You should have received a copy of the GNU General Public License
15c9c6f2ecSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16c9c6f2ecSGreg Roach */
17c9c6f2ecSGreg Roach
18c9c6f2ecSGreg Roachdeclare(strict_types=1);
19c9c6f2ecSGreg Roach
20c9c6f2ecSGreg Roachnamespace Fisharebest\Webtrees\Module;
21c9c6f2ecSGreg Roach
22c9c6f2ecSGreg Roachuse DOMDocument;
23c9c6f2ecSGreg Roachuse Fisharebest\Webtrees\Fact;
24c9c6f2ecSGreg Roachuse Fisharebest\Webtrees\Individual;
25c9c6f2ecSGreg Roachuse Fisharebest\Webtrees\TestCase;
26202c018bSGreg Roachuse PHPUnit\Framework\Attributes\CoversClass;
27*a6305e60SGreg Roachuse PHPUnit\Framework\Attributes\CoversTrait;
28c9c6f2ecSGreg Roach
29202c018bSGreg Roach#[CoversClass(MapLinkBing::class)]
30168400f2SJulien BARBEY#[CoversTrait(ModuleMapLinkTrait::class)]
31c9c6f2ecSGreg Roachclass MapLinkGoogleTest extends TestCase
32c9c6f2ecSGreg Roach{
33c9c6f2ecSGreg Roach    public function testNoCoordinates(): void
34c9c6f2ecSGreg Roach    {
35c9c6f2ecSGreg Roach        $module = new MapLinkGoogle();
36c9c6f2ecSGreg Roach
37c9c6f2ecSGreg Roach        $fact = $this->createMock(Fact::class);
38c9c6f2ecSGreg Roach        $fact->method('latitude')->willReturn(null);
39c9c6f2ecSGreg Roach        $fact->method('longitude')->willReturn(null);
40c9c6f2ecSGreg Roach
41c9c6f2ecSGreg Roach        $html = $module->mapLink($fact);
42c9c6f2ecSGreg Roach
43f01ab4acSGreg Roach        static::assertSame('', $html);
44c9c6f2ecSGreg Roach    }
45c9c6f2ecSGreg Roach
46c9c6f2ecSGreg Roach    public function testLink(): void
47c9c6f2ecSGreg Roach    {
48c9c6f2ecSGreg Roach        $module = new MapLinkGoogle();
49c9c6f2ecSGreg Roach
50c9c6f2ecSGreg Roach        $record = $this->createMock(Individual::class);
51c9c6f2ecSGreg Roach        $record->method('fullName')->willReturn('FULL NAME');
52c9c6f2ecSGreg Roach
53c9c6f2ecSGreg Roach        $fact = $this->createMock(Fact::class);
54c9c6f2ecSGreg Roach        $fact->method('latitude')->willReturn(54.321);
55c9c6f2ecSGreg Roach        $fact->method('longitude')->willReturn(-1.2345);
56c9c6f2ecSGreg Roach        $fact->method('label')->willReturn('LABEL');
57c9c6f2ecSGreg Roach        $fact->method('record')->willReturn($record);
58c9c6f2ecSGreg Roach
59c9c6f2ecSGreg Roach        $html = $module->mapLink($fact);
60c9c6f2ecSGreg Roach
61c9c6f2ecSGreg Roach        self::assertTrue((new DOMDocument())->loadHTML($html), 'HTML=' . $html);
62c9c6f2ecSGreg Roach    }
63c9c6f2ecSGreg Roach}
64