mirror of
https://github.com/maximebf/php-debugbar.git
synced 2025-06-12 17:11:00 +02:00
* Add option to set theme * Replace colors with variables * Use mask for icons * Fix borders * Use better variables * Remove theme * Add github dark * Fix select * Tweak open handler * Fix inputs * Fix toolbar * Fix labels * Add theme switcher * Use :after for icons * Slight tweak to base css * Tweak restore btn * Use font variables, tweak timeline * TWeak openhandler * Tweak query hover * Remove openhandler padding * Fix dataset switcher * Tweak toolbar * Move settings, simplify storage * Add floating position and autoshow to settings * Tweak constructor * Add test * Add hide empty tabs option * Tweak loading * Fix test * Breathe a little * Add screenshots to tests, test light/dark * Run screenshot only on 8.4 * Tweak folder * Tweak * Rename var * Twaek hover * TWeak sql * Tweak accent * Fix overly fanatic rename * Tweak to header
132 lines
4.9 KiB
PHP
132 lines
4.9 KiB
PHP
<?php
|
|
|
|
namespace DebugBar\Tests\Browser;
|
|
|
|
use Facebook\WebDriver\WebDriverDimension;
|
|
use Facebook\WebDriver\WebDriverElement;
|
|
|
|
class DebugbarTest extends AbstractBrowserTest
|
|
{
|
|
public function testDebugbarTab(): void
|
|
{
|
|
$client = static::createPantherClient();
|
|
$size = new WebDriverDimension(1920, 800);
|
|
$client->manage()->window()->setSize($size);
|
|
|
|
$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');
|
|
|
|
$client->takeScreenshot(__DIR__ .'/../../../screenshots/minimized.png');
|
|
}
|
|
|
|
public function testDebugbarLightMode(): void
|
|
{
|
|
$client = static::createPantherClient();
|
|
$size = new WebDriverDimension(1920, 800);
|
|
$client->manage()->window()->setSize($size);
|
|
|
|
$crawler = $client->request('GET', '/demo/?theme=light');
|
|
|
|
// Wait for Debugbar to load
|
|
$crawler = $client->waitFor('.phpdebugbar-body');
|
|
|
|
usleep(1000);
|
|
if (!$this->isTabActive($crawler, 'messages')) {
|
|
$client->click($this->getTabLink($crawler, 'messages'));
|
|
}
|
|
|
|
$client->takeScreenshot(__DIR__ .'/../../../screenshots/light.png');
|
|
}
|
|
|
|
public function testDebugbarDarkMode(): void
|
|
{
|
|
$client = static::createPantherClient();
|
|
$size = new WebDriverDimension(1920, 800);
|
|
$client->manage()->window()->setSize($size);
|
|
|
|
$crawler = $client->request('GET', '/demo/?theme=dark');
|
|
|
|
// Wait for Debugbar to load
|
|
$crawler = $client->waitFor('.phpdebugbar-body');
|
|
|
|
usleep(1000);
|
|
if (!$this->isTabActive($crawler, 'messages')) {
|
|
$client->click($this->getTabLink($crawler, 'messages'));
|
|
}
|
|
|
|
$client->takeScreenshot(__DIR__ .'/../../../screenshots/dark.png');
|
|
}
|
|
|
|
public function testDebugbarAjax(): void
|
|
{
|
|
$client = static::createPantherClient();
|
|
$size = new WebDriverDimension(1920, 800);
|
|
$client->manage()->window()->setSize($size);
|
|
|
|
$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]);
|
|
|
|
$client->takeScreenshot(__DIR__ .'/../../../screenshots/ajax.png');
|
|
}
|
|
|
|
} |