diff options
author | Jürgen Thomann <juergen_thomann@linfre.de> | 2022-05-06 11:22:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-06 11:22:39 +0300 |
commit | f4f46a2989ee32f9d48672e1002b6abf774cda28 (patch) | |
tree | 6e4c03c34cbdd5ad53a538efaad293422b21d57c /tests/PHPUnit | |
parent | 1fa21250b43706fc2859015d0b465c01d32d1095 (diff) |
Add support to exclude hosts from proxy (#19139)
Diffstat (limited to 'tests/PHPUnit')
-rw-r--r-- | tests/PHPUnit/Unit/HttpTest.php | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/PHPUnit/Unit/HttpTest.php b/tests/PHPUnit/Unit/HttpTest.php new file mode 100644 index 0000000000..d66f395baf --- /dev/null +++ b/tests/PHPUnit/Unit/HttpTest.php @@ -0,0 +1,51 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +namespace Piwik\Tests\Unit; + +use Piwik\Config; +use Piwik\Http; +use ReflectionMethod; + +/** + * @group Core + */ +class HttpTest extends \PHPUnit\Framework\TestCase +{ + /** + * @dataProvider getProxyConfigurationTestData + */ + public function testgetProxyConfiguration($url, $proxyConfiguration, $expected) + { + $getProxyConfiguration = new ReflectionMethod('\\Piwik\\Http', 'getProxyConfiguration'); + $getProxyConfiguration->setAccessible(true); + + Config::getInstance()->proxy['host'] = $proxyConfiguration[0]; + Config::getInstance()->proxy['port'] = $proxyConfiguration[1]; + Config::getInstance()->proxy['username'] = ''; + Config::getInstance()->proxy['password'] = ''; + Config::getInstance()->proxy['exclude'] = $proxyConfiguration[2]; + + $this->assertEquals($expected, $getProxyConfiguration->invoke(new Http(), $url)); + } + + public function getProxyConfigurationTestData() + { + return array( + array('http://localhost/', array('', '', ''), array(null, null, null, null)), + array('http://localhost/', array('localhost', '8080', ''), array(null, null, null, null)), + array('http://example.com/', array('', '', ''), array('', '', '', '')), + array('http://example.com/', array('localhost', '8080', ''), array('localhost', '8080', '', '')), + array('http://example.com/', array('localhost', '8080', ''), array('localhost', '8080', '', '')), + array('http://example.com/', array('localhost', '8080', 'example.com'), array(null, null, null, null)), + // Ensure that accidental whitespace is ignored + array('http://example.com/', array('localhost', '8080', ' example.com '), array(null, null, null, null)), + array('http://example.com/', array('localhost', '8080', 'a.example.com,b.example.net'), array('localhost', '8080', '', '')), + ); + } +} |