the middle of the idiots
This commit is contained in:
95
qwen/php/vendor/slim/psr7/tests/Assets/HeaderStack.php
vendored
Normal file
95
qwen/php/vendor/slim/psr7/tests/Assets/HeaderStack.php
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This is a direct copy of zend-diactoros/test/TestAsset/Functions.php and is used to override
|
||||
* header() and headers_sent() so we can test that they do the right thing.
|
||||
*/
|
||||
|
||||
namespace Slim\Tests\Psr7\Assets;
|
||||
|
||||
use function strpos;
|
||||
|
||||
/**
|
||||
* Zend Framework (http://framework.zend.com/)
|
||||
*
|
||||
* This file exists to allow overriding the various output-related functions
|
||||
* in order to test what happens during the `Server::listen()` cycle.
|
||||
*
|
||||
* These functions include:
|
||||
*
|
||||
* - headers_sent(): we want to always return false so that headers will be
|
||||
* emitted, and we can test to see their values.
|
||||
* - header(): we want to aggregate calls to this function.
|
||||
*
|
||||
* The HeaderStack class then aggregates that information for us, and the test
|
||||
* harness resets the values pre and post test.
|
||||
*
|
||||
* @see http://github.com/zendframework/zend-diactoros for the canonical source repository
|
||||
* @copyright Copyright (c) 2015-2016 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
|
||||
*/
|
||||
|
||||
class HeaderStack
|
||||
{
|
||||
private static array $data = [];
|
||||
|
||||
/**
|
||||
* Reset state
|
||||
*/
|
||||
public static function reset()
|
||||
{
|
||||
self::$data = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Push a header on the stack
|
||||
*
|
||||
* @param string[] $header
|
||||
*/
|
||||
public static function push(array $header)
|
||||
{
|
||||
self::$data[] = $header;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the current header stack
|
||||
*
|
||||
* @return string[][]
|
||||
*/
|
||||
public static function stack(): array
|
||||
{
|
||||
return self::$data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify if there's a header line on the stack
|
||||
*
|
||||
* @param string $header
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function has($header): bool
|
||||
{
|
||||
foreach (self::$data as $item) {
|
||||
if ($item['header'] === $header) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove occurrences of $header
|
||||
*
|
||||
* @param string $header
|
||||
*/
|
||||
public static function remove($header): void
|
||||
{
|
||||
foreach (self::$data as $key => $item) {
|
||||
if (false !== strpos($item['header'], "$header:")) {
|
||||
unset(self::$data[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user