2024-04-20 15:13:53 -07:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
|
|
namespace Drupal\Tests\ufc\Kernel;
|
|
|
|
|
|
|
|
|
|
|
|
use Drupal\Tests\UnitTestCase;
|
2025-10-15 22:49:16 -04:00
|
|
|
|
use Symfony\Component\DomCrawler\Crawler;
|
2024-04-20 15:13:53 -07:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @coversDefaultClass \Drupal\ufc\Services\FightImporter
|
|
|
|
|
|
* @group ufc
|
|
|
|
|
|
*/
|
|
|
|
|
|
class WebScraperKernelTest extends UnitTestCase {
|
|
|
|
|
|
|
|
|
|
|
|
protected $fighterImporter;
|
2025-10-15 22:49:16 -04:00
|
|
|
|
protected $fighter;
|
|
|
|
|
|
protected $crawler;
|
2024-04-20 15:13:53 -07:00
|
|
|
|
|
|
|
|
|
|
public function setUp(): void {
|
|
|
|
|
|
parent::setUp();
|
|
|
|
|
|
$this->fighterImporter = $this->createMock('Drupal\ufc\Services\FighterImporter');
|
2025-10-15 22:49:16 -04:00
|
|
|
|
$this->fighter = $this->createMock('Drupal\ufc\Fighter');
|
|
|
|
|
|
$this->crawler = $this->createMock('Symfony\Component\DomCrawler\Crawler');
|
2024-04-20 15:13:53 -07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @dataProvider extractFighterNamesDataProvider
|
|
|
|
|
|
*/
|
2025-10-15 22:49:16 -04:00
|
|
|
|
public function testValidFighter($test_input) {
|
|
|
|
|
|
$this->fighter->first_name = 'scott';
|
|
|
|
|
|
$this->fighter->crawler = new Crawler($test_input);
|
|
|
|
|
|
$this->fighter->setAge();
|
|
|
|
|
|
dump($this->fighter->first_name);
|
2024-04-20 15:13:53 -07:00
|
|
|
|
$this->assertEquals("1", 2, "These do not match.");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-10-15 22:49:16 -04:00
|
|
|
|
public static function extractFighterNamesDataProvider(): array {
|
2024-04-20 15:13:53 -07:00
|
|
|
|
return [
|
2025-10-15 22:49:16 -04:00
|
|
|
|
['<div class="faq-athlete__tabs"><section class="c-tabs c-tabs--athlete" aria-multiselectable="false"><ul class="c-tabs__nav c-tabs__nav--n-4" role="tablist"><li class="c-tabs__nav-item is-active" role="presentation"><button role="tab" aria-setsize="3" aria-posinset="1" aria-controls="tab-panel-1" aria-selected="1" tabindex="" class="btn c-tabs__nav-btn">Bio</button></li><li class="c-tabs__nav-item" role="presentation"><button role="tab" aria-setsize="3" aria-posinset="2" aria-controls="tab-panel-2" aria-selected="" tabindex="-1" class="btn c-tabs__nav-btn">Fighter Facts</button></li><li class="c-tabs__nav-item" role="presentation"><button role="tab" aria-setsize="3" aria-posinset="3" aria-controls="tab-panel-3" aria-selected="" tabindex="-1" class="btn c-tabs__nav-btn">UFC History</button></li><li class="c-tabs__nav-item" role="presentation"><button role="tab" aria-setsize="3" aria-posinset="4" aria-controls="tab-panel-4" aria-selected="" tabindex="-1" class="btn c-tabs__nav-btn">Q&A</button></li></ul><div class="c-tabs__mobile-nav"><label for="tab-1470598336">Choose tab:</label><select class="c-tabs__select" id="tab-1470598336"><option value="tab-label-1">Bio</option><option value="tab-label-2">Fighter Facts</option><option value="tab-label-3">UFC History</option><option value="tab-label-4">Q&A</option></select></div><div class="c-tabs__panes"><div class="c-tabs__pane is-current" id="tab-panel-1" role="tabpanel" aria-labelledby="tab-label-1" tabindex="-1"><div class="c-tabs__pane-body"><div class="c-bio c-bio--athlete"><div class="c-bio__content"><div class="c-bio__info"><div class="c-bio__info-details"><div class="c-bio__row--1col"><div class="c-bio__field"><div class="c-bio__label">Status</div><div class="c-bio__text">Active</div></div></div><div class="c-bio__row--2col"><div class="c-bio__field c-bio__field--border-bottom-small-screens"><div class="c-bio__label">Fighting style</div><div class="c-bio__text">Wrestler</div></div></div><div class="c-bio__row--3col"><div class="c-bio__field"><div class="c-bio__label">Age</div><div class="c-bio__text"><div class="field field--name-age field--type-integer field--label-hidden field__item">31</div></div></div><div class="c-bio__field"><div class="c-bio__label">Height</div><div class="c-bio__text">74.00</div></div><div class="c-bio__field"><div class="c-bio__label">Weight</div><div class="c-bio__text">183.00</div></div></div><div class="c-bio__row--3col"><div class="c-bio__field"><div class="c-bio__label">Octagon Debut</div><div class="c-bio__text">Jul. 15, 2020</div></div><div class="c-bio__field"><div class="c-bio__label">Reach</div><div class="c-bio__text">75.00</div></div><div class="c-bio__field"><div class="c-bio__label">Leg reach</div><div class="c-bio__text">40.00</div></div></div></div></div></div></div></div></div><div class="c-tabs__pane" id="tab-panel-2" role="tabpanel" aria-labelledby="tab-label-2" tabindex="-1"><div class="c-tabs__pane-body"><div class="field field--name-qna-facts field--type-text-long field--label-hidden field__item"><ul><li>Pro since 2018<br> </li><li>Six wins by KO, six by submission (Heel hook, 2 DArce choke, 2 RNC, face crank)<br> </li><li>Nine first round finishes<br> </li><li>Origin of nickname: “Means ‘Wolf’ in Chechen.”</li></ul></div></div></div><div class="c-tabs__pane" id="tab-panel-3" role="tabpanel" aria-labelledby="tab-label-3" tabindex="-1"><div class="c-tabs__pane-body"><div class="field field--name-qna-ufc field--type-text-long field--label-hidden field__item"><p><strong>UFC 319</strong>(10/16/25) Chimaev won a five round unanimous decision over Dricus Du Plessis to win the UFC middleweight title</p><p><strong>UFC 308</strong>(10/30/24) Chimaev submitted Robert Whittaker via face crank at 3:34 of the first round</p><p><strong>UFC 294</strong>(10/21/23) Chimaev won a three round majority decision over Kamaru Usman</p><p><strong>UFC 279</strong>(9/10/22) Chimaev submitted Kevin Holland via DArce choke at 2:13 of the first round </p><p><strong>UFC 273</strong>(4/9/22) Chimaev won a three
|
2024-04-20 15:13:53 -07:00
|
|
|
|
];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|