From 5254efdd7c58f2223c2f9d6e2ee2fb7ea9204112 Mon Sep 17 00:00:00 2001 From: Vytautas Stankus Date: Mon, 27 Jan 2020 09:58:47 +0200 Subject: [PATCH] Allow to add or remove server params --- src/Codeception/Lib/InnerBrowser.php | 25 +++++++++++++++++++ tests/data/app/db | 2 +- tests/unit/Codeception/Module/TestsForWeb.php | 23 +++++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/Codeception/Lib/InnerBrowser.php b/src/Codeception/Lib/InnerBrowser.php index 3505cfb..1dbf401 100644 --- a/src/Codeception/Lib/InnerBrowser.php +++ b/src/Codeception/Lib/InnerBrowser.php @@ -2034,4 +2034,29 @@ protected function getNormalizedResponseContent() return $content; } + + /** + * Sets SERVER parameters valid for all next requests. + * this will remove old ones. + * + * ```php + * $I->setServerParameters([]); + * ``` + */ + public function setServerParameters(array $params) + { + $this->client->setServerParameters($params); + } + + /** + * Sets SERVER parameter valid for all next requests. + * + * ```php + * $I->haveServerParameter('name', 'value'); + * ``` + */ + public function haveServerParameter($name, $value) + { + $this->client->setServerParameter($name, $value); + } } diff --git a/tests/data/app/db b/tests/data/app/db index c856afc..67d0259 100644 --- a/tests/data/app/db +++ b/tests/data/app/db @@ -1 +1 @@ -a:0:{} \ No newline at end of file +a:0:{} diff --git a/tests/unit/Codeception/Module/TestsForWeb.php b/tests/unit/Codeception/Module/TestsForWeb.php index f173060..e399e41 100644 --- a/tests/unit/Codeception/Module/TestsForWeb.php +++ b/tests/unit/Codeception/Module/TestsForWeb.php @@ -1746,4 +1746,27 @@ public function testPasswordArgument() $data = data::get('form'); $this->assertEquals('thisissecret', $data['password']); } + + + public function testCanResetHTTPAuthenticated() + { + $this->module->amHttpAuthenticated('user', 'pass'); + $this->module->amOnPage('/'); + $server = $this->module->client->getRequest()->getServer(); + $this->assertArrayHasKey('PHP_AUTH_USER', $server); + $this->assertArrayHasKey('PHP_AUTH_PW', $server); + $this->module->setServerParameters([]); + $this->module->amOnPage('/'); + $server = $this->module->client->getRequest()->getServer(); + $this->assertArrayNotHasKey('PHP_AUTH_USER', $server); + $this->assertArrayNotHasKey('PHP_AUTH_PW', $server); + } + + public function testHaveServerParameter() + { + $this->module->haveServerParameter('my', 'param'); + $this->module->amOnPage('/'); + $server = $this->module->client->getRequest()->getServer(); + $this->assertArrayHasKey('my', $server); + } }