1*68188742SMark Prins<?php 2*68188742SMark Prins/* 3*68188742SMark Prins* Copyright (c) 2022 Mark C. Prins <mprins@users.sf.net> 4*68188742SMark Prins* 5*68188742SMark Prins* Permission to use, copy, modify, and distribute this software for any 6*68188742SMark Prins* purpose with or without fee is hereby granted, provided that the above 7*68188742SMark Prins* copyright notice and this permission notice appear in all copies. 8*68188742SMark Prins* 9*68188742SMark Prins* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10*68188742SMark Prins* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11*68188742SMark Prins* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12*68188742SMark Prins* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13*68188742SMark Prins* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14*68188742SMark Prins* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15*68188742SMark Prins* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16*68188742SMark Prins*/ 17*68188742SMark Prins 18*68188742SMark Prins/** 19*68188742SMark Prins * Syntax tests for the openlayersmap plugin. 20*68188742SMark Prins * 21*68188742SMark Prins * @group plugin_openlayersmap 22*68188742SMark Prins * @group plugins 23*68188742SMark Prins */ 24*68188742SMark Prinsclass syntax_plugin_openlayersmap_test extends DokuWikiTest { 25*68188742SMark Prins protected $pluginsEnabled = array('openlayersmap', 'geophp'); 26*68188742SMark Prins 27*68188742SMark Prins /** 28*68188742SMark Prins * copy data and add pages to the index. 29*68188742SMark Prins */ 30*68188742SMark Prins public static function setUpBeforeClass(): void { 31*68188742SMark Prins parent::setUpBeforeClass(); 32*68188742SMark Prins global $conf; 33*68188742SMark Prins $conf['allowdebug'] = 1; 34*68188742SMark Prins $conf['dontlog'] = ''; 35*68188742SMark Prins $conf['cachetime'] = -1; 36*68188742SMark Prins 37*68188742SMark Prins $conf['plugin']['openlayersmap']['displayformat'] = 'DD'; 38*68188742SMark Prins $conf['plugin']['openlayersmap']['optionStaticMapGenerator'] = 'local'; 39*68188742SMark Prins $conf['plugin']['openlayersmap']['autoZoomMap'] = 1; 40*68188742SMark Prins 41*68188742SMark Prins TestUtils::rcopy(TMP_DIR, __DIR__ . '/data/'); 42*68188742SMark Prins } 43*68188742SMark Prins 44*68188742SMark Prins final public function setUp(): void { 45*68188742SMark Prins parent::setUp(); 46*68188742SMark Prins 47*68188742SMark Prins global $conf; 48*68188742SMark Prins// $data = array(); 49*68188742SMark Prins// search($data, $conf['datadir'], 'search_allpages', array('skipacl' => true)); 50*68188742SMark Prins// foreach($data as $val) { 51*68188742SMark Prins// idx_addPage($val['id']); 52*68188742SMark Prins// } 53*68188742SMark Prins if($conf['allowdebug']) { 54*68188742SMark Prins if(mkdir(DOKU_TMP_DATA . 'data/log/debug/', 0777, true)) { 55*68188742SMark Prins touch(DOKU_TMP_DATA . 'data/log/debug/' . date('Y-m-d') . '.log'); 56*68188742SMark Prins } 57*68188742SMark Prins 58*68188742SMark Prins } 59*68188742SMark Prins } 60*68188742SMark Prins 61*68188742SMark Prins final public function tearDown(): void { 62*68188742SMark Prins parent::tearDown(); 63*68188742SMark Prins 64*68188742SMark Prins global $conf; 65*68188742SMark Prins // try to get the debug log after running the test, print and clear 66*68188742SMark Prins if($conf['allowdebug']) { 67*68188742SMark Prins print "\n"; 68*68188742SMark Prins readfile(DOKU_TMP_DATA . 'data/log/debug/' . date('Y-m-d') . '.log'); 69*68188742SMark Prins unlink(DOKU_TMP_DATA . 'data/log/debug/' . date('Y-m-d') . '.log'); 70*68188742SMark Prins } 71*68188742SMark Prins } 72*68188742SMark Prins 73*68188742SMark Prins final public function test_rur(): void { 74*68188742SMark Prins $request = new TestRequest(); 75*68188742SMark Prins $response = $request->get(array('id' => 'rur')); 76*68188742SMark Prins 77*68188742SMark Prins $_content = $response->getContent(); 78*68188742SMark Prins self::assertStringContainsString('Rur', $_content); 79*68188742SMark Prins self::assertStringContainsString('<script defer="defer" src="/./lib/plugins/openlayersmap/ol7/ol.js"></script>', $_content); 80*68188742SMark Prins self::assertStringContainsString('<div id="olMap-static" class="olStaticMap">', $_content); 81*68188742SMark Prins self::assertStringContainsString('<table class="olPOItable" id="olMap-table">', $_content); 82*68188742SMark Prins 83*68188742SMark Prins // image data/media/olmapmaps/openstreetmap/13/cache_8b/9b/94cd3dabd2d1c470a2d5b4bea6df.png should exist 84*68188742SMark Prins // <img src="/./lib/exe/fetch.php?w=650&h=550&tok=72bf3a&media=olmapmaps:openstreetmap:13:cache_8b:9b:94cd3dabd2d1c470a2d5b4bea6df.png" 85*68188742SMark Prins // class="medialeft" loading="lazy" title="Rur parkings " alt="Rur parkings " width="650" height="550" /> 86*68188742SMark Prins $_staticImage = $response->queryHTML('img[src*="olmapmaps:openstreetmap:13:cache_8b:9b:94cd3dabd2d1c470a2d5b4bea6df.png"]'); 87*68188742SMark Prins self::assertNotEmpty($_staticImage); 88*68188742SMark Prins self::assertEquals('medialeft', $_staticImage->attr('class')); 89*68188742SMark Prins self::assertEquals('650', $_staticImage->attr('width')); 90*68188742SMark Prins self::assertEquals('550', $_staticImage->attr('height')); 91*68188742SMark Prins self::assertStringContainsString('Rur parkings', $_staticImage->attr('title')); 92*68188742SMark Prins 93*68188742SMark Prins// <div class="olPOItableSpan" id="olMap-table-span">\n 94*68188742SMark Prins// <table class="olPOItable" id="olMap-table">\n 95*68188742SMark Prins// <caption class="olPOITblCaption">Points of Interest</caption>\n 96*68188742SMark Prins// <thead class="olPOITblHeader">\n 97*68188742SMark Prins// <tr>\n 98*68188742SMark Prins// <th class="rowId" scope="col">id</th>\n 99*68188742SMark Prins// <th class="icon" scope="col">symbol</th>\n 100*68188742SMark Prins// <th class="lat" scope="col" title="latitude in decimal degrees">latitude</th>\n 101*68188742SMark Prins// <th class="lon" scope="col" title="longitude in decimal degrees">longitude</th>\n 102*68188742SMark Prins// <th class="txt" scope="col">description</th>\n 103*68188742SMark Prins// </tr>\n 104*68188742SMark Prins// </thead><tfoot class="olPOITblFooter"><tr><td colspan="5">Rur parkings</td></tr></tfoot><tbody class="olPOITblBody">\n 105*68188742SMark Prins// <tr>\n 106*68188742SMark Prins// <td class="rowId">1</td>\n 107*68188742SMark Prins// <td class="icon"><img src="/./lib/plugins/openlayersmap/icons/parking.png" alt="parking" /></td>\n 108*68188742SMark Prins// <td class="lat" title="latitude in decimal degrees">50.548611º</td>\n 109*68188742SMark Prins// <td class="lon" title="longitude in decimal degrees">6.228889º</td>\n 110*68188742SMark Prins// <td class="txt"><p>Parking Dreistegen</p></td>\n 111*68188742SMark Prins// </tr>\n 112*68188742SMark Prins// <tr>\n 113*68188742SMark Prins// <td class="rowId">2</td>\n 114*68188742SMark Prins// <td class="icon"><img src="/./lib/plugins/openlayersmap/icons/parking.png" alt="parking" /></td>\n 115*68188742SMark Prins// <td class="lat" title="latitude in decimal degrees">50.56384º</td>\n 116*68188742SMark Prins// <td class="lon" title="longitude in decimal degrees">6.29766º</td>\n 117*68188742SMark Prins// <td class="txt"><p>Parking Grünenthalstrasse</p></td>\n 118*68188742SMark Prins// </tr></tbody>\n 119*68188742SMark Prins// </table>\n 120*68188742SMark Prins// </div>\n 121*68188742SMark Prins 122*68188742SMark Prins $_latCells = $response->queryHTML('td[class="lat"]'); 123*68188742SMark Prins self::assertNotEmpty($_latCells); 124*68188742SMark Prins // not available in Hogfather 125*68188742SMark Prins // self::assertEquals('50.548611º', $_latCells->first()->text()); 126*68188742SMark Prins self::assertEquals('50.548611º', $_latCells->get(0)->text()); 127*68188742SMark Prins 128*68188742SMark Prins $_lonCells = $response->queryHTML('td[class="lon"]'); 129*68188742SMark Prins self::assertNotEmpty($_lonCells); 130*68188742SMark Prins // not available in Hogfather 131*68188742SMark Prins // self::assertEquals('6.29766º', $_lonCells->last()->text()); 132*68188742SMark Prins self::assertEquals('6.29766º', $_lonCells->get(1)->text()); 133*68188742SMark Prins } 134*68188742SMark Prins}