Translated using Weblate (Slovenian)
[phpmyadmin.git] / test / bootstrap-dist.php
blob0188e49b0550a84bfd76869507c2572687b750e3
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Bootstrap for phpMyAdmin tests
6 * @package PhpMyAdmin-test
7 */
9 /**
10 * Set precision to sane value, with higher values
11 * things behave slightly unexpectedly, for example
12 * round(1.2, 2) returns 1.199999999999999956.
14 ini_set('precision', 14);
16 // Let PHP complain about all errors
17 error_reporting(E_ALL);
19 // Ensure PHP has set timezone
20 date_default_timezone_set('UTC');
22 // Adding phpMyAdmin sources to include path
23 set_include_path(
24 get_include_path() . PATH_SEPARATOR . dirname(realpath("../index.php"))
27 // Setting constants for testing
28 define('PHPMYADMIN', 1);
29 define('TESTSUITE', 1);
30 define('PMA_MYSQL_INT_VERSION', 55000);
31 define('PMA_MYSQL_STR_VERSION', '5.50.00');
32 define('PMA_MYSQL_VERSION_COMMENT', 'MySQL Community Server (GPL)');
34 // Selenium tests setup
35 $test_defaults = array(
36 'TESTSUITE_SERVER' => 'localhost',
37 'TESTSUITE_USER' => 'root',
38 'TESTSUITE_PASSWORD' => '',
39 'TESTSUITE_DATABASE' => 'test',
40 'TESTSUITE_URL' => 'http://localhost/phpmyadmin/',
41 'TESTSUITE_SELENIUM_HOST' => '',
42 'TESTSUITE_SELENIUM_PORT' => '4444',
43 'TESTSUITE_SELENIUM_BROWSER' => 'firefox',
44 'TESTSUITE_SELENIUM_COVERAGE' => '',
45 'TESTSUITE_BROWSERSTACK_USER' => '',
46 'TESTSUITE_BROWSERSTACK_KEY' => '',
47 'TESTSUITE_FULL' => '',
49 foreach ($test_defaults as $varname => $defvalue) {
50 $envvar = getenv($varname);
51 if ($envvar) {
52 $GLOBALS[$varname] = $envvar;
53 } else {
54 $GLOBALS[$varname] = $defvalue;
58 require_once 'libraries/vendor_config.php';
59 require_once 'libraries/autoloader.php';
60 require_once 'libraries/core.lib.php';
61 $CFG = new PMA\libraries\Config();
62 // Initialize PMA_VERSION variable
63 define('PMA_VERSION', $CFG->get('PMA_VERSION'));
64 unset($CFG);
65 require_once 'libraries/sql-parser/autoload.php';
67 /* Ensure default langauge is active */
68 require_once 'libraries/php-gettext/gettext.inc';
69 PMA\libraries\LanguageManager::getInstance()->getLanguage('en')->activate();
71 // Set proxy information from env, if available
72 $http_proxy = getenv('http_proxy');
73 if ($http_proxy && ($url_info = parse_url($http_proxy))) {
74 define('PROXY_URL', $url_info['host'] . ':' . $url_info['port']);
75 define('PROXY_USER', empty($url_info['user']) ? '' : $url_info['user']);
76 define('PROXY_PASS', empty($url_info['pass']) ? '' : $url_info['pass']);
77 } else {
78 define('PROXY_URL', '');
79 define('PROXY_USER', '');
80 define('PROXY_PASS', '');
83 // Ensure we have session started
84 session_start();
86 // Standard environment for tests
87 $_SESSION[' PMA_token '] = 'token';
88 $_SESSION['tmpval']['pftext'] = 'F';
89 $GLOBALS['lang'] = 'en';
90 $GLOBALS['is_ajax_request'] = false;
91 $GLOBALS['cell_align_left'] = 'left';
93 // Check whether we have runkit extension
94 define('PMA_HAS_RUNKIT', function_exists('runkit_constant_redefine'));
95 $GLOBALS['runkit_internal_override'] = ini_get('runkit.internal_override');
98 /**
99 * Function to emulate headers() function by storing headers in GLOBAL array
101 * @param string $string header string
102 * @param boolean $replace .
103 * @param integer $http_response_code .
105 * @return void
107 function test_header($string, $replace = true, $http_response_code = 200)
109 if (! isset($GLOBALS['header'])) {
110 $GLOBALS['header'] = array();
113 $GLOBALS['header'][] = $string;
117 * Function to emulate headers_send.
119 * @return boolean false
121 function test_headers_sent()
123 return false;
127 * Function to emulate date() function
129 * @param string $date_format arg
131 * @return string dummy date
133 function test_date($date_format)
135 return '0000-00-00 00:00:00';
138 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
139 echo "Enabling headers testing using runkit...\n";
140 runkit_function_rename('header', 'test_header_override');
141 runkit_function_rename('headers_sent', 'test_headers_sent_override');
142 runkit_function_rename('test_header', 'header');
143 runkit_function_rename('test_headers_sent', 'headers_sent');
144 define('PMA_TEST_HEADERS', true);
145 } else {
146 echo "No headers testing.\n";
147 echo "Please install runkit and enable runkit.internal_override!\n";
151 * Overrides date function
153 * @return boolean whether function was overridden or not
155 function setupForTestsUsingDate()
157 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
158 runkit_function_rename('date', 'test_date_override');
159 runkit_function_rename('test_date', 'date');
160 return true;
161 } else {
162 return false;
167 * Restores date function
169 * @return void
171 function tearDownForTestsUsingDate()
173 if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
174 runkit_function_rename('date', 'test_date');
175 runkit_function_rename('test_date_override', 'date');