mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 11:39:41 +08:00
Fix #20226: Revert all PR for "Data providers perform unnecessary COUNT queries that negatively affect performance"
This commit is contained in:
@ -10,7 +10,6 @@ namespace yiiunit\framework\rest;
|
||||
use yii\base\Model;
|
||||
use yii\data\ArrayDataProvider;
|
||||
use yii\rest\Serializer;
|
||||
use yii\web\Request;
|
||||
use yiiunit\TestCase;
|
||||
|
||||
/**
|
||||
@ -416,56 +415,6 @@ class SerializerTest extends TestCase
|
||||
$this->assertEquals($expectedResult, $serializer->serialize($dataProvider));
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProviderSerializeDataProvider
|
||||
*
|
||||
* @param \yii\data\DataProviderInterface $dataProvider
|
||||
* @param array $expectedResult
|
||||
* @param bool $saveKeys
|
||||
*/
|
||||
public function testHeadSerializeDataProvider($dataProvider, $expectedResult, $saveKeys = false)
|
||||
{
|
||||
$serializer = new Serializer();
|
||||
$serializer->preserveKeys = $saveKeys;
|
||||
$serializer->collectionEnvelope = 'data';
|
||||
|
||||
$this->assertEquals($expectedResult, $serializer->serialize($dataProvider)['data']);
|
||||
|
||||
$_SERVER['REQUEST_METHOD'] = 'HEAD';
|
||||
$request = new Request();
|
||||
$_POST[$request->methodParam] = 'HEAD';
|
||||
$serializer = new Serializer([
|
||||
'request' => $request
|
||||
]);
|
||||
$serializer->preserveKeys = $saveKeys;
|
||||
$this->assertEmpty($serializer->serialize($dataProvider));
|
||||
$this->assertNotEmpty($serializer->response->getHeaders()->get($serializer->totalCountHeader));
|
||||
|
||||
$arrayDataProviderMock = $this->getMockBuilder(ArrayDataProvider::className())
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
// stub getModels to prevent empty
|
||||
$arrayDataProviderMock
|
||||
->method('getModels')
|
||||
->willReturn($expectedResult);
|
||||
|
||||
// stub getPagination for header
|
||||
$arrayDataProviderMock
|
||||
->method('getPagination')
|
||||
->willReturn($dataProvider->getPagination());
|
||||
|
||||
// assert normal HEAD is empty response
|
||||
$this->assertEmpty($serializer->serialize($arrayDataProviderMock));
|
||||
|
||||
// Test #20002: Set up the expectation for the getModels method
|
||||
$arrayDataProviderMock->expects($this->never())
|
||||
->method('getModels');
|
||||
|
||||
// reset Method
|
||||
unset($_POST[$request->methodParam], $_SERVER['REQUEST_METHOD']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://github.com/yiisoft/yii2/issues/16334
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user