assertEquals( "ALL PRIVILEGES", $show_grants_str ); $this->assertEquals( "*", $show_grants_dbname ); $this->assertEquals( "*", $show_grants_tblname ); // TEST CASE 2 $show_grants_full_row = "GRANT ALL PRIVILEGES ON `mysql`.* TO " . "'root'@'localhost' WITH GRANT OPTION"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); $this->assertEquals( "ALL PRIVILEGES", $show_grants_str ); $this->assertEquals( "mysql", $show_grants_dbname ); $this->assertEquals( "*", $show_grants_tblname ); // TEST CASE 3 $show_grants_full_row = "GRANT SELECT, INSERT, UPDATE, DELETE " . "ON `mysql`.`columns_priv` TO 'root'@'localhost'"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); $this->assertEquals( "SELECT, INSERT, UPDATE, DELETE", $show_grants_str ); $this->assertEquals( "mysql", $show_grants_dbname ); $this->assertEquals( "columns_priv", $show_grants_tblname ); } /** * Test for PMA_checkRequiredPrivilegesForAdjust * * @return void */ public function testPMA_checkRequiredPrivilegesForAdjust() { // TEST CASE 1 $show_grants_full_row = "GRANT ALL PRIVILEGES ON *.* " . "TO 'root'@'localhost' WITH GRANT OPTION"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); // call the to-be-tested function PMA_checkRequiredPrivilegesForAdjust( $show_grants_str, $show_grants_dbname, $show_grants_tblname ); $this->assertEquals( true, $GLOBALS['col_priv'] ); $this->assertEquals( true, $GLOBALS['db_priv'] ); $this->assertEquals( true, $GLOBALS['proc_priv'] ); $this->assertEquals( true, $GLOBALS['table_priv'] ); // re-initialise the privileges $this->setUp(); // TEST CASE 2 $show_grants_full_row = "GRANT ALL PRIVILEGES ON `mysql`.* TO " . "'root'@'localhost' WITH GRANT OPTION"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); // call the to-be-tested function PMA_checkRequiredPrivilegesForAdjust( $show_grants_str, $show_grants_dbname, $show_grants_tblname ); $this->assertEquals( true, $GLOBALS['col_priv'] ); $this->assertEquals( true, $GLOBALS['db_priv'] ); $this->assertEquals( true, $GLOBALS['proc_priv'] ); $this->assertEquals( true, $GLOBALS['table_priv'] ); // re-initialise the privileges $this->setUp(); // TEST CASE 3 $show_grants_full_row = "GRANT SELECT, INSERT, UPDATE, DELETE ON " . "`mysql`.* TO 'root'@'localhost'"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); // call the to-be-tested function PMA_checkRequiredPrivilegesForAdjust( $show_grants_str, $show_grants_dbname, $show_grants_tblname ); $this->assertEquals( true, $GLOBALS['col_priv'] ); $this->assertEquals( true, $GLOBALS['db_priv'] ); $this->assertEquals( true, $GLOBALS['proc_priv'] ); $this->assertEquals( true, $GLOBALS['table_priv'] ); // re-initialise the privileges $this->setUp(); // TEST CASE 4 $show_grants_full_row = "GRANT SELECT, INSERT, UPDATE, DELETE ON " . "`mysql`.`db` TO 'root'@'localhost'"; list( $show_grants_str, $show_grants_dbname, $show_grants_tblname ) = PMA_getItemsFromShowGrantsRow( $show_grants_full_row ); // call the to-be-tested function PMA_checkRequiredPrivilegesForAdjust( $show_grants_str, $show_grants_dbname, $show_grants_tblname ); $this->assertEquals( false, $GLOBALS['col_priv'] ); $this->assertEquals( true, $GLOBALS['db_priv'] ); $this->assertEquals( false, $GLOBALS['proc_priv'] ); $this->assertEquals( false, $GLOBALS['table_priv'] ); } }