Add tests, refs #2017
parent
13c7be2d7e
commit
b4c0b18896
|
@ -73,7 +73,7 @@ final class StreamContextFactory
|
|||
}
|
||||
|
||||
// add request_fulluri and authentication if we still have a proxy to connect to
|
||||
if (isset($options['http']['proxy'])) {
|
||||
if (!empty($options['http']['proxy'])) {
|
||||
// enabled request_fulluri unless it is explicitly disabled
|
||||
switch (parse_url($url, PHP_URL_SCHEME)) {
|
||||
case 'http': // default request_fulluri to true
|
||||
|
|
|
@ -20,12 +20,14 @@ class StreamContextFactoryTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
unset($_SERVER['HTTP_PROXY']);
|
||||
unset($_SERVER['http_proxy']);
|
||||
unset($_SERVER['no_proxy']);
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
unset($_SERVER['HTTP_PROXY']);
|
||||
unset($_SERVER['http_proxy']);
|
||||
unset($_SERVER['no_proxy']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,6 +75,36 @@ class StreamContextFactoryTest extends \PHPUnit_Framework_TestCase
|
|||
)), $options);
|
||||
}
|
||||
|
||||
public function testHttpProxyWithNoProxy()
|
||||
{
|
||||
$_SERVER['http_proxy'] = 'http://username:password@proxyserver.net:3128/';
|
||||
$_SERVER['no_proxy'] = 'foo,example.org';
|
||||
|
||||
$context = StreamContextFactory::getContext('http://example.org', array('http' => array('method' => 'GET')));
|
||||
$options = stream_context_get_options($context);
|
||||
|
||||
$this->assertEquals(array('http' => array(
|
||||
'method' => 'GET',
|
||||
'max_redirects' => 20,
|
||||
'follow_location' => 1,
|
||||
)), $options);
|
||||
}
|
||||
|
||||
public function testHttpProxyWithNoProxyWildcard()
|
||||
{
|
||||
$_SERVER['http_proxy'] = 'http://username:password@proxyserver.net:3128/';
|
||||
$_SERVER['no_proxy'] = '*';
|
||||
|
||||
$context = StreamContextFactory::getContext('http://example.org', array('http' => array('method' => 'GET')));
|
||||
$options = stream_context_get_options($context);
|
||||
|
||||
$this->assertEquals(array('http' => array(
|
||||
'method' => 'GET',
|
||||
'max_redirects' => 20,
|
||||
'follow_location' => 1,
|
||||
)), $options);
|
||||
}
|
||||
|
||||
public function testOptionsArePreserved()
|
||||
{
|
||||
$_SERVER['http_proxy'] = 'http://username:password@proxyserver.net:3128/';
|
||||
|
|
Loading…
Reference in New Issue