Selaa lähdekoodia

Add tests for Network\Probe::getFeedLink

tags/2020.07
Hypolite Petovan 4 kuukautta sitten
vanhempi
commit
782218f781
1 muutettua tiedostoa jossa 108 lisäystä ja 0 poistoa
  1. +108
    -0
      tests/src/Network/ProbeTest.php

+ 108
- 0
tests/src/Network/ProbeTest.php Näytä tiedosto

@@ -0,0 +1,108 @@
<?php

namespace Friendica\Test\src\Network;

use Friendica\Network\Probe;
use PHPUnit\Framework\TestCase;

class ProbeTest extends TestCase
{
const TEMPLATENOBASE = '
<!DOCTYPE html>
<html lang="en-us">
<head>
<title>Example Blog</title>
<link href="{{$link}}" rel="alternate" type="application/rss+xml" title="Example Blog" />
<link href="{{$link}}" rel="feed" type="application/rss+xml" title="Example Blog" />
</head>
<body>
<p>Hello World!</p>
</body>
</html>';

const TEMPLATEBASE = '
<!DOCTYPE html>
<html lang="en-us">
<head>
<title>Example Blog</title>
<link href="{{$link}}" rel="alternate" type="application/rss+xml" title="Example Blog" />
<link href="{{$link}}" rel="feed" type="application/rss+xml" title="Example Blog" />
<base href="{{$url}}">
</head>
<body>
<p>Hello World!</p>
</body>
</html>';

const EXPECTED = [
'https://example.org/path/to/blog/index.php' => [
'index.xml' => 'https://example.org/path/to/blog/index.xml',
'./index.xml' => 'https://example.org/path/to/blog/index.xml',
'../index.xml' => 'https://example.org/path/to/index.xml',
'/index.xml' => 'https://example.org/index.xml',
'//example.com/index.xml' => 'https://example.com/index.xml',
],
'https://example.org/path/to/blog/' => [
'index.xml' => 'https://example.org/path/to/blog/index.xml',
'./index.xml' => 'https://example.org/path/to/blog/index.xml',
'../index.xml' => 'https://example.org/path/to/index.xml',
'/index.xml' => 'https://example.org/index.xml',
'//example.com/index.xml' => 'https://example.com/index.xml',
],
'https://example.org/blog/' => [
'index.xml' => 'https://example.org/blog/index.xml',
'./index.xml' => 'https://example.org/blog/index.xml',
'../index.xml' => 'https://example.org/index.xml',
'/index.xml' => 'https://example.org/index.xml',
'//example.com/index.xml' => 'https://example.com/index.xml',
],
'https://example.org' => [
'index.xml' => 'https://example.org/index.xml',
'./index.xml' => 'https://example.org/index.xml',
'../index.xml' => 'https://example.org/index.xml',
'/index.xml' => 'https://example.org/index.xml',
'//example.com/index.xml' => 'https://example.com/index.xml',
],
];

private function replaceMacros($template, $vars)
{
foreach ($vars as $var => $value) {
$template = str_replace('{{' . $var . '}}', $value, $template);
}

return $template;
}

/**
* @small
*/
public function testGetFeedLinkNoBase()
{
foreach (self::EXPECTED as $url => $hrefs) {
foreach ($hrefs as $href => $expected) {
$body = $this->replaceMacros(self::TEMPLATENOBASE, ['$link' => $href]);

$feedLink = Probe::getFeedLink($url, $body);

$this->assertEquals($expected, $feedLink, 'base url = ' . $url . ' | href = ' . $href);
}
}
}

/**
* @small
*/
public function testGetFeedLinkBase()
{
foreach (self::EXPECTED as $url => $hrefs) {
foreach ($hrefs as $href => $expected) {
$body = $this->replaceMacros(self::TEMPLATEBASE, ['$url' => $url, '$link' => $href]);

$feedLink = Probe::getFeedLink('http://example.com', $body);

$this->assertEquals($expected, $feedLink, 'base url = ' . $url . ' | href = ' . $href);
}
}
}
}

Ladataan…
Peruuta
Tallenna