Yii2 framework backup
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

115 lines
4.8 KiB

<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace yiiunit\framework\web;
use yii\web\HeaderCollection;
use yiiunit\TestCase;
/**
* @group web
*/
class HeaderCollectionTest extends TestCase
{
public function testFromArray()
{
$headerCollection = new HeaderCollection();
$location = 'my-test-location';
$headerCollection->fromArray([
'Location' => [$location],
]);
$this->assertEquals($location, $headerCollection->get('Location'));
}
public function testSetter()
{
$headerCollection = new HeaderCollection();
$this->assertSame('default', $headerCollection->get('X-Header', 'default'));
$this->assertFalse($headerCollection->has('X-Header'));
$headerCollection->set('X-Header', '1');
$this->assertTrue($headerCollection->has('X-Header'));
$this->assertTrue($headerCollection->offsetExists('X-Header'));
$this->assertSame('1', $headerCollection->get('X-Header'));
$this->assertSame(['1'], $headerCollection->get('X-Header', null, false));
$this->assertTrue($headerCollection->has('x-header'));
$this->assertSame('1', $headerCollection->get('x-header'));
$this->assertSame(['1'], $headerCollection->get('x-header', null, false));
$this->assertSame('1', $headerCollection->get('x-hEadER'));
$this->assertSame(['1'], $headerCollection->get('x-hEadER', null, false));
$this->assertSame(['x-header' => ['1']], $headerCollection->toArray());
$this->assertSame(['X-Header' => ['1']], $headerCollection->toOriginalArray());
$headerCollection->set('X-HEADER', '2');
$this->assertSame('2', $headerCollection->get('X-Header'));
$this->assertSame('2', $headerCollection->get('x-header'));
$this->assertSame('2', $headerCollection->get('x-hEadER'));
$this->assertSame(['x-header' => ['2']], $headerCollection->toArray());
$this->assertSame(['X-HEADER' => ['2']], $headerCollection->toOriginalArray());
$headerCollection->offsetSet('X-HEADER', '3');
$this->assertSame('3', $headerCollection->get('X-Header'));
}
public function testSetterDefault()
{
$headerCollection = new HeaderCollection();
$headerCollection->setDefault('X-Header', '1');
$this->assertSame(['1'], $headerCollection->get('X-Header', null, false));
$headerCollection->setDefault('X-Header', '2');
$this->assertSame(['1'], $headerCollection->get('X-Header', null, false));
}
public function testAdder()
{
$headerCollection = new HeaderCollection();
$headerCollection->add('X-Header', '1');
$this->assertSame('1', $headerCollection->get('X-Header'));
$this->assertSame(['1'], $headerCollection->get('X-Header', null, false));
$this->assertSame('1', $headerCollection->get('x-header'));
$this->assertSame(['1'], $headerCollection->get('x-header', null, false));
$this->assertSame('1', $headerCollection->get('x-hEadER'));
$this->assertSame(['1'], $headerCollection->get('x-hEadER', null, false));
$this->assertSame(['x-header' => ['1']], $headerCollection->toArray());
$this->assertSame(['X-Header' => ['1']], $headerCollection->toOriginalArray());
$headerCollection->add('X-HEADER', '2');
$this->assertSame('1', $headerCollection->get('X-Header'));
$this->assertSame('1', $headerCollection->get('x-header'));
$this->assertSame('1', $headerCollection->get('x-hEadER'));
$this->assertSame(['1', '2'], $headerCollection->get('x-header', null, false));
$this->assertSame(['x-header' => ['1', '2']], $headerCollection->toArray());
$this->assertSame(['X-Header' => ['1', '2']], $headerCollection->toOriginalArray());
}
public function testRemover()
{
$headerCollection = new HeaderCollection();
$headerCollection->add('X-Header', '1');
$this->assertSame(1, $headerCollection->count());
$this->assertSame(1, $headerCollection->getCount());
$headerCollection->remove('X-Header');
$this->assertSame(0, $headerCollection->count());
$headerCollection->add('X-Header', '1');
$this->assertSame(1, $headerCollection->count());
$headerCollection->remove('x-header');
$this->assertSame(0, $headerCollection->count());
$headerCollection->add('X-Header', '1');
$headerCollection->offsetUnset('X-HEADER');
$this->assertSame(0, $headerCollection->count());
$headerCollection->add('X-Header-1', '1');
$headerCollection->add('X-Header-2', '1');
$this->assertSame(2, $headerCollection->count());
$headerCollection->removeAll();
$this->assertSame(0, $headerCollection->count());
}
}