Translated using Weblate (Dutch)
[phpmyadmin.git] / test / bootstrap-dist.php
blob209a05ed6f5db0484a1ece13a4302af555afffdf
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Bootstrap for phpMyAdmin tests
6 * @package PhpMyAdmin-test
7 */
9 // Let PHP complain about all errors
10 error_reporting(E_ALL);
12 // Ensure PHP has set timezone
13 date_default_timezone_set('UTC');
15 // Adding phpMyAdmin sources to include path
16 set_include_path(
17 get_include_path() . PATH_SEPARATOR . dirname(realpath("../index.php"))
20 // Setting constants for testing
21 define('PHPMYADMIN', 1);
22 define('TESTSUITE', 1);
23 define('PMA_MYSQL_INT_VERSION', 55000);
25 // Selenium tests setup
26 $test_defaults = array(
27 'TESTSUITE_SERVER' => 'localhost',
28 'TESTSUITE_USER' => 'root',
29 'TESTSUITE_PASSWORD' => '',
30 'TESTSUITE_DATABASE' => 'test',
31 'TESTSUITE_URL' => 'http://localhost/phpmyadmin/',
32 'TESTSUITE_SELENIUM_HOST' => '',
33 'TESTSUITE_SELENIUM_PORT' => '4444',
34 'TESTSUITE_SELENIUM_BROWSER' => 'firefox',
35 'TESTSUITE_SELENIUM_COVERAGE' => '',
36 'TESTSUITE_BROWSERSTACK_USER' => '',
37 'TESTSUITE_BROWSERSTACK_KEY' => '',
38 'TESTSUITE_FULL' => '',
40 foreach ($test_defaults as $varname => $defvalue) {
41 $envvar = getenv($varname);
42 if ($envvar) {
43 $GLOBALS[$varname] = $envvar;
44 } else {
45 $GLOBALS[$varname] = $defvalue;
49 require_once 'libraries/String.class.php';
50 require_once 'libraries/core.lib.php';
51 $GLOBALS['PMA_String'] = new PMA_String();
52 require_once 'libraries/Config.class.php';
53 $CFG = new PMA_Config();
54 // Initialize PMA_VERSION variable
55 define('PMA_VERSION', $CFG->get('PMA_VERSION'));
56 unset($CFG);
58 // Ensure we have session started
59 session_start();
61 // Standard environment for tests
62 $_SESSION[' PMA_token '] = 'token';
63 $_SESSION['tmpval']['pftext'] = 'F';
64 $GLOBALS['lang'] = 'en';
65 $GLOBALS['is_ajax_request'] = false;
67 // Check whether we have runkit extension
68 define('PMA_HAS_RUNKIT', function_exists('runkit_constant_redefine'));
69 $GLOBALS['runkit_internal_override'] = ini_get('runkit.internal_override');
72 /**
73 * Function to emulate headers() function by storing headers in GLOBAL array
75 * @param string $string header string
76 * @param boolean $replace .
77 * @param integer $http_response_code .
79 * @return void
81 function test_header($string, $replace = true, $http_response_code = 200)
83 if (! isset($GLOBALS['header'])) {
84 $GLOBALS['header'] = array();
87 $GLOBALS['header'][] = $string;
90 /**
91 * Function to emulate headers_send.
93 * @return boolean false
95 function test_headers_sent()
97 return false;
101 * Function to emulate date() function
103 * @param string $date_format arg
105 * @return string dummy date
107 function test_date($date_format)
109 return '0000-00-00 00:00:00';
112 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
113 echo "Enabling headers testing using runkit...\n";
114 runkit_function_rename('header', 'test_header_override');
115 runkit_function_rename('headers_sent', 'test_headers_sent_override');
116 runkit_function_rename('test_header', 'header');
117 runkit_function_rename('test_headers_sent', 'headers_sent');
118 define('PMA_TEST_HEADERS', true);
119 } else {
120 echo "No headers testing.\n";
121 echo "Please install runkit and enable runkit.internal_override!\n";
125 * Return the tag array to be used with assertTag by parsing
126 * a given HTML element
128 * @param string $elementHTML HTML for element to be parsed
129 * @param array $arr Additional array elements like content, parent
131 * @return array Tag array to be used with assertTag
133 function PMA_getTagArray($elementHTML, $arr = array())
136 // get attributes
137 preg_match_all("/\s+(.*?)\=\s*\"(.*?)\"/is", $elementHTML, $matches);
138 foreach ($matches[1] as $key => $val) {
139 $arr['attributes'][trim($val)] = trim($matches[2][$key]);
141 $matches = array();
143 // get tag
144 preg_match("/^\<(.*?)(\s|\>)/i", $elementHTML, $matches);
145 if (isset($matches[1])) {
146 $arr['tag'] = trim($matches[1]);
149 return $arr;
153 * Overrides date function
155 * @return boolean whether function was overridden or not
157 function setupForTestsUsingDate()
159 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
160 runkit_function_rename('date', 'test_date_override');
161 runkit_function_rename('test_date', 'date');
162 return true;
163 } else {
164 return false;
169 * Restores date function
171 * @return void
173 function tearDownForTestsUsingDate()
175 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
176 runkit_function_rename('date', 'test_date');
177 runkit_function_rename('test_date_override', 'date');