1
0
mirror of https://github.com/maximebf/php-debugbar.git synced 2025-07-27 11:40:25 +02:00
Files
php-debugbar/tests/DebugBar/Tests/Browser/DebugbarTest.php
Barry vd. Heuvel 2a722cccf5 Combine dropdown with dataset handler (#642)
* Combine dropdown with dataset handler

* Add test for tab
2024-04-01 11:12:18 +02:00

86 lines
3.3 KiB
PHP

<?php
namespace DebugBar\Tests\Browser;
use Facebook\WebDriver\WebDriverElement;
class DebugbarTest extends AbstractBrowserTest
{
public function testDebugbarTab(): void
{
$client = static::createPantherClient();
$crawler = $client->request('GET', '/demo/');
// Wait for Debugbar to load
$crawler = $client->waitFor('.phpdebugbar-body');
usleep(1000);
if (!$this->isTabActive($crawler, 'messages')) {
$client->click($this->getTabLink($crawler, 'messages'));
}
$crawler = $client->waitForVisibility('.phpdebugbar-panel[data-collector=messages] .phpdebugbar-widgets-list');
$messages = $crawler->filter('.phpdebugbar-panel[data-collector=messages] .phpdebugbar-widgets-value')
->each(function(WebDriverElement $node){
return $node->getText();
});
$this->assertEquals('hello', $messages[0]);
$this->assertCount(4, $messages);
// Close it again
$client->click($this->getTabLink($crawler, 'messages'));
$client->waitForInvisibility('.phpdebugbar-panel[data-collector=messages] .phpdebugbar-widgets-list');
}
public function testDebugbarAjax(): void
{
$client = static::createPantherClient();
$crawler = $client->request('GET', '/demo/');
// Wait for Debugbar to load
$crawler = $client->waitFor('.phpdebugbar-body');
usleep(1000);
if (!$this->isTabActive($crawler, 'messages')) {
$client->click($this->getTabLink($crawler, 'messages'));
}
$crawler = $client->waitForVisibility('.phpdebugbar-widgets-messages .phpdebugbar-widgets-list');
$crawler->selectLink('load ajax content')->click();
$client->waitForElementToContain('.phpdebugbar-panel[data-collector=messages]', 'hello from ajax');
$client->waitForElementToContain('.phpdebugbar-datasets-switcher', 'ajax.php');
$messages = $crawler->filter('.phpdebugbar-panel[data-collector=messages] .phpdebugbar-widgets-value')
->each(function(WebDriverElement $node){
return $node->getText();
});
$this->assertEquals('hello from ajax', $messages[0]);
$crawler->selectLink('load ajax content with exception')->click();
$client->click($this->getTabLink($crawler, 'exceptions'));
$client->waitForElementToContain('.phpdebugbar-datasets-switcher', 'ajax_exception.php');
$client->waitForElementToContain('.phpdebugbar-panel[data-collector=exceptions] .phpdebugbar-widgets-message', 'Something failed!');
// Open network tab
$client->click($this->getTabLink($crawler, '__datasets'));
$client->waitForVisibility('.phpdebugbar-panel[data-collector=__datasets] .phpdebugbar-widgets-table-row');
$requests = $crawler->filter('.phpdebugbar-panel[data-collector=__datasets] .phpdebugbar-widgets-table-row')
->each(function(WebDriverElement $node){
return $node->getText();
});
$this->assertStringContainsString('GET /demo/', $requests[0]);
$this->assertStringContainsString('GET /demo/ajax.php (ajax)', $requests[1]);
$this->assertStringContainsString('GET /demo/ajax_exception.php (ajax)', $requests[2]);
}
}