1<?php
2/*
3 * Copyright (c) 2016 Mark C. Prins <mprins@users.sf.net>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/**
19 * Action tests for the webmaster plugin.
20 *
21 * @group plugin_webmaster
22 * @group plugins
23 */
24class action_plugin_webmaster_test extends DokuWikiTest {
25
26    protected $pluginsEnabled = array('webmaster');
27
28    public function setUp(): void {
29        global $conf;
30
31        parent::setUp();
32
33        $conf ['plugin']['webmaster']['webmaster_google'] = 'webmaster_google';
34        $conf ['plugin']['webmaster']['webmaster_bing'] = 'webmaster_bing';
35        $conf ['plugin']['webmaster']['webmaster_yandexkey'] = 'webmaster_yandexkey';
36        $conf ['plugin']['webmaster']['webmaster_pinterestkey'] = 'webmaster_pinterestkey';
37    }
38
39    public function testHeaders(): void {
40        $request = new TestRequest();
41        $response = $request->get(array('id'=>'wiki:dokuwiki'), '/doku.php');
42
43        $this->assertTrue(
44            strpos($response->getContent(), 'DokuWiki') !== false,
45            'DokuWiki was not a word in the output'
46        );
47
48        // check webmaster meta headers
49        $this->assertEquals('webmaster_google',
50                        $response->queryHTML('meta[name="google-site-verification"]')->attr('content'));
51        $this->assertEquals('webmaster_bing',
52                        $response->queryHTML('meta[name="msvalidate.01"]')->attr('content'));
53        $this->assertEquals('webmaster_yandexkey',
54                        $response->queryHTML('meta[name="yandex-verification"]')->attr('content'));
55        $this->assertEquals('webmaster_pinterestkey',
56                        $response->queryHTML('meta[name="p:domain_verify"]')->attr('content'));
57    }
58}
59