jb-data.de/lib/sc/tests/HeadingTest.php
2025-08-11 22:23:30 +02:00

130 lines
3.1 KiB
PHP

<?php
namespace Spekulatius\PHPScraper\Tests;
class HeadingTest extends \PHPUnit\Framework\TestCase
{
/**
* @test
*/
public function testMissingHeadings()
{
$web = new \Spekulatius\PHPScraper\PHPScraper;
// Navigate to the test page.
$web->go('https://test-pages.phpscraper.de/meta/no-meta.html');
// Check the missing headers (h1 actually exists on the page).
$this->assertSame([], $web->h2);
$this->assertSame([], $web->h3);
$this->assertSame([], $web->h4);
$this->assertSame([], $web->h5);
$this->assertSame([], $web->h6);
}
/**
* @test
*/
public function testWithHTMLEntity()
{
$web = new \Spekulatius\PHPScraper\PHPScraper;
// Navigate to the test page.
$web->go('https://test-pages.phpscraper.de/meta/html-entities.html');
// Check the h1
$this->assertSame(
'We are testing here & elsewhere!',
$web->h1[0]
);
// h2s
$this->assertSame(2, count($web->h2));
$this->assertSame([
'Cat & Mouse',
'Mouse & Cat',
], $web->h2);
// Collection of headings
$this->assertSame(
[
['We are testing here & elsewhere!'],
['Cat & Mouse', 'Mouse & Cat'],
['1', '2', '3'],
['Not so important heading'],
[],
[],
],
$web->headings
);
}
/**
* @test
*/
public function testLoremIpsum()
{
$web = new \Spekulatius\PHPScraper\PHPScraper;
// Navigate to the test page.
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
// Check the h1
$this->assertSame(
'We are testing here!',
$web->h1[0]
);
// h2s
$this->assertSame(2, count($web->h2));
$this->assertSame([
'h2s are headings too.',
'h2s are headings too.',
], $web->h2);
}
/**
* @test
*/
public function testGermanUmlaute()
{
$web = new \Spekulatius\PHPScraper\PHPScraper;
// Navigate to the test page.
$web->go('https://test-pages.phpscraper.de/meta/german-umlaute.html');
// Check the h1
$this->assertSame(
'We are testing here ä ü ö!',
$web->h1[0]
);
// h2s
$this->assertSame(2, count($web->h2));
$this->assertSame([
'Täst, ehm, test!',
'Weiter testen, Müller!',
], $web->h2);
}
/**
* @test
*/
public function testChineseCharacters()
{
$web = new \Spekulatius\PHPScraper\PHPScraper;
// Navigate to the test page.
$web->go('https://test-pages.phpscraper.de/meta/chinese-characters.html');
// Check the h1
$this->assertSame(
'We are testing here! 加油!',
$web->h1[0]
);
// h2s
$this->assertSame(2, count($web->h2));
$this->assertSame(['加油!', '加油 #1!'], $web->h2);
}
}