add test and patch for the https://github.com/spatie/crawler/issues/271
This commit is contained in:
parent
b26bd7c6c5
commit
c3cf29848a
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "jhodges/sitemap",
|
"name": "jhodges/sitemap",
|
||||||
"description": "generate full sitemap report",
|
"description": "Generate full sitemap report using spatie/crawler",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.1",
|
"php": "^7.1",
|
||||||
@ -26,6 +26,9 @@
|
|||||||
"patches": {
|
"patches": {
|
||||||
"spatie/crawler": {
|
"spatie/crawler": {
|
||||||
"add crawled again observer": "https://patch-diff.githubusercontent.com/raw/spatie/crawler/pull/280.patch"
|
"add crawled again observer": "https://patch-diff.githubusercontent.com/raw/spatie/crawler/pull/280.patch"
|
||||||
|
},
|
||||||
|
"guzzlehttp/guzzle": {
|
||||||
|
"Status code must be an integer value between 1xx and 5xx": "https://patch-diff.githubusercontent.com/raw/guzzle/guzzle/pull/2591.patch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ class CrawlerTest extends TestCase{
|
|||||||
'http://localhost:8080/interlinked2' => ['code' => 200],
|
'http://localhost:8080/interlinked2' => ['code' => 200],
|
||||||
'http://localhost:8080/interlinked3' => ['code' => 200],
|
'http://localhost:8080/interlinked3' => ['code' => 200],
|
||||||
'http://localhost:8080/internalServerError' => ['code' => 500],
|
'http://localhost:8080/internalServerError' => ['code' => 500],
|
||||||
|
'http://localhost:8080/invalidStatusCode' => ['code' => '---'],
|
||||||
'http://localhost:8080/notFound' => ['code' => 404],
|
'http://localhost:8080/notFound' => ['code' => 404],
|
||||||
'http://localhost:8080/redirect1' => ['code' => 302],
|
'http://localhost:8080/redirect1' => ['code' => 302],
|
||||||
'http://localhost:8080/redirect2' => ['code' => 302],
|
'http://localhost:8080/redirect2' => ['code' => 302],
|
||||||
@ -165,6 +166,15 @@ class CrawlerTest extends TestCase{
|
|||||||
], print_r($sitemap,true));
|
], print_r($sitemap,true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testInvalidStatusCode(){
|
||||||
|
$crawler=new Crawler();
|
||||||
|
$crawler->crawl('http://localhost:8080/invalidStatusCode');
|
||||||
|
$sitemap=$crawler->getResults();
|
||||||
|
$this->assertTreeContains($sitemap,[
|
||||||
|
'http://localhost:8080/invalidStatusCode' => ['code' => '---'],
|
||||||
|
], print_r($sitemap,true));
|
||||||
|
}
|
||||||
|
|
||||||
public function assertTreeContains($haystack, $contains, $crumbs=''){
|
public function assertTreeContains($haystack, $contains, $crumbs=''){
|
||||||
foreach($contains as $k=>$v){
|
foreach($contains as $k=>$v){
|
||||||
$this->assertArrayHasKey($k, $haystack, $crumbs);
|
$this->assertArrayHasKey($k, $haystack, $crumbs);
|
||||||
|
@ -16,6 +16,7 @@ app.get('/', function (request, response) {
|
|||||||
' <li><a href="/redirectLoop">redirectLoop</a></li>',
|
' <li><a href="/redirectLoop">redirectLoop</a></li>',
|
||||||
' <li><a href="/timeout">timeout</a></li>',
|
' <li><a href="/timeout">timeout</a></li>',
|
||||||
' <li><a href="/internalServerError">internalServerError</a></li>',
|
' <li><a href="/internalServerError">internalServerError</a></li>',
|
||||||
|
' <li><a href="/invalidStatusCode">invalidStatusCode</a></li>',
|
||||||
' <li><a href="/twoRedirectsToSameLocation">twoRedirectsToSameLocation</a></li>',
|
' <li><a href="/twoRedirectsToSameLocation">twoRedirectsToSameLocation</a></li>',
|
||||||
' <li><a href="mailto:test@example.com">mailto</a></li>',
|
' <li><a href="mailto:test@example.com">mailto</a></li>',
|
||||||
' <li><a href="tel:+4412345678">tel</a></li>',
|
' <li><a href="tel:+4412345678">tel</a></li>',
|
||||||
@ -78,6 +79,10 @@ app.get('/internalServerError', function (request, response) {
|
|||||||
response.status(500).end();
|
response.status(500).end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get('/invalidStatusCode', function (request, response) {
|
||||||
|
response.status(999).end();
|
||||||
|
});
|
||||||
|
|
||||||
app.get('/interlinked1', function (request, response) {
|
app.get('/interlinked1', function (request, response) {
|
||||||
response.end('<a href="/interlinked1">1</a><a href="/interlinked2">2</a><a href="/interlinked3">3</a>');
|
response.end('<a href="/interlinked1">1</a><a href="/interlinked2">2</a><a href="/interlinked3">3</a>');
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user