Merge branch 'master' of https://github.com/phpmyadmin/phpmyadmin into UT_plu_parse
This commit is contained in:
commit
c4feb3e59b
@ -395,7 +395,7 @@ function PMA_getSqlQueryAndCreateDbBeforeCopy()
|
||||
*
|
||||
* @param array $tables_full array of all tables in given db or dbs
|
||||
* @param object $export_sql_plugin export plugin instance
|
||||
* @param boolean $move whether databse name is empty or not
|
||||
* @param boolean $move whether database name is empty or not
|
||||
* @param string $db database name
|
||||
*
|
||||
* @return string sql constraints query for full databases
|
||||
@ -459,7 +459,7 @@ function PMA_getViewsAndCreateSqlViewStandIn(
|
||||
*
|
||||
* @param array $tables_full array of all tables in given db or dbs
|
||||
* @param string $sql_query sql query for all operations
|
||||
* @param boolean $move whether databse name is empty or not
|
||||
* @param boolean $move whether database name is empty or not
|
||||
* @param string $db database name
|
||||
*
|
||||
* @return array ($sql_query, $error)
|
||||
@ -562,7 +562,7 @@ function PMA_runEventDefinitionsForDb($db)
|
||||
* Handle the views, return the boolean value whether table rename/copy or not
|
||||
*
|
||||
* @param array $views views as an array
|
||||
* @param boolean $move whether databse name is empty or not
|
||||
* @param boolean $move whether database name is empty or not
|
||||
* @param string $db database name
|
||||
*
|
||||
* @return boolean $_error whether table rename/copy or not
|
||||
|
||||
@ -37,7 +37,11 @@ class AuthenticationHttp extends AuthenticationPlugin
|
||||
&& ! empty($GLOBALS['cfg']['Server']['LogoutURL'])
|
||||
) {
|
||||
PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['LogoutURL']);
|
||||
exit;
|
||||
if (! defined('TESTSUITE')) {
|
||||
exit;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($GLOBALS['cfg']['Server']['auth_http_realm'])) {
|
||||
@ -81,7 +85,11 @@ class AuthenticationHttp extends AuthenticationPlugin
|
||||
include CUSTOM_FOOTER_FILE;
|
||||
}
|
||||
|
||||
exit;
|
||||
if (! defined('TESTSUITE')) {
|
||||
exit;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -165,7 +173,9 @@ class AuthenticationHttp extends AuthenticationPlugin
|
||||
) {
|
||||
$PHP_AUTH_USER = '';
|
||||
// -> delete user's choices that were stored in session
|
||||
session_destroy();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_destroy();
|
||||
}
|
||||
}
|
||||
|
||||
// Returns whether we get authentication settings or not
|
||||
|
||||
@ -42,7 +42,12 @@ class AuthenticationSignon extends AuthenticationPlugin
|
||||
} else {
|
||||
PMA_sendHeaderLocation($GLOBALS['cfg']['Server']['SignonURL']);
|
||||
}
|
||||
exit();
|
||||
|
||||
if (! defined('TESTSUITE')) {
|
||||
exit();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,12 +117,16 @@ class AuthenticationSignon extends AuthenticationPlugin
|
||||
/* End current session */
|
||||
$old_session = session_name();
|
||||
$old_id = session_id();
|
||||
session_write_close();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
/* Load single signon session */
|
||||
session_name($session_name);
|
||||
session_id($_COOKIE[$session_name]);
|
||||
session_start();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
/* Clear error message */
|
||||
unset($_SESSION['PMA_single_signon_error_message']);
|
||||
@ -157,14 +166,18 @@ class AuthenticationSignon extends AuthenticationPlugin
|
||||
}
|
||||
|
||||
/* End single signon session */
|
||||
session_write_close();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
/* Restart phpMyAdmin session */
|
||||
session_name($old_session);
|
||||
if (!empty($old_id)) {
|
||||
session_id($old_id);
|
||||
}
|
||||
session_start();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
/* Set the single signon host */
|
||||
$GLOBALS['cfg']['Server']['host'] = $single_signon_host;
|
||||
@ -234,12 +247,16 @@ class AuthenticationSignon extends AuthenticationPlugin
|
||||
/* Does session exist? */
|
||||
if (isset($_COOKIE[$session_name])) {
|
||||
/* End current session */
|
||||
session_write_close();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_write_close();
|
||||
}
|
||||
|
||||
/* Load single signon session */
|
||||
session_name($session_name);
|
||||
session_id($_COOKIE[$session_name]);
|
||||
session_start();
|
||||
if (! defined('TESTSUITE')) {
|
||||
session_start();
|
||||
}
|
||||
|
||||
/* Set error message */
|
||||
if (! empty($GLOBALS['login_without_password_is_forbidden'])) {
|
||||
|
||||
@ -1282,7 +1282,7 @@ function PMA_getRelatives($all_tables, $master)
|
||||
*
|
||||
* usually called after a column in a table was renamed
|
||||
*
|
||||
* @param string $db databse name
|
||||
* @param string $db database name
|
||||
* @param string $table table name
|
||||
* @param string $field old field name
|
||||
* @param string $new_name new field name
|
||||
|
||||
@ -527,6 +527,7 @@ EOT;
|
||||
* $chart_json for displaying the chart.
|
||||
*
|
||||
* @param array $profiling_results profiling results
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function PMA_analyzeAndGetTableHtmlForProfilingResults(
|
||||
@ -710,7 +711,7 @@ function PMA_getHtmlForOptionsList($values, $selected_values)
|
||||
* return null
|
||||
*
|
||||
* @param string $disp_mode display mode
|
||||
* @param bool $cfgBookmark confguration setting for bookmarking
|
||||
* @param bool $cfgBookmark configuration setting for bookmarking
|
||||
* @param string $sql_query sql query
|
||||
* @param string $db current database
|
||||
* @param string $table current table
|
||||
@ -1469,14 +1470,13 @@ function PMA_countQueryResults(
|
||||
* @param String $db current database
|
||||
* @param String $table current table
|
||||
* @param boolean $find_real_end whether to find the real end
|
||||
* @param String $import_text sql command
|
||||
* @param String $bkm_user bookmarking user
|
||||
* @param String $import_text sql command
|
||||
* @param array $extra_data extra data
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function PMA_executeTheQuery($analyzed_sql_results, $full_sql_query, $is_gotofile,
|
||||
$db, $table, $find_real_end, $import_text, $bkm_user, $extra_data
|
||||
$db, $table, $find_real_end, $import_text, $extra_data
|
||||
) {
|
||||
// Only if we ask to see the php code
|
||||
if (isset($GLOBALS['show_as_php']) || ! empty($GLOBALS['validatequery'])) {
|
||||
@ -1500,7 +1500,8 @@ function PMA_executeTheQuery($analyzed_sql_results, $full_sql_query, $is_gotofil
|
||||
// store the query as a bookmark
|
||||
if (! empty($_POST['bkm_label']) && ! empty($import_text)) {
|
||||
PMA_storeTheQueryAsBookmark(
|
||||
$db, $bkm_user, $import_text, $_POST['bkm_label'],
|
||||
$db, $GLOBALS['cfg']['Bookmark']['user'],
|
||||
$import_text, $_POST['bkm_label'],
|
||||
isset($_POST['bkm_replace']) ? $_POST['bkm_replace'] : null
|
||||
);
|
||||
} // end store bookmarks
|
||||
@ -1642,13 +1643,12 @@ function PMA_getMessageForNoRowsReturned($message_to_show, $analyzed_sql_results
|
||||
* @param string $message message to be send
|
||||
* @param array $analyzed_sql analyzed sql
|
||||
* @param object $displayResultsObject DisplayResult instance
|
||||
* @param bool $showSql whether to show sql or not
|
||||
* @param array $extra_data extra data
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function PMA_sendAjaxResponseForNoResultsReturned($message, $analyzed_sql,
|
||||
$displayResultsObject, $showSql, $extra_data
|
||||
$displayResultsObject, $extra_data
|
||||
) {
|
||||
/**
|
||||
* @todo find a better way to make getMessage() in Header.class.php
|
||||
@ -1656,7 +1656,7 @@ function PMA_sendAjaxResponseForNoResultsReturned($message, $analyzed_sql,
|
||||
*/
|
||||
$GLOBALS['message'] = $message;
|
||||
|
||||
if ($showSql) {
|
||||
if ($GLOBALS['cfg']['ShowSQL']) {
|
||||
$extra_data['sql_query'] = PMA_Util::getMessage(
|
||||
$message, $GLOBALS['sql_query'], 'success'
|
||||
);
|
||||
@ -1702,12 +1702,11 @@ function PMA_sendAjaxResponseForNoResultsReturned($message, $analyzed_sql,
|
||||
* @param int $num_rows number of rows
|
||||
* @param object $displayResultsObject DisplayResult instance
|
||||
* @param array $extra_data extra data
|
||||
* @param array $cfg configuration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function PMA_sendResponseForNoResultsReturned($analyzed_sql_results, $db, $table,
|
||||
$message_to_show, $num_rows, $displayResultsObject, $extra_data, $cfg
|
||||
function PMA_sendQueryResponseForNoResultsReturned($analyzed_sql_results, $db,
|
||||
$table, $message_to_show, $num_rows, $displayResultsObject, $extra_data
|
||||
) {
|
||||
if (PMA_isDeleteTransformationInfo($analyzed_sql_results)) {
|
||||
PMA_deleteTransformationInfo(
|
||||
@ -1722,7 +1721,7 @@ function PMA_sendResponseForNoResultsReturned($analyzed_sql_results, $db, $table
|
||||
if ($GLOBALS['is_ajax_request'] == true) {
|
||||
PMA_sendAjaxResponseForNoResultsReturned(
|
||||
$message, $analyzed_sql_results['analyzed_sql'],
|
||||
$displayResultsObject, $cfg['ShowSQL'],
|
||||
$displayResultsObject,
|
||||
isset($extra_data) ? $extra_data : null
|
||||
);
|
||||
}
|
||||
@ -1815,14 +1814,13 @@ function PMA_getBookmarkCreatedMessage()
|
||||
* @param int $num_rows number of rows
|
||||
* @param bool $showtable whether to show table or not
|
||||
* @param object $result result of the executed query
|
||||
* @param int $querytime query execution time
|
||||
* @param array $analyzed_sql_results analyzed sql results
|
||||
*
|
||||
* @return type
|
||||
*/
|
||||
function PMA_getHtmlForSqlQueryResultsTable($sql_data, $displayResultsObject, $db,
|
||||
$goto, $pmaThemeImage, $url_query, $disp_mode, $sql_limit_to_append,
|
||||
$editable, $unlim_num_rows, $num_rows, $showtable, $result, $querytime,
|
||||
$editable, $unlim_num_rows, $num_rows, $showtable, $result,
|
||||
$analyzed_sql_results
|
||||
) {
|
||||
$printview = isset($_REQUEST['printview']) ? $_REQUEST['printview'] : null;
|
||||
@ -1845,7 +1843,7 @@ function PMA_getHtmlForSqlQueryResultsTable($sql_data, $displayResultsObject, $d
|
||||
$unlim_num_rows, $fields_meta, $analyzed_sql_results['is_count'],
|
||||
$analyzed_sql_results['is_export'], $analyzed_sql_results['is_func'],
|
||||
$analyzed_sql_results['is_analyse'], $num_rows,
|
||||
$fields_cnt, $querytime, $pmaThemeImage, $GLOBALS['text_dir'],
|
||||
$fields_cnt, $GLOBALS['querytime'], $pmaThemeImage, $GLOBALS['text_dir'],
|
||||
$analyzed_sql_results['is_maint'], $analyzed_sql_results['is_explain'],
|
||||
$analyzed_sql_results['is_show'], $showtable, $printview, $url_query,
|
||||
$editable
|
||||
@ -1917,9 +1915,12 @@ function PMA_getMessageIfMissingColumnIndex($table, $db, $editable, $disp_mode)
|
||||
/**
|
||||
* Function to get html to display problems in indexes
|
||||
*
|
||||
* @param string $query_type query type
|
||||
* @param boolean $selected selected
|
||||
* @param string $db current database
|
||||
* @param string $query_type query type
|
||||
* @param bool $selected whether check table, optimize table, analyze
|
||||
* table or repair table has been selected with
|
||||
* respect to the selected tables from the
|
||||
* database structure page.
|
||||
* @param string $db current database
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
@ -1982,25 +1983,26 @@ function PMA_getHtmlForPrintButton()
|
||||
* @param string $sql_limit_to_append sql limit to append
|
||||
* @param int $unlim_num_rows unlimited number of rows
|
||||
* @param int $num_rows number of rows
|
||||
* @param int $querytime query time
|
||||
* @param string $full_sql_query full sql query
|
||||
* @param string $disp_query display query
|
||||
* @param string $disp_message display message
|
||||
* @param array $profiling_results profiling results
|
||||
* @param string $query_type query type
|
||||
* @param bool $selected selected
|
||||
* @param bool $selected whether check table, optimize table, analyze
|
||||
* table or repair table has been selected with
|
||||
* respect to the selected tables from the
|
||||
* database structure page.
|
||||
* @param string $sql_query sql query
|
||||
* @param string $complete_query complete sql query
|
||||
* @param array $cfg configuration
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
function PMA_sendQueryResponseForResultsReturned($result, $justBrowsing,
|
||||
$analyzed_sql_results, $db, $table, $disp_mode, $message, $sql_data,
|
||||
$displayResultsObject, $goto, $pmaThemeImage, $sql_limit_to_append,
|
||||
$unlim_num_rows, $num_rows, $querytime, $full_sql_query, $disp_query,
|
||||
$unlim_num_rows, $num_rows, $full_sql_query, $disp_query,
|
||||
$disp_message, $profiling_results, $query_type, $selected, $sql_query,
|
||||
$complete_query, $cfg
|
||||
$complete_query
|
||||
) {
|
||||
// If we are retrieving the full value of a truncated field or the original
|
||||
// value of a transformed field, show it here
|
||||
@ -2025,9 +2027,11 @@ function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
// - for information_schema
|
||||
// - if the result set does not contain all the columns of a unique key
|
||||
// and we are not just browing all the columns of an updatable view
|
||||
|
||||
$sele_exp_cls = $analyzed_sql_results['analyzed_sql'][0]['select_expr_clause'];
|
||||
$updatableView
|
||||
= $justBrowsing
|
||||
&& trim($analyzed_sql_results['analyzed_sql'][0]['select_expr_clause']) == '*'
|
||||
&& trim($sele_exp_cls) == '*'
|
||||
&& PMA_Table::isUpdatableView($db, $table);
|
||||
|
||||
$has_unique = PMA_resultSetContainsUniqueKey(
|
||||
@ -2085,7 +2089,7 @@ function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
|
||||
$previous_update_query_html = PMA_getHtmlForPreviousUpdateQuery(
|
||||
isset($disp_query) ? $disp_query : null,
|
||||
$cfg['ShowSQL'], isset($sql_data) ? $sql_data : null,
|
||||
$GLOBALS['cfg']['ShowSQL'], isset($sql_data) ? $sql_data : null,
|
||||
isset($disp_message) ? $disp_message : null
|
||||
);
|
||||
|
||||
@ -2102,7 +2106,7 @@ function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
$table_html = PMA_getHtmlForSqlQueryResultsTable(
|
||||
isset($sql_data) ? $sql_data : null, $displayResultsObject, $db, $goto,
|
||||
$pmaThemeImage, $url_query, $disp_mode, $sql_limit_to_append,
|
||||
$editable, $unlim_num_rows, $num_rows, $showtable, $result, $querytime,
|
||||
$editable, $unlim_num_rows, $num_rows, $showtable, $result,
|
||||
$analyzed_sql_results
|
||||
);
|
||||
|
||||
@ -2112,9 +2116,11 @@ function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
);
|
||||
|
||||
$bookmark_support_html = PMA_getHtmlForBookmark(
|
||||
$disp_mode, isset($cfg['Bookmark']) ? $cfg['Bookmark'] : '', $sql_query,
|
||||
$db, $table, isset($complete_query) ? $complete_query : $sql_query,
|
||||
$cfg['Bookmark']['user']
|
||||
$disp_mode,
|
||||
isset($GLOBALS['cfg']['Bookmark']) ? $GLOBALS['cfg']['Bookmark'] : '',
|
||||
$sql_query, $db, $table,
|
||||
isset($complete_query) ? $complete_query : $sql_query,
|
||||
$GLOBALS['cfg']['Bookmark']['user']
|
||||
);
|
||||
|
||||
$print_button_html = PMA_getHtmlForPrintButton();
|
||||
@ -2134,4 +2140,145 @@ function PMA_sendResponseForResultsReturned($result, $justBrowsing,
|
||||
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to send response for both empty results and non empty results
|
||||
*
|
||||
* @param int $num_rows number of rows returned by the executed query
|
||||
* @param int $unlim_num_rows unlimited number of rows
|
||||
* @param bool $is_affected is affected
|
||||
* @param string $db current database
|
||||
* @param string $table current table
|
||||
* @param string $message_to_show message to show
|
||||
* @param array $analyzed_sql_results analyzed Sql Results
|
||||
* @param object $displayResultsObject Instance of DisplayResult class
|
||||
* @param array $extra_data extra data
|
||||
* @param array $result executed query results
|
||||
* @param bool $justBrowsing whether just browsing or not
|
||||
* @param string $disp_mode disply mode
|
||||
* @param object $message message
|
||||
* @param array $sql_data sql data
|
||||
* @param string $goto goto page url
|
||||
* @param string $pmaThemeImage uri of the PMA theme image
|
||||
* @param string $sql_limit_to_append sql limit to append
|
||||
* @param string $full_sql_query full sql query
|
||||
* @param string $disp_query display query
|
||||
* @param string $disp_message display message
|
||||
* @param array $profiling_results profiling results
|
||||
* @param string $query_type query type
|
||||
* @param bool $selected whether check table, optimize table, analyze
|
||||
* table or repair table has been selected with
|
||||
* respect to the selected tables from the
|
||||
* database structure page.
|
||||
* @param string $sql_query sql query
|
||||
* @param string $complete_query complete query
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function PMA_sendQueryResponse($num_rows, $unlim_num_rows, $is_affected,
|
||||
$db, $table, $message_to_show, $analyzed_sql_results, $displayResultsObject,
|
||||
$extra_data, $result, $justBrowsing, $disp_mode,$message, $sql_data,
|
||||
$goto, $pmaThemeImage, $sql_limit_to_append, $full_sql_query,
|
||||
$disp_query, $disp_message, $profiling_results, $query_type, $selected,
|
||||
$sql_query, $complete_query
|
||||
) {
|
||||
// No rows returned -> move back to the calling page
|
||||
if ((0 == $num_rows && 0 == $unlim_num_rows) || $is_affected) {
|
||||
PMA_sendQueryResponseForNoResultsReturned(
|
||||
$analyzed_sql_results, $db, $table,
|
||||
isset($message_to_show) ? $message_to_show : null,
|
||||
$num_rows, $displayResultsObject, $extra_data
|
||||
);
|
||||
|
||||
} else {
|
||||
// At least one row is returned -> displays a table with results
|
||||
PMA_sendQueryResponseForResultsReturned(
|
||||
isset($result) ? $result : null, $justBrowsing, $analyzed_sql_results,
|
||||
$db, $table, isset($disp_mode) ? $disp_mode : null,
|
||||
isset($message) ? $message : null, isset($sql_data) ? $sql_data : null,
|
||||
$displayResultsObject, $goto, $pmaThemeImage,
|
||||
$sql_limit_to_append, $unlim_num_rows,
|
||||
$num_rows, $full_sql_query,
|
||||
isset($disp_query) ? $disp_query : null,
|
||||
isset($disp_message) ? $disp_message : null, $profiling_results,
|
||||
isset($query_type) ? $query_type : null,
|
||||
isset($selected) ? $selected : null, $sql_query,
|
||||
isset($complete_query) ? $complete_query : null
|
||||
);
|
||||
} // end rows returned
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to execute the query and send the response
|
||||
*
|
||||
* @param array $analyzed_sql_results analysed sql results
|
||||
* @param string $full_sql_query full sql query
|
||||
* @param bool $is_gotofile whether goto file or not
|
||||
* @param string $db current database
|
||||
* @param string $table current table
|
||||
* @param bool $find_real_end whether to find real end or not
|
||||
* @param string $import_text import text
|
||||
* @param array $extra_data extra data
|
||||
* @param bool $is_affected whether affected or not
|
||||
* @param string $message_to_show message to show
|
||||
* @param string $disp_mode display mode
|
||||
* @param string $message message
|
||||
* @param array $sql_data sql data
|
||||
* @param string $goto goto page url
|
||||
* @param string $pmaThemeImage uri of the PMA theme image
|
||||
* @param string $sql_limit_to_append sql limit to append
|
||||
* @param string $disp_query display query
|
||||
* @param string $disp_message display message
|
||||
* @param string $query_type query type
|
||||
* @param string $sql_query sql query
|
||||
* @param bool $selected whether check table, optimize table, analyze
|
||||
* table or repair table has been selected with
|
||||
* respect to the selected tables from the
|
||||
* database structure page.
|
||||
* @param string $complete_query complete query
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function PMA_executeQueryAndSendQueryResponse($analyzed_sql_results, $full_sql_query,
|
||||
$is_gotofile, $db, $table, $find_real_end, $import_text, $extra_data,
|
||||
$is_affected, $message_to_show, $disp_mode, $message, $sql_data, $goto,
|
||||
$pmaThemeImage, $sql_limit_to_append, $disp_query, $disp_message,
|
||||
$query_type, $sql_query, $selected, $complete_query
|
||||
) {
|
||||
// Include PMA_Index class for use in PMA_DisplayResults class
|
||||
include './libraries/Index.class.php';
|
||||
|
||||
include 'libraries/DisplayResults.class.php';
|
||||
|
||||
$displayResultsObject = new PMA_DisplayResults(
|
||||
$GLOBALS['db'], $GLOBALS['table'], $GLOBALS['goto'], $GLOBALS['sql_query']
|
||||
);
|
||||
|
||||
$displayResultsObject->setConfigParamsForDisplayTable();
|
||||
|
||||
|
||||
// Execute the query
|
||||
list($result, $num_rows, $unlim_num_rows, $profiling_results,
|
||||
$justBrowsing, $extra_data
|
||||
) = PMA_executeTheQuery(
|
||||
$analyzed_sql_results, $full_sql_query, $is_gotofile, $db, $table,
|
||||
isset($find_real_end) ? $find_real_end : null,
|
||||
isset($import_text) ? $import_text : null,
|
||||
isset($extra_data) ? $extra_data : null
|
||||
);
|
||||
|
||||
PMA_sendQueryResponse(
|
||||
$num_rows, $unlim_num_rows, $is_affected, $db, $table,
|
||||
isset($message_to_show) ? $message_to_show : null,
|
||||
$analyzed_sql_results, $displayResultsObject, $extra_data,
|
||||
isset($result) ? $result : null, $justBrowsing,
|
||||
isset($disp_mode) ? $disp_mode : null, isset($message) ? $message : null,
|
||||
isset($sql_data) ? $sql_data : null,
|
||||
$goto, $pmaThemeImage, $sql_limit_to_append, $full_sql_query,
|
||||
isset($disp_query) ? $disp_query : null,
|
||||
isset($disp_message) ? $disp_message : null, $profiling_results,
|
||||
isset($query_type) ? $query_type : null, isset($selected) ? $selected : null,
|
||||
$sql_query, isset($complete_query) ? $complete_query : null
|
||||
);
|
||||
}
|
||||
?>
|
||||
|
||||
53
sql.php
53
sql.php
@ -140,17 +140,6 @@ if (PMA_hasNoRightsToDropDatabase(
|
||||
);
|
||||
} // end if
|
||||
|
||||
// Include PMA_Index class for use in PMA_DisplayResults class
|
||||
require_once './libraries/Index.class.php';
|
||||
|
||||
require_once 'libraries/DisplayResults.class.php';
|
||||
|
||||
$displayResultsObject = new PMA_DisplayResults(
|
||||
$GLOBALS['db'], $GLOBALS['table'], $GLOBALS['goto'], $GLOBALS['sql_query']
|
||||
);
|
||||
|
||||
$displayResultsObject->setConfigParamsForDisplayTable();
|
||||
|
||||
/**
|
||||
* Need to find the real end of rows?
|
||||
*/
|
||||
@ -199,39 +188,19 @@ if (PMA_isAppendLimitClause($analyzed_sql_results)) {
|
||||
|
||||
$reload = PMA_hasCurrentDbChanged($db);
|
||||
|
||||
// Execute the query
|
||||
list($result, $num_rows, $unlim_num_rows, $profiling_results,
|
||||
$justBrowsing, $extra_data
|
||||
) = PMA_executeTheQuery(
|
||||
PMA_executeQueryAndSendQueryResponse(
|
||||
$analyzed_sql_results, $full_sql_query, $is_gotofile, $db, $table,
|
||||
isset($find_real_end) ? $find_real_end : null,
|
||||
isset($import_text) ? $import_text : null, $cfg['Bookmark']['user'],
|
||||
isset($extra_data) ? $extra_data : null
|
||||
isset($import_text) ? $import_text : null,
|
||||
isset($extra_data) ? $extra_data : null, $is_affected,
|
||||
isset($message_to_show) ? $message_to_show : null,
|
||||
isset($disp_mode) ? $disp_mode : null, isset($message) ? $message : null,
|
||||
isset($sql_data) ? $sql_data : null, $goto, $pmaThemeImage,
|
||||
$sql_limit_to_append, isset($disp_query) ? $display_query : null,
|
||||
isset($disp_message) ? $disp_message : null,
|
||||
isset($query_type) ? $query_type : null,
|
||||
$sql_query, isset($selected) ? $selected : null,
|
||||
isset($complete_query) ? $complete_query : null
|
||||
);
|
||||
|
||||
|
||||
// No rows returned -> move back to the calling page
|
||||
if ((0 == $num_rows && 0 == $unlim_num_rows) || $is_affected) {
|
||||
PMA_sendResponseForNoResultsReturned(
|
||||
$analyzed_sql_results, $db, $table,
|
||||
isset($message_to_show) ? $message_to_show : null,
|
||||
$num_rows, $displayResultsObject, $extra_data, $cfg
|
||||
);
|
||||
|
||||
} else {
|
||||
// At least one row is returned -> displays a table with results
|
||||
PMA_sendResponseForResultsReturned(
|
||||
isset($result) ? $result : null, $justBrowsing, $analyzed_sql_results,
|
||||
$db, $table, isset($disp_mode) ? $disp_mode : null,
|
||||
isset($message) ? $message : null, isset($sql_data) ? $sql_data : null,
|
||||
$displayResultsObject, $goto, $pmaThemeImage,
|
||||
$sql_limit_to_append, $unlim_num_rows,
|
||||
$num_rows, $querytime, $full_sql_query,
|
||||
isset($disp_query) ? $disp_query : null,
|
||||
isset($disp_message) ? $disp_message : null, $profiling_results,
|
||||
isset($query_type) ? $query_type : null,
|
||||
isset($selected) ? $selected : null, $sql_query,
|
||||
isset($complete_query) ? $complete_query : null, $cfg
|
||||
);
|
||||
} // end rows returned
|
||||
?>
|
||||
|
||||
169
test/classes/plugin/PMA_PluginManager_test.php
Normal file
169
test/classes/plugin/PMA_PluginManager_test.php
Normal file
@ -0,0 +1,169 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for PluginManager class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/plugins/PluginManager.class.php';
|
||||
require_once 'libraries/Config.class.php';
|
||||
require_once 'libraries/php-gettext/gettext.inc';
|
||||
require_once 'libraries/config.default.php';
|
||||
|
||||
/**
|
||||
* Dummy testObserver
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_TestObserver implements SplObserver
|
||||
{
|
||||
/**
|
||||
* udpate
|
||||
*
|
||||
* @param SplSubject $subject subject for observer
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
public function update(SplSubject $subject)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* tests for PluginManager class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_PluginManager_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
protected $attrStorage;
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function setup()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA_Config();
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['server'] = 0;
|
||||
|
||||
$this->object = new PluginManager(null);
|
||||
|
||||
$this->attrStorage = new \ReflectionProperty('PluginManager', '_storage');
|
||||
$this->attrStorage->setAccessible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PluginManager::__construct
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testConstructor()
|
||||
{
|
||||
$this->assertInstanceOf(
|
||||
'SplObjectStorage',
|
||||
$this->attrStorage->getValue($this->object)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PluginManager::attach
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAttach()
|
||||
{
|
||||
$observer = new PMA_TestObserver();
|
||||
|
||||
$mock = $this->getMockBuilder('SplObjectStorage')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('attach'))
|
||||
->getMock();
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('attach')
|
||||
->with($observer);
|
||||
|
||||
$this->attrStorage->setValue($this->object, $mock);
|
||||
|
||||
$this->object->attach($observer);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PluginManager::detach
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testDetach()
|
||||
{
|
||||
$observer = new PMA_TestObserver();
|
||||
|
||||
$mock = $this->getMockBuilder('SplObjectStorage')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('detach'))
|
||||
->getMock();
|
||||
|
||||
$mock->expects($this->once())
|
||||
->method('detach')
|
||||
->with($observer);
|
||||
|
||||
$this->attrStorage->setValue($this->object, $mock);
|
||||
|
||||
$this->object->detach($observer);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - PluginManager::getStorage
|
||||
* - PluginManager::setStorage
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSetGetStorage()
|
||||
{
|
||||
$s = new SplObjectStorage();
|
||||
$o1 = new StdClass;
|
||||
$s[$o1] = 'testData';
|
||||
|
||||
$this->object->setStorage($s);
|
||||
|
||||
$this->assertEquals(
|
||||
$s,
|
||||
$this->object->getStorage()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - PluginManager::getStatus
|
||||
* - PluginManager::setStatus
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSetGetStatus()
|
||||
{
|
||||
$this->object->setStatus('active');
|
||||
|
||||
$this->assertEquals(
|
||||
'active',
|
||||
$this->object->getStatus()
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
459
test/classes/plugin/auth/PMA_AuthenticationHttp_test.php
Normal file
459
test/classes/plugin/auth/PMA_AuthenticationHttp_test.php
Normal file
@ -0,0 +1,459 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for AuthenticationHttp class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/plugins/auth/AuthenticationHttp.class.php';
|
||||
require_once 'libraries/Util.class.php';
|
||||
require_once 'libraries/Message.class.php';
|
||||
require_once 'libraries/Theme.class.php';
|
||||
require_once 'libraries/Config.class.php';
|
||||
require_once 'libraries/php-gettext/gettext.inc';
|
||||
require_once 'libraries/config.default.php';
|
||||
require_once 'libraries/Error_Handler.class.php';
|
||||
|
||||
/**
|
||||
* tests for AuthenticationHttp class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_AuthenticationHttp_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function setup()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA_Config;
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['server'] = 0;
|
||||
$this->object = new AuthenticationHttp(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::auth
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuth()
|
||||
{
|
||||
if (! defined('PMA_TEST_HEADERS')) {
|
||||
$this->markTestSkipped(
|
||||
'Cannot redefine constant/function - missing runkit extension'
|
||||
);
|
||||
}
|
||||
|
||||
$_REQUEST['old_usr'] = '1';
|
||||
$GLOBALS['cfg']['Server']['LogoutURL'] = 'http://phpmyadmin.net/logout';
|
||||
|
||||
$this->assertFalse(
|
||||
$this->object->auth()
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
'Location: http://phpmyadmin.net/logout',
|
||||
$GLOBALS['header'][0]
|
||||
);
|
||||
|
||||
// case 2
|
||||
|
||||
$restoreInstance = PMA_Response::getInstance();
|
||||
|
||||
// mock footer
|
||||
$mockFooter = $this->getMockBuilder('PMA_Footer')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('setMinimal'))
|
||||
->getMock();
|
||||
|
||||
$mockFooter->expects($this->once())
|
||||
->method('setMinimal')
|
||||
->with();
|
||||
|
||||
// mock header
|
||||
|
||||
$mockHeader = $this->getMockBuilder('PMA_Header')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(
|
||||
array('setBodyId', 'setTitle', 'disableMenu', 'addHTML')
|
||||
)
|
||||
->getMock();
|
||||
|
||||
$mockHeader->expects($this->once())
|
||||
->method('setBodyId')
|
||||
->with('loginform');
|
||||
|
||||
$mockHeader->expects($this->once())
|
||||
->method('setTitle')
|
||||
->with('Access denied');
|
||||
|
||||
$mockHeader->expects($this->once())
|
||||
->method('disableMenu')
|
||||
->with();
|
||||
|
||||
// set mocked headers and footers
|
||||
$mockResponse = $this->getMockBuilder('PMA_Response')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('getHeader', 'getFooter', 'addHTML'))
|
||||
->getMock();
|
||||
|
||||
$mockResponse->expects($this->once())
|
||||
->method('getFooter')
|
||||
->with()
|
||||
->will($this->returnValue($mockFooter));
|
||||
|
||||
$mockResponse->expects($this->once())
|
||||
->method('getHeader')
|
||||
->with()
|
||||
->will($this->returnValue($mockHeader));
|
||||
|
||||
$mockResponse->expects($this->exactly(6))
|
||||
->method('addHTML')
|
||||
->with();
|
||||
|
||||
$attrInstance = new ReflectionProperty('PMA_Response', '_instance');
|
||||
$attrInstance->setAccessible(true);
|
||||
$attrInstance->setValue(null, $mockResponse);
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$_REQUEST['old_usr'] = '';
|
||||
$GLOBALS['cfg']['Server']['verbose'] = 'verboseMessagê';
|
||||
|
||||
$this->assertFalse(
|
||||
$this->object->auth()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'WWW-Authenticate: Basic realm="phpMyAdmin verboseMessag"',
|
||||
'HTTP/1.0 401 Unauthorized',
|
||||
'status: 401 Unauthorized'
|
||||
),
|
||||
$GLOBALS['header']
|
||||
);
|
||||
|
||||
$attrInstance->setValue(null, $restoreInstance);
|
||||
|
||||
// case 3
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$GLOBALS['cfg']['Server']['verbose'] = '';
|
||||
$GLOBALS['cfg']['Server']['host'] = 'hòst';
|
||||
$this->assertFalse(
|
||||
$this->object->auth()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'WWW-Authenticate: Basic realm="phpMyAdmin hst"',
|
||||
'HTTP/1.0 401 Unauthorized',
|
||||
'status: 401 Unauthorized'
|
||||
),
|
||||
$GLOBALS['header']
|
||||
);
|
||||
|
||||
// case 4
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$GLOBALS['cfg']['Server']['host'] = '';
|
||||
$GLOBALS['cfg']['Server']['auth_http_realm'] = 'rêäealmmessage';
|
||||
$this->assertFalse(
|
||||
$this->object->auth()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'WWW-Authenticate: Basic realm="realmmessage"',
|
||||
'HTTP/1.0 401 Unauthorized',
|
||||
'status: 401 Unauthorized'
|
||||
),
|
||||
$GLOBALS['header']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authCheck
|
||||
*
|
||||
* @param string $user test username
|
||||
* @param string $pass test password
|
||||
* @param string $userIndex index to test username against
|
||||
* @param string $passIndex index to test username against
|
||||
* @param string $expectedReturn expected return value from test
|
||||
* @param string $expectedUser expected username to be set
|
||||
* @param string $expectedPass expected password to be set
|
||||
* @param string $old_usr value for $_REQUEST['old_usr']
|
||||
*
|
||||
* @return void
|
||||
* @dataProvider authCheckProvider
|
||||
*/
|
||||
public function testAuthCheck($user, $pass, $userIndex, $passIndex,
|
||||
$expectedReturn, $expectedUser, $expectedPass, $old_usr = ''
|
||||
) {
|
||||
$GLOBALS['PHP_AUTH_USER'] = '';
|
||||
$GLOBALS['PHP_AUTH_PW'] = '';
|
||||
|
||||
$_SERVER[$userIndex] = $user;
|
||||
$_SERVER[$passIndex] = $pass;
|
||||
|
||||
$_REQUEST['old_usr'] = $old_usr;
|
||||
|
||||
$this->assertEquals(
|
||||
$expectedReturn,
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
$expectedUser,
|
||||
$GLOBALS['PHP_AUTH_USER']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
$expectedPass,
|
||||
$GLOBALS['PHP_AUTH_PW']
|
||||
);
|
||||
|
||||
$_SERVER[$userIndex] = null;
|
||||
$_SERVER[$passIndex] = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testAuthCheck
|
||||
*
|
||||
* @return array Test data
|
||||
*/
|
||||
public function authCheckProvider()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
'Basic ' . base64_encode('foo:bar'),
|
||||
'pswd',
|
||||
'PHP_AUTH_USER',
|
||||
'PHP_AUTH_PW',
|
||||
false,
|
||||
'',
|
||||
'bar',
|
||||
'foo'
|
||||
),
|
||||
array(
|
||||
'Basic ' . base64_encode('foobar'),
|
||||
'pswd',
|
||||
'REMOTE_USER',
|
||||
'REMOTE_PASSWORD',
|
||||
true,
|
||||
'Basic Zm9vYmFy',
|
||||
'pswd'
|
||||
),
|
||||
array(
|
||||
'Basic ' . base64_encode('foobar:'),
|
||||
'pswd',
|
||||
'AUTH_USER',
|
||||
'AUTH_PASSWORD',
|
||||
true,
|
||||
'foobar',
|
||||
false
|
||||
),
|
||||
array(
|
||||
'Basic ' . base64_encode(':foobar'),
|
||||
'pswd',
|
||||
'HTTP_AUTHORIZATION',
|
||||
'AUTH_PASSWORD',
|
||||
true,
|
||||
'Basic OmZvb2Jhcg==',
|
||||
'pswd'
|
||||
),
|
||||
array(
|
||||
'BasicTest',
|
||||
'pswd',
|
||||
'Authorization',
|
||||
'AUTH_PASSWORD',
|
||||
true,
|
||||
'BasicTest',
|
||||
'pswd'
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authSetUser
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthSetUser()
|
||||
{
|
||||
// case 1
|
||||
|
||||
$GLOBALS['PHP_AUTH_USER'] = 'testUser';
|
||||
$GLOBALS['PHP_AUTH_PW'] = 'testPass';
|
||||
$GLOBALS['server'] = 2;
|
||||
$GLOBALS['cfg']['Server']['user'] = 'testUser';
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authSetUser()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'testUser',
|
||||
$GLOBALS['cfg']['Server']['user']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'testPass',
|
||||
$GLOBALS['cfg']['Server']['password']
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
isset($GLOBALS['PHP_AUTH_PW'])
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
isset($_SERVER['PHP_AUTH_PW'])
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
2,
|
||||
$GLOBALS['server']
|
||||
);
|
||||
|
||||
// case 2
|
||||
$GLOBALS['PHP_AUTH_USER'] = 'testUser';
|
||||
$GLOBALS['PHP_AUTH_PW'] = 'testPass';
|
||||
$GLOBALS['cfg']['Servers'][1] = array(
|
||||
'host' => 'a',
|
||||
'user' => 'testUser',
|
||||
'foo' => 'bar'
|
||||
);
|
||||
|
||||
$GLOBALS['cfg']['Server']= array(
|
||||
'host' => 'a',
|
||||
'user' => 'user2'
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authSetUser()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'user' => 'testUser',
|
||||
'password' => 'testPass',
|
||||
'host' => 'a',
|
||||
'foo' => 'bar'
|
||||
),
|
||||
$GLOBALS['cfg']['Server']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
1,
|
||||
$GLOBALS['server']
|
||||
);
|
||||
|
||||
// case 3
|
||||
$GLOBALS['server'] = 3;
|
||||
$GLOBALS['PHP_AUTH_USER'] = 'testUser';
|
||||
$GLOBALS['PHP_AUTH_PW'] = 'testPass';
|
||||
$GLOBALS['cfg']['Servers'][1] = array(
|
||||
'host' => 'a',
|
||||
'user' => 'testUsers',
|
||||
'foo' => 'bar'
|
||||
);
|
||||
|
||||
$GLOBALS['cfg']['Server']= array(
|
||||
'host' => 'a',
|
||||
'user' => 'user2'
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authSetUser()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'user' => 'testUser',
|
||||
'password' => 'testPass',
|
||||
'host' => 'a'
|
||||
),
|
||||
$GLOBALS['cfg']['Server']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
3,
|
||||
$GLOBALS['server']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationHttp::authSetFails
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthFails()
|
||||
{
|
||||
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$dbi->expects($this->at(0))
|
||||
->method('getError')
|
||||
->will($this->returnValue('error 123'));
|
||||
|
||||
$dbi->expects($this->at(1))
|
||||
->method('getError')
|
||||
->will($this->returnValue('error 321'));
|
||||
|
||||
$dbi->expects($this->at(2))
|
||||
->method('getError')
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$GLOBALS['errno'] = 31;
|
||||
|
||||
ob_start();
|
||||
$this->object->authFails();
|
||||
$result = ob_get_clean();
|
||||
|
||||
$this->assertTag(
|
||||
PMA_getTagArray(
|
||||
'<p>error 123</p>'
|
||||
),
|
||||
$result
|
||||
);
|
||||
|
||||
$this->object = $this->getMockBuilder('AuthenticationHttp')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('auth'))
|
||||
->getMock();
|
||||
|
||||
$this->object->expects($this->exactly(2))
|
||||
->method('auth');
|
||||
// case 2
|
||||
$GLOBALS['errno'] = 1045;
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authFails()
|
||||
);
|
||||
|
||||
// case 3
|
||||
$GLOBALS['errno'] = 1043;
|
||||
$this->assertTrue(
|
||||
$this->object->authFails()
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
333
test/classes/plugin/auth/PMA_AuthenticationSignon_test.php
Normal file
333
test/classes/plugin/auth/PMA_AuthenticationSignon_test.php
Normal file
@ -0,0 +1,333 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for AuthenticationSignon class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/plugins/auth/AuthenticationSignon.class.php';
|
||||
require_once 'libraries/Util.class.php';
|
||||
require_once 'libraries/Message.class.php';
|
||||
require_once 'libraries/Theme.class.php';
|
||||
require_once 'libraries/Config.class.php';
|
||||
require_once 'libraries/php-gettext/gettext.inc';
|
||||
require_once 'libraries/config.default.php';
|
||||
require_once 'libraries/Error_Handler.class.php';
|
||||
|
||||
/**
|
||||
* tests for AuthenticationSignon class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_AuthenticationSignon_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function setup()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA_Config;
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['server'] = 0;
|
||||
$this->object = new AuthenticationSignon(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationSignon::auth
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuth()
|
||||
{
|
||||
if (! defined('PMA_TEST_HEADERS')) {
|
||||
$this->markTestSkipped(
|
||||
'Cannot redefine constant/function - missing runkit extension'
|
||||
);
|
||||
}
|
||||
|
||||
// case 1
|
||||
|
||||
$GLOBALS['cfg']['Server']['SignonURL'] = '';
|
||||
|
||||
ob_start();
|
||||
$this->object->auth();
|
||||
$result = ob_get_clean();
|
||||
|
||||
$this->assertContains(
|
||||
'You must set SignonURL!',
|
||||
$result
|
||||
);
|
||||
|
||||
// case 2
|
||||
|
||||
$GLOBALS['cfg']['Server']['SignonURL'] = 'http://phpmyadmin.net/SignonURL';
|
||||
$_REQUEST['old_usr'] = 'oldUser';
|
||||
$GLOBALS['cfg']['Server']['LogoutURL'] = 'http://phpmyadmin.net/logoutURL';
|
||||
|
||||
$this->object->auth();
|
||||
|
||||
$this->assertContains(
|
||||
'Location: http://phpmyadmin.net/logoutURL?PHPSESSID=',
|
||||
$GLOBALS['header'][0]
|
||||
);
|
||||
|
||||
// case 3
|
||||
|
||||
$GLOBALS['header'] = array();
|
||||
$GLOBALS['cfg']['Server']['SignonURL'] = 'http://phpmyadmin.net/SignonURL';
|
||||
$_REQUEST['old_usr'] = '';
|
||||
$GLOBALS['cfg']['Server']['LogoutURL'] = '';
|
||||
|
||||
$this->object->auth();
|
||||
|
||||
$this->assertContains(
|
||||
'Location: http://phpmyadmin.net/SignonURL?PHPSESSID=',
|
||||
$GLOBALS['header'][0]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationSignon::authCheck
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthCheck()
|
||||
{
|
||||
// case 1
|
||||
|
||||
$GLOBALS['cfg']['Server']['SignonURL'] = 'http://phpmyadmin.net/SignonURL';
|
||||
$_SESSION['LAST_SIGNON_URL'] = 'http://phpmyadmin.net/SignonDiffURL';
|
||||
|
||||
$this->assertFalse(
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
// case 2
|
||||
|
||||
$_SESSION['LAST_SIGNON_URL'] = 'http://phpmyadmin.net/SignonURL';
|
||||
$GLOBALS['cfg']['Server']['SignonScript'] = './examples/signon-script.php';
|
||||
$GLOBALS['cfg']['Server']['SignonSession'] = 'session123';
|
||||
$GLOBALS['cfg']['Server']['host'] = 'localhost';
|
||||
$GLOBALS['cfg']['Server']['port'] = '80';
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'root',
|
||||
$GLOBALS['PHP_AUTH_USER']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'',
|
||||
$GLOBALS['PHP_AUTH_PW']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'http://phpmyadmin.net/SignonURL',
|
||||
$_SESSION['LAST_SIGNON_URL']
|
||||
);
|
||||
|
||||
// case 3
|
||||
|
||||
$GLOBALS['cfg']['Server']['SignonScript'] = '';
|
||||
$_COOKIE['session123'] = true;
|
||||
$_REQUEST['old_usr'] = 'oldUser';
|
||||
$_SESSION['PMA_single_signon_user'] = 'user123';
|
||||
$_SESSION['PMA_single_signon_password'] = 'pass123';
|
||||
$_SESSION['PMA_single_signon_host'] = 'local';
|
||||
$_SESSION['PMA_single_signon_port'] = '12';
|
||||
$_SESSION['PMA_single_signon_cfgupdate'] = array('foo' => 'bar');
|
||||
$_SESSION['PMA_single_signon_token'] = 'pmaToken';
|
||||
$sessionName = session_name();
|
||||
$sessionID = session_id();
|
||||
|
||||
$this->assertFalse(
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'SignonURL' => 'http://phpmyadmin.net/SignonURL',
|
||||
'SignonScript' => '',
|
||||
'SignonSession' => 'session123',
|
||||
'host' => 'local',
|
||||
'port' => '12',
|
||||
'user' => 'user',
|
||||
'foo' => 'bar'
|
||||
),
|
||||
$GLOBALS['cfg']['Server']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'pmaToken',
|
||||
$_SESSION[' PMA_token ']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
$sessionName,
|
||||
session_name()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
$sessionID,
|
||||
session_id()
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
isset($_SESSION['LAST_SIGNON_URL'])
|
||||
);
|
||||
|
||||
// case 4
|
||||
$_REQUEST['old_usr'] = '';
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authCheck()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'user123',
|
||||
$GLOBALS['PHP_AUTH_USER']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'pass123',
|
||||
$GLOBALS['PHP_AUTH_PW']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationSignon::authSetUser
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthSetUser()
|
||||
{
|
||||
$GLOBALS['PHP_AUTH_USER'] = 'testUser123';
|
||||
$GLOBALS['PHP_AUTH_PW'] = 'testPass123';
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->authSetUser()
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'testUser123',
|
||||
$GLOBALS['cfg']['Server']['user']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'testPass123',
|
||||
$GLOBALS['cfg']['Server']['password']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for AuthenticationSignon::authFails
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAuthFails()
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['SignonSession'] = 'newSession';
|
||||
$_COOKIE['newSession'] = '42';
|
||||
|
||||
$this->object = $this->getMockBuilder('AuthenticationSignon')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('auth'))
|
||||
->getMock();
|
||||
|
||||
$this->object->expects($this->exactly(5))
|
||||
->method('auth');
|
||||
|
||||
// case 1
|
||||
|
||||
$GLOBALS['login_without_password_is_forbidden'] = true;
|
||||
|
||||
$this->object->authFails();
|
||||
|
||||
$this->assertEquals(
|
||||
'Login without a password is forbidden by configuration '
|
||||
. '(see AllowNoPassword)',
|
||||
$_SESSION['PMA_single_signon_error_message']
|
||||
);
|
||||
|
||||
// case 2
|
||||
|
||||
$GLOBALS['login_without_password_is_forbidden'] = null;
|
||||
$GLOBALS['allowDeny_forbidden'] = true;
|
||||
|
||||
$this->object->authFails();
|
||||
|
||||
$this->assertEquals(
|
||||
'Access denied',
|
||||
$_SESSION['PMA_single_signon_error_message']
|
||||
);
|
||||
|
||||
// case 3
|
||||
|
||||
$GLOBALS['allowDeny_forbidden'] = null;
|
||||
$GLOBALS['no_activity'] = true;
|
||||
$GLOBALS['cfg']['LoginCookieValidity'] = '1440';
|
||||
|
||||
$this->object->authFails();
|
||||
|
||||
$this->assertEquals(
|
||||
'No activity within 1440 seconds; please log in again.',
|
||||
$_SESSION['PMA_single_signon_error_message']
|
||||
);
|
||||
|
||||
// case 4
|
||||
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$dbi->expects($this->at(0))
|
||||
->method('getError')
|
||||
->will($this->returnValue('error<123>'));
|
||||
|
||||
$dbi->expects($this->at(1))
|
||||
->method('getError')
|
||||
->will($this->returnValue('error<123>'));
|
||||
|
||||
$dbi->expects($this->at(2))
|
||||
->method('getError')
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$GLOBALS['no_activity'] = null;
|
||||
|
||||
$this->object->authFails();
|
||||
|
||||
$this->assertEquals(
|
||||
'error<123>',
|
||||
$_SESSION['PMA_single_signon_error_message']
|
||||
);
|
||||
|
||||
// case 5
|
||||
$this->object->authFails();
|
||||
|
||||
$this->assertEquals(
|
||||
'Cannot log in to the MySQL server',
|
||||
$_SESSION['PMA_single_signon_error_message']
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for OptionsPropertyMainGroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/options/groups/OptionsPropertyMainGroup.class.php';
|
||||
/**
|
||||
* tests for OptionsPropertyMainGroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_OptionsPropertyMainGroup_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setup()
|
||||
{
|
||||
$this->object = new OptionsPropertyMainGroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for OptionsPropertyMainGroup::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemType()
|
||||
{
|
||||
$this->assertEquals(
|
||||
'main',
|
||||
$this->object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for OptionsPropertyRootGroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/options/groups/OptionsPropertyRootGroup.class.php';
|
||||
/**
|
||||
* tests for OptionsPropertyRootGroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_OptionsPropertyRootGroup_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setup()
|
||||
{
|
||||
$this->object = new OptionsPropertyRootGroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for OptionsPropertyRootGroup::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemType()
|
||||
{
|
||||
$this->assertEquals(
|
||||
'root',
|
||||
$this->object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for OptionsPropertySubgroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/options/groups/OptionsPropertySubgroup.class.php';
|
||||
/**
|
||||
* tests for OptionsPropertySubgroup class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_OptionsPropertySubgroup_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setup()
|
||||
{
|
||||
$this->object = new OptionsPropertySubgroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for OptionsPropertySubgroup::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemType()
|
||||
{
|
||||
$this->assertEquals(
|
||||
'subgroup',
|
||||
$this->object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - OptionsPropertySubgroup::getSubgroupHeader
|
||||
* - OptionsPropertySubgroup::setSubgroupHeader
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetSetSubgroupHeader()
|
||||
{
|
||||
$this->object->setSubgroupHeader('subGroupHeader123');
|
||||
|
||||
$this->assertEquals(
|
||||
'subGroupHeader123',
|
||||
$this->object->getSubgroupHeader()
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
130
test/classes/properties/options/items/PMA_PropertyItems_test.php
Normal file
130
test/classes/properties/options/items/PMA_PropertyItems_test.php
Normal file
@ -0,0 +1,130 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for *PropertyItem class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/options/items/BoolPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/DocPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/HiddenPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/MessageOnlyPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/RadioPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/SelectPropertyItem.class.php';
|
||||
require_once 'libraries/properties/options/items/TextPropertyItem.class.php';
|
||||
/**
|
||||
* tests for *PropertyItem class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_PropertyItem_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for BoolPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testBoolGetItemType()
|
||||
{
|
||||
$object = new BoolPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"bool",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for DocPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeDoc()
|
||||
{
|
||||
$object = new DocPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"doc",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for HiddenPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeHidden()
|
||||
{
|
||||
$object = new HiddenPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"hidden",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for MessageOnlyPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeMessageOnly()
|
||||
{
|
||||
$object = new MessageOnlyPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"messageOnly",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for RadioPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeRadio()
|
||||
{
|
||||
$object = new RadioPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"radio",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for SelectPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeSelect()
|
||||
{
|
||||
$object = new SelectPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"select",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for TextPropertyItem::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemTypeText()
|
||||
{
|
||||
$object = new TextPropertyItem();
|
||||
|
||||
$this->assertEquals(
|
||||
"text",
|
||||
$object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for ExportPluginProperties class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/plugins/ExportPluginProperties.class.php';
|
||||
require_once 'libraries/properties/options/groups/OptionsPropertyRootGroup.class.php';
|
||||
require_once 'test/classes/properties/plugins/PMA_ImportPluginProperties_test.php';
|
||||
|
||||
/**
|
||||
* Tests for ExportPluginProperties class. Extends PMA_ImportPluginProperties_Tests
|
||||
* and adds tests for methods that are not common to both
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_ExportPluginProperties_Test extends PMA_ImportPluginProperties_Test
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setup()
|
||||
{
|
||||
$this->object = new ExportPluginProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for ExportPluginProperties::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemType()
|
||||
{
|
||||
$this->assertEquals(
|
||||
'export',
|
||||
$this->object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - ExportPluginProperties::getForceFile
|
||||
* - ExportPluginProperties::setForceFile
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSetGetForceFile()
|
||||
{
|
||||
$this->object->setForceFile(true);
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->getForceFile()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* tests for ImportPluginProperties class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
require_once 'libraries/properties/plugins/ImportPluginProperties.class.php';
|
||||
require_once 'libraries/properties/options/groups/OptionsPropertyRootGroup.class.php';
|
||||
/**
|
||||
* tests for ImportPluginProperties class
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_ImportPluginProperties_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $object;
|
||||
|
||||
/**
|
||||
* Configures global environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function setup()
|
||||
{
|
||||
$this->object = new ImportPluginProperties();
|
||||
}
|
||||
|
||||
/**
|
||||
* tearDown for test cases
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($this->object);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for ImportPluginProperties::getItemType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetItemType()
|
||||
{
|
||||
$this->assertEquals(
|
||||
'import',
|
||||
$this->object->getItemType()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - ImportPluginProperties::getOptionsText
|
||||
* - ImportPluginProperties::setOptionsText
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSetGetOptionsText()
|
||||
{
|
||||
$this->object->setOptionsText('options123');
|
||||
|
||||
$this->assertEquals(
|
||||
'options123',
|
||||
$this->object->getOptionsText()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for
|
||||
* - ImportPluginProperties::setMimeType
|
||||
* - ImportPluginProperties::getMimeType
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSetGetMimeType()
|
||||
{
|
||||
$this->object->setMimeType('mime123');
|
||||
|
||||
$this->assertEquals(
|
||||
'mime123',
|
||||
$this->object->getMimeType()
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
Loading…
Reference in New Issue
Block a user