Skip to content

Commit

Permalink
Add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jaymoulin committed Oct 20, 2017
1 parent ba82b68 commit d7ad5ad
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 19 deletions.
12 changes: 6 additions & 6 deletions src/Response/Header/XFrameOptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ class XFrameOptions extends Header
const OPTIONS_ALLOW_FROM_URI_DEFAULT = '*';

private $options = self::OPTIONS_DENY;
private $uri = [];
private $uri = [self::OPTIONS_ALLOW_FROM_URI_DEFAULT];


/**
* XFrameOptions constructor.
* @param $options
* @param array $uri
*/
public function __construct($options = self::OPTIONS_DENY, array $uri = array())
public function __construct($options = self::OPTIONS_DENY, array $uri = [self::OPTIONS_ALLOW_FROM_URI_DEFAULT])
{
$this->setOptions($options)->setUri($uri);
}
Expand Down Expand Up @@ -60,9 +60,9 @@ public function getOptions()
* @param string $options
* @return $this
*/
public function setOptions($options)
public function setOptions($options = self::OPTIONS_DENY)
{
$this->options = (string)$options;
$this->options = is_string($options) ? $options : self::OPTIONS_DENY;
return $this;
}

Expand All @@ -72,7 +72,7 @@ public function setOptions($options)
*/
public function getUri()
{
return $this->uri = $this->uri ?: [self::OPTIONS_ALLOW_FROM_URI_DEFAULT];
return $this->uri;
}

/**
Expand All @@ -82,7 +82,7 @@ public function getUri()
*/
public function setUri(array $uri = [])
{
$this->uri = $uri;
$this->uri = $uri ?: [self::OPTIONS_ALLOW_FROM_URI_DEFAULT];
return $this;
}

Expand Down
107 changes: 94 additions & 13 deletions tests/Response/Header/XFrameOptions.php
Original file line number Diff line number Diff line change
@@ -1,39 +1,120 @@
<?php
/**
* Created by PhpStorm.
* User: jsallarsaib
* Date: 19/10/17
* Time: 16:33
*/

namespace FMUPTests\Response\Header;

class XFrameOptionsTest extends \PHPUnit_Framework_TestCase
{
public function testGetValue()
public function testConstructors()
{
$header = new \FMUP\Response\Header\XFrameOptions;
$this->assertInstanceOf(\FMUP\Response\Header::class, $header);
$this->assertInstanceOf(\FMUP\Response\Header\XFrameOptions::class, $header);
$this->assertSame('Deny', $header->getOptions());
$this->assertSame(['*'], $header->getUri());

$header = new \FMUP\Response\Header\XFrameOptions('blu');
$this->assertSame('blu', $header->getOptions());
$header = new \FMUP\Response\Header\XFrameOptions(new \stdClass());
$this->assertSame('Deny', $header->getOptions());

$header = new \FMUP\Response\Header\XFrameOptions('blu', ['hhh']);
$this->assertSame(['hhh'], $header->getUri());
$header = new \FMUP\Response\Header\XFrameOptions('blu', ['hhh', 'fff']);
$this->assertSame(['hhh', 'fff'], $header->getUri());
$header = new \FMUP\Response\Header\XFrameOptions('blu', []);
$this->assertSame(['*'], $header->getUri());
}

public function testGetValueDefault()
{
$obj = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(['getOptions'])
->getMock();
$obj->expects($this->once())->method('getOptions')->willReturn(\FMUP\Response\Header\XFrameOptions::OPTIONS_DENY);
$obj->expects($this->once())->method('getOptions')
->willReturn(\FMUP\Response\Header\XFrameOptions::OPTIONS_DENY);
/**
* @var \FMUP\Response\Header\XFrameOptions $obj
*/
$this->assertSame(\FMUP\Response\Header\XFrameOptions::OPTIONS_DENY, $obj->getValue(), 'value is not deny');
$this->assertSame(
\FMUP\Response\Header\XFrameOptions::OPTIONS_DENY,
$obj->getValue(),
'Default value is not deny'
);
}

public function testGetValueWhenOptionsAllowWithEmptyUri()
{
$obj = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(['getOptions'])
->getMock();
$obj->expects($this->once())->method('getOptions')
->willReturn(\FMUP\Response\Header\XFrameOptions::OPTIONS_ALLOW_FROM);
/**
* @var \FMUP\Response\Header\XFrameOptions $obj
*/
$this->assertSame('ALLOW_FROM *;', $obj->getValue(), 'value is not empty');
}

public function testGetValueWhenOptionsAllowWithSomeUri()
{
$obj = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(['getOptions', 'getUri'])
->getMock();
$obj->expects($this->once())->method('getOptions')->willReturn(\FMUP\Response\Header\XFrameOptions::OPTIONS_ALLOW_FROM);
$obj->expects($this->once())->method('getUri')->willReturn([]);
$obj->expects($this->once())->method('getOptions')
->willReturn(\FMUP\Response\Header\XFrameOptions::OPTIONS_ALLOW_FROM);
$obj->expects($this->once())->method('getUri')->willReturn(['http://google.com', 'bob.local']);
/**
* @var \FMUP\Response\Header\XFrameOptions $obj
*/
$this->assertSame('', $obj->getValue(), 'value is not empty');
$this->assertSame('ALLOW_FROM http://google.com;ALLOW_FROM bob.local;', $obj->getValue(), 'Unexpected value');
}

public function testSetGetOptions()
{
$header = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(null)
->getMock();
/**
* @var \FMUP\Response\Header\XFrameOptions $header
*/
$this->assertSame('Deny', $header->getOptions(), 'Unexpected default value');
$this->assertSame($header, $header->setOptions('wawa'), 'Unexpected fluid interface');
$this->assertSame('wawa', $header->getOptions(), 'Unexpected changed value');
$header->setOptions(new \stdClass());
$this->assertSame('Deny', $header->getOptions(), 'Unexpected default value on wrong parameter');
$header->setOptions(true);
$this->assertSame('Deny', $header->getOptions(), 'Unexpected default value on wrong parameter #2');
}

public function testSetGetUri()
{
$header = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(null)
->getMock();
/**
* @var \FMUP\Response\Header\XFrameOptions $header
*/
$this->assertSame(['*'], $header->getUri(), 'Unexpected default value');
$this->assertSame($header, $header->setUri(['wawa']), 'Unexpected fluid interface');
$this->assertSame(['wawa'], $header->getUri(), 'Unexpected changed value');
$header->setUri([]);
$this->assertSame(['*'], $header->getUri(), 'Unexpected default value on wrong array');
}

public function testGetType()
{
$header = $this->getMockBuilder(\FMUP\Response\Header\XFrameOptions::class)
->disableOriginalConstructor()
->setMethods(null)
->getMock();
/**
* @var \FMUP\Response\Header\XFrameOptions $header
*/
$this->assertSame('X-Frame-Options', $header->getType(), 'Unexpected type value');
}
}
}

0 comments on commit d7ad5ad

Please sign in to comment.