createDatabaseInterface(); $GLOBALS['server'] = 1; $GLOBALS['db'] = 'PMA_db'; $GLOBALS['table'] = 'PMA_table'; $GLOBALS['lang'] = 'en'; $GLOBALS['text_dir'] = 'ltr'; $GLOBALS['PMA_PHP_SELF'] = 'index.php'; $GLOBALS['cfg']['Server']['DisableIS'] = true; $GLOBALS['cfg']['Server']['tracking_default_statements'] = 'DELETE'; $_SESSION['relation'] = []; $_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([ 'db' => 'pmadb', 'tracking' => 'tracking', 'trackingwork' => true, ])->toArray(); $template = new Template(); $this->tracking = new Tracking( new SqlQueryForm($template, $GLOBALS['dbi']), $template, new Relation($GLOBALS['dbi']), $GLOBALS['dbi'] ); } /** * Tests for filter() method. */ public function testFilter(): void { $data = [ [ 'date' => '2012-01-01 12:34:56', 'username' => 'username1', 'statement' => 'statement1', ], [ 'date' => '2013-01-01 12:34:56', 'username' => 'username2', 'statement' => 'statement2', ], ]; $filter_users = ['username1']; $ret = $this->tracking->filter( $data, $filter_users, new DateTimeImmutable('2010-01-01 12:34:56'), new DateTimeImmutable('2020-01-01 12:34:56') ); $this->assertEquals('username1', $ret[0]['username']); $this->assertEquals('statement1', $ret[0]['statement']); } /** * Tests for extractTableNames() method from nested table_list. */ public function testExtractTableNames(): void { $GLOBALS['cfg']['NavigationTreeTableSeparator'] = '_'; $table_list = [ 'hello_' => [ 'is_group' => 1, 'lovely_' => [ 'is_group' => 1, 'hello_lovely_world' => ['Name' => 'hello_lovely_world'], 'hello_lovely_world2' => ['Name' => 'hello_lovely_world2'], ], 'hello_world' => ['Name' => 'hello_world'], ], ]; $untracked_tables = $this->tracking->extractTableNames($table_list, 'db', true); $this->assertContains('hello_world', $untracked_tables); $this->assertContains('hello_lovely_world', $untracked_tables); $this->assertContains('hello_lovely_world2', $untracked_tables); } public function testGetHtmlForMain(): void { $html = $this->tracking->getHtmlForMainPage('PMA_db', 'PMA_table', [], 'ltr'); $this->assertStringContainsString('PMA_db.PMA_table', $html); $this->assertStringContainsString('