Browse Source

fix unit tests

tags/3.0.0-alpha1
Klimov Paul 7 years ago
parent
commit
13d443a68a
  1. 2
      framework/filters/Cors.php
  2. 2
      framework/filters/auth/HttpHeaderAuth.php
  3. 10
      tests/framework/filters/CorsTest.php
  4. 2
      tests/framework/filters/RateLimiterTest.php
  5. 9
      tests/framework/filters/auth/AuthTest.php

2
framework/filters/Cors.php

@ -106,7 +106,7 @@ class Cors extends ActionFilter
$responseCorsHeaders = $this->prepareHeaders($requestCorsHeaders);
$this->addCorsHeaders($this->response, $responseCorsHeaders);
if ($this->request->isOptions && $this->request->headers->has('Access-Control-Request-Method')) {
if ($this->request->isOptions && $this->request->hasHeader('Access-Control-Request-Method')) {
// it is CORS preflight request, respond with 200 OK without further processing
$this->response->setStatusCode(200);
return false;

2
framework/filters/auth/HttpHeaderAuth.php

@ -48,7 +48,7 @@ class HttpHeaderAuth extends AuthMethod
*/
public function authenticate($user, $request, $response)
{
$authHeader = $request->getHeaderLine('Authorization');
$authHeader = $request->getHeaderLine($this->header);
if ($authHeader !== null) {
if ($this->pattern !== null && preg_match($this->pattern, $authHeader, $matches)) {

10
tests/framework/filters/CorsTest.php

@ -30,16 +30,16 @@ class CorsTest extends TestCase
$cors = new Cors();
$cors->request = $request;
$_SERVER['REQUEST_METHOD'] = 'OPTIONS';
$request->headers->set('Access-Control-Request-Method', 'GET');
$request->setMethod('OPTIONS');
$request->setHeader('Access-Control-Request-Method', 'GET');
$this->assertFalse($cors->beforeAction($action));
$this->assertEquals(200, $cors->response->getStatusCode());
$_SERVER['REQUEST_METHOD'] = 'GET';
$request->headers->set('Access-Control-Request-Method', 'GET');
$request->setMethod('GET');
$request->setHeader('Access-Control-Request-Method', 'GET');
$this->assertTrue($cors->beforeAction($action));
$request->headers->remove('Access-Control-Request-Method');
$request->setHeaders([]);
$this->assertTrue($cors->beforeAction($action));
}
}

2
tests/framework/filters/RateLimiterTest.php

@ -133,7 +133,7 @@ class RateLimiterTest extends TestCase
$rateLimiter = new RateLimiter();
$response = Yii::$app->response;
$rateLimiter->checkRateLimit($rateLimit, Yii::$app->request, $response, 'testAction');
$headers = $response->getHeaders();
$headers = $response->getHeaderCollection();
$this->assertEquals(2, $headers->get('X-Rate-Limit-Limit'));
$this->assertEquals(1, $headers->get('X-Rate-Limit-Remaining'));
$this->assertEquals(5, $headers->get('X-Rate-Limit-Reset'));

9
tests/framework/filters/auth/AuthTest.php

@ -91,6 +91,13 @@ class AuthTest extends \yiiunit\TestCase
}
}
public function ensureFilterApplies($token, $login, $filter)
{
$this->authOnly($token, $login, $filter);
$this->authOptional($token, $login, $filter);
$this->authExcept($token, $login, $filter);
}
/**
* @dataProvider tokenProvider
* @param string|null $token
@ -151,7 +158,7 @@ class AuthTest extends \yiiunit\TestCase
*/
public function testHttpHeaderAuth($token, $login)
{
Yii::$app->request->headers->set('X-Api-Key', $token);
Yii::$app->request->setHeader('X-Api-Key', $token);
$filter = ['class' => HttpHeaderAuth::class];
$this->ensureFilterApplies($token, $login, $filter);
}

Loading…
Cancel
Save