createDatabaseInterface(); DatabaseInterface::$instance = $dbi; Current::$database = 'PMA_db'; Current::$table = 'PMA_table'; Current::$lang = 'en'; $config = Config::getInstance(); $config->selectedServer['DisableIS'] = true; $config->selectedServer['tracking_default_statements'] = 'DELETE'; $relationParameters = RelationParameters::fromArray([ RelationParameters::DATABASE => 'pmadb', RelationParameters::TRACKING => 'tracking', RelationParameters::TRACKING_WORK => true, ]); (new ReflectionProperty(Relation::class, 'cache'))->setValue(null, $relationParameters); $template = new Template(); $relation = new Relation($dbi); $bookmarkRepository = new BookmarkRepository($dbi, $relation); $this->tracking = new Tracking( new SqlQueryForm($template, $dbi, $bookmarkRepository), $template, $relation, $dbi, self::createStub(TrackingChecker::class), ); } /** * 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'], ]; $filterUsers = ['username1']; $ret = $this->tracking->filter( $data, $filterUsers, new DateTimeImmutable('2010-01-01 12:34:56'), new DateTimeImmutable('2020-01-01 12:34:56'), ); self::assertSame('username1', $ret[0]['username']); self::assertSame('statement1', $ret[0]['statement']); } public function testGetHtmlForMain(): void { $html = $this->tracking->getHtmlForMainPage('PMA_db', 'PMA_table', []); self::assertStringContainsString('PMA_db.PMA_table', $html); self::assertStringContainsString('date_created', $html); self::assertStringContainsString(__('Delete version'), $html); self::assertStringContainsString('
', $html); self::assertStringContainsString('
', $html); self::assertStringContainsString('
', $html); self::assertStringContainsString('