PageRenderTime 37ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/mock/request.php

https://github.com/Jipem/phpbb
PHP | 117 lines | 84 code | 21 blank | 12 comment | 0 complexity | 3631ddfa04378970d9dd308d1a4a7f42 MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /**
  3. *
  4. * This file is part of the phpBB Forum Software package.
  5. *
  6. * @copyright (c) phpBB Limited <https://www.phpbb.com>
  7. * @license GNU General Public License, version 2 (GPL-2.0)
  8. *
  9. * For full copyright and license information, please see
  10. * the docs/CREDITS.txt file.
  11. *
  12. */
  13. class phpbb_mock_request implements \phpbb\request\request_interface
  14. {
  15. protected $data;
  16. protected $super_globals_disabled = false;
  17. public function __construct($get = array(), $post = array(), $cookie = array(), $server = array(), $request = false, $files = array())
  18. {
  19. $this->data[\phpbb\request\request_interface::GET] = $get;
  20. $this->data[\phpbb\request\request_interface::POST] = $post;
  21. $this->data[\phpbb\request\request_interface::COOKIE] = $cookie;
  22. $this->data[\phpbb\request\request_interface::REQUEST] = ($request === false) ? $post + $get : $request;
  23. $this->data[\phpbb\request\request_interface::SERVER] = $server;
  24. $this->data[\phpbb\request\request_interface::FILES] = $files;
  25. $this->disable_super_globals();
  26. }
  27. public function overwrite($var_name, $value, $super_global = \phpbb\request\request_interface::REQUEST)
  28. {
  29. $this->data[$super_global][$var_name] = $value;
  30. }
  31. public function variable($var_name, $default, $multibyte = false, $super_global = \phpbb\request\request_interface::REQUEST)
  32. {
  33. return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
  34. }
  35. public function server($var_name, $default = '')
  36. {
  37. $super_global = \phpbb\request\request_interface::SERVER;
  38. return isset($this->data[$super_global][$var_name]) ? $this->data[$super_global][$var_name] : $default;
  39. }
  40. public function header($header_name, $default = '')
  41. {
  42. $var_name = 'HTTP_' . str_replace('-', '_', strtoupper($header_name));
  43. return $this->server($var_name, $default);
  44. }
  45. public function file($form_name)
  46. {
  47. $super_global = \phpbb\request\request_interface::FILES;
  48. return isset($this->data[$super_global][$form_name]) ? $this->data[$super_global][$form_name] : array();
  49. }
  50. public function is_set_post($name)
  51. {
  52. return $this->is_set($name, \phpbb\request\request_interface::POST);
  53. }
  54. public function is_set($var, $super_global = \phpbb\request\request_interface::REQUEST)
  55. {
  56. return isset($this->data[$super_global][$var]);
  57. }
  58. public function is_ajax()
  59. {
  60. return false;
  61. }
  62. public function is_secure()
  63. {
  64. return false;
  65. }
  66. public function variable_names($super_global = \phpbb\request\request_interface::REQUEST)
  67. {
  68. return array_keys($this->data[$super_global]);
  69. }
  70. public function get_super_global($super_global = \phpbb\request\request_interface::REQUEST)
  71. {
  72. return $this->data[$super_global];
  73. }
  74. public function super_globals_disabled()
  75. {
  76. return $this->super_globals_disabled;
  77. }
  78. public function disable_super_globals()
  79. {
  80. $this->super_globals_disabled = true;
  81. }
  82. public function enable_super_globals()
  83. {
  84. $this->super_globals_disabled = false;
  85. }
  86. /* custom methods */
  87. public function set_header($header_name, $value)
  88. {
  89. $var_name = 'HTTP_' . str_replace('-', '_', strtoupper($header_name));
  90. $this->data[\phpbb\request\request_interface::SERVER][$var_name] = $value;
  91. }
  92. public function merge($super_global = \phpbb\request\request_interface::REQUEST, $values)
  93. {
  94. $this->data[$super_global] = array_merge($this->data[$super_global], $values);
  95. }
  96. }