30 lines
1.7 KiB
PHP
30 lines
1.7 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
use App\Services\Autopodbor\Agent\Extract\DirectoryParser;
|
|||
|
|
|
|||
|
|
it('берёт ссылки на карточки филиалов из списка 2ГИС', function () {
|
|||
|
|
$html = '<a href="/krasnoyarsk/firm/111">Ф1</a><a href="/krasnoyarsk/firm/222">Ф2</a>'
|
|||
|
|
.'<a href="/krasnoyarsk/firm/111">дубль</a><a href="/about">не филиал</a>';
|
|||
|
|
$links = (new DirectoryParser)->parseBranchList($html);
|
|||
|
|
expect($links)->toBe(['/krasnoyarsk/firm/111', '/krasnoyarsk/firm/222']);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
it('из карточки 2ГИС берёт телефон из tel: и адрес из заголовка', function () {
|
|||
|
|
$html = '<html><head><title>КрасЛомбард, улица Ладо Кецховели, 30, Красноярск — 2ГИС</title></head>'
|
|||
|
|
.'<body><h1>КрасЛомбард</h1><a href="tel:+73912920000">+7 (391) 2...</a></body></html>';
|
|||
|
|
$cards = (new DirectoryParser)->parseFirmCard($html, 'https://2gis.ru/krasnoyarsk/firm/111', '2ГИС');
|
|||
|
|
|
|||
|
|
expect($cards)->toHaveCount(1);
|
|||
|
|
expect($cards[0]->number)->toBe('+73912920000');
|
|||
|
|
expect($cards[0]->office)->toBe('улица Ладо Кецховели, 30');
|
|||
|
|
expect($cards[0]->url)->toBe('https://2gis.ru/krasnoyarsk/firm/111');
|
|||
|
|
expect($cards[0]->source)->toBe('2ГИС');
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
it('схлопывает неразрывные/двойные пробелы в адресе из заголовка', function () {
|
|||
|
|
$html = "<title>КрасЛомбард,\u{00A0}улица Весны,\u{00A0}7а, Красноярск — 2ГИС</title>"
|
|||
|
|
.'<a href="tel:+73912550000">x</a>';
|
|||
|
|
$cards = (new DirectoryParser)->parseFirmCard($html, 'u', '2ГИС');
|
|||
|
|
expect($cards[0]->office)->toBe('улица Весны, 7а');
|
|||
|
|
});
|