/** * Test for PMA_Tracker::createDatabaseVersion() * * @return void * @test */ public function testCreateDatabaseVersion() { if (!setupForTestsUsingDate()) { $this->markTestSkipped("Cannot override internal function date()"); } $GLOBALS['cfg']['Server']['tracking_add_drop_table'] = true; $GLOBALS['cfg']['Server']['tracking_add_drop_view'] = true; $GLOBALS['cfg']['Server']['user'] = "******"; $reflection = new \ReflectionClass('PMA_Tracker'); $method = $reflection->getMethod('init'); $method->setAccessible(true); $method->invoke(null, array()); $dbi = $this->getMockBuilder('PMA_DatabaseInterface') ->disableOriginalConstructor() ->getMock(); $date = date('Y-m-d H:i:s'); $expectedMainQuery = "/*NOTRACK*/" . "\nINSERT INTO. (db_name, table_name, version, date_created, date_updated," . " schema_snapshot, schema_sql, data_sql, tracking ) values ( 'pma_test', '', '1', '". $date ."', '". $date ."', '', '# log ". $date ." pma_test_user" . "\nSHOW DATABASES', '" . "\n', 'CREATE DATABASE,ALTER DATABASE,DROP DATABASE' )"; $GLOBALS['controllink'] = null; $dbi->expects($this->exactly(1)) ->method('query') ->with($expectedMainQuery, null, 0, false) ->will($this->returnValue("executed")); $GLOBALS['dbi'] = $dbi; $this->assertEquals( 'executed', PMA_Tracker::createDatabaseVersion('pma_test', '1', 'SHOW DATABASES') ); tearDownForTestsUsingDate(); }