1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\Bookmark;
use PhpMyAdmin\ConfigStorage\Features\BookmarkFeature;
use PhpMyAdmin\Dbal\DatabaseName;
use PhpMyAdmin\Dbal\TableName;
/**
* @covers \PhpMyAdmin\Bookmark
*/
#[\PHPUnit\Framework\Attributes\CoversClass(\PhpMyAdmin\Bookmark::class)]
class BookmarkTest extends AbstractTestCase
{
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp(): void
{
parent::setUp();
$GLOBALS['cfg']['Server']['user'] = 'root';
$GLOBALS['cfg']['Server']['pmadb'] = 'phpmyadmin';
$GLOBALS['cfg']['Server']['bookmarktable'] = 'pma_bookmark';
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000;
$GLOBALS['cfg']['ServerDefault'] = 1;
$GLOBALS['server'] = 1;
}
/**
* Tests for Bookmark::getList()
*/
public function testGetList(): void
{
$this->dummyDbi->addResult(
'SELECT * FROM `phpmyadmin`.`pma_bookmark` WHERE ( `user` = \'\' OR `user` = \'root\' )'
. ' AND dbase = \'sakila\' ORDER BY label ASC',
[['1', 'sakila', 'root', 'label', 'SELECT * FROM `actor` WHERE `actor_id` < 10;']],
['id', 'dbase', 'user', 'label', 'query']
);
$actual = Bookmark::getList(
new BookmarkFeature(DatabaseName::fromValue('phpmyadmin'), TableName::fromValue('pma_bookmark')),
$GLOBALS['dbi'],
$GLOBALS['cfg']['Server']['user'],
'sakila'
);
self::assertContainsOnlyInstancesOf(Bookmark::class, $actual);
$this->assertAllSelectsConsumed();
}
/**
* Tests for Bookmark::get()
*/
public function testGet(): void
{
$this->dummyDbi->addSelectDb('phpmyadmin');
self::assertNull(Bookmark::get(
$GLOBALS['dbi'],
$GLOBALS['cfg']['Server']['user'],
'phpmyadmin',
'1'
));
$this->assertAllSelectsConsumed();
}
/**
* Tests for Bookmark::save()
*/
public function testSave(): void
{
$bookmarkData = [
'bkm_database' => 'phpmyadmin',
'bkm_user' => 'root',
'bkm_sql_query' => 'SELECT "phpmyadmin"',
'bkm_label' => 'bookmark1',
];
$bookmark = Bookmark::createBookmark($GLOBALS['dbi'], $bookmarkData);
self::assertNotFalse($bookmark);
$this->dummyDbi->addSelectDb('phpmyadmin');
self::assertFalse($bookmark->save());
$this->assertAllSelectsConsumed();
}
}
|