the whole shebang
This commit is contained in:
150
vendor/filp/whoops/tests/Whoops/Exception/FrameCollectionTest.php
vendored
Normal file
150
vendor/filp/whoops/tests/Whoops/Exception/FrameCollectionTest.php
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
/**
|
||||
* Whoops - php errors for cool kids
|
||||
* @author Filipe Dobreira <http://github.com/filp>
|
||||
*/
|
||||
|
||||
namespace Whoops\Exception;
|
||||
use Whoops\Exception\FrameCollection;
|
||||
use Whoops\TestCase;
|
||||
use Mockery as m;
|
||||
|
||||
class FrameCollectionTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Stupid little counter for tagging frames
|
||||
* with a unique but predictable id
|
||||
* @var int
|
||||
*/
|
||||
private $frameIdCounter = 0;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getFrameData()
|
||||
{
|
||||
$id = ++$this->frameIdCounter;
|
||||
return array(
|
||||
'file' => __DIR__ . '/../../fixtures/frame.lines-test.php',
|
||||
'line' => $id,
|
||||
'function' => 'test-' . $id,
|
||||
'class' => 'MyClass',
|
||||
'args' => array(true, 'hello')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $total
|
||||
* @return array
|
||||
*/
|
||||
public function getFrameDataList($total)
|
||||
{
|
||||
$total = max((int) $total, 1);
|
||||
$self = $this;
|
||||
$frames = array_map(function() use($self) {
|
||||
return $self->getFrameData();
|
||||
}, range(1, $total));
|
||||
|
||||
return $frames;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $frames
|
||||
* @return Whoops\Exception\FrameCollection
|
||||
*/
|
||||
private function getFrameCollectionInstance($frames = null)
|
||||
{
|
||||
if($frames === null) {
|
||||
$frames = $this->getFrameDataList(10);
|
||||
}
|
||||
|
||||
return new FrameCollection($frames);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::filter
|
||||
* @covers Whoops\Exception\FrameCollection::count
|
||||
*/
|
||||
public function testFilterFrames()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
|
||||
// Filter out all frames with a line number under 6
|
||||
$frames->filter(function($frame) {
|
||||
return $frame->getLine() <= 5;
|
||||
});
|
||||
|
||||
$this->assertCount(5, $frames);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::map
|
||||
*/
|
||||
public function testMapFrames()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
|
||||
// Filter out all frames with a line number under 6
|
||||
$frames->map(function($frame) {
|
||||
$frame->addComment("This is cool", "test");
|
||||
return $frame;
|
||||
});
|
||||
|
||||
$this->assertCount(10, $frames);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::map
|
||||
* @expectedException UnexpectedValueException
|
||||
*/
|
||||
public function testMapFramesEnforceType()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
|
||||
// Filter out all frames with a line number under 6
|
||||
$frames->map(function($frame) {
|
||||
return "bajango";
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::getArray
|
||||
*/
|
||||
public function testGetArray()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
$frames = $frames->getArray();
|
||||
|
||||
$this->assertCount(10, $frames);
|
||||
foreach($frames as $frame) {
|
||||
$this->assertInstanceOf('Whoops\\Exception\\Frame', $frame);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::getIterator
|
||||
*/
|
||||
public function testCollectionIsIterable()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
foreach($frames as $frame) {
|
||||
$this->assertInstanceOf('Whoops\\Exception\\Frame', $frame);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\FrameCollection::serialize
|
||||
* @covers Whoops\Exception\FrameCollection::unserialize
|
||||
*/
|
||||
public function testCollectionIsSerializable()
|
||||
{
|
||||
$frames = $this->getFrameCollectionInstance();
|
||||
$serializedFrames = serialize($frames);
|
||||
$newFrames = unserialize($serializedFrames);
|
||||
|
||||
foreach($newFrames as $frame) {
|
||||
$this->assertInstanceOf('Whoops\\Exception\\Frame', $frame);
|
||||
}
|
||||
}
|
||||
}
|
209
vendor/filp/whoops/tests/Whoops/Exception/FrameTest.php
vendored
Normal file
209
vendor/filp/whoops/tests/Whoops/Exception/FrameTest.php
vendored
Normal file
@@ -0,0 +1,209 @@
|
||||
<?php
|
||||
/**
|
||||
* Whoops - php errors for cool kids
|
||||
* @author Filipe Dobreira <http://github.com/filp>
|
||||
*/
|
||||
|
||||
namespace Whoops\Exception;
|
||||
use Whoops\Exception\Frame;
|
||||
use Whoops\TestCase;
|
||||
use Mockery as m;
|
||||
|
||||
class FrameTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
private function getFrameData()
|
||||
{
|
||||
return array(
|
||||
'file' => __DIR__ . '/../../fixtures/frame.lines-test.php',
|
||||
'line' => 0,
|
||||
'function' => 'test',
|
||||
'class' => 'MyClass',
|
||||
'args' => array(true, 'hello')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* @return Whoops\Exception\Frame
|
||||
*/
|
||||
private function getFrameInstance($data = null)
|
||||
{
|
||||
if($data === null) {
|
||||
$data = $this->getFrameData();
|
||||
}
|
||||
|
||||
return new Frame($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getFile
|
||||
*/
|
||||
public function testGetFile()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getFile(), $data['file']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getLine
|
||||
*/
|
||||
public function testGetLine()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getLine(), $data['line']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getClass
|
||||
*/
|
||||
public function testGetClass()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getClass(), $data['class']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getFunction
|
||||
*/
|
||||
public function testGetFunction()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getFunction(), $data['function']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getArgs
|
||||
*/
|
||||
public function testGetArgs()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getArgs(), $data['args']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getFileContents
|
||||
*/
|
||||
public function testGetFileContents()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$this->assertEquals($frame->getFileContents(), file_get_contents($data['file']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getFileLines
|
||||
*/
|
||||
public function testGetFileLines()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$lines = explode("\n", $frame->getFileContents());
|
||||
$this->assertEquals($frame->getFileLines(), $lines);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::getFileLines
|
||||
*/
|
||||
public function testGetFileLinesRange()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance($data);
|
||||
|
||||
$lines = $frame->getFileLines(0, 3);
|
||||
|
||||
$this->assertEquals($lines[0], '<?php');
|
||||
$this->assertEquals($lines[1], '// Line 2');
|
||||
$this->assertEquals($lines[2], '// Line 3');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::addComment
|
||||
* @covers Whoops\Exception\Frame::getComments
|
||||
*/
|
||||
public function testGetComments()
|
||||
{
|
||||
$frame = $this->getFrameInstance();
|
||||
$testComments = array(
|
||||
'Dang, yo!',
|
||||
'Errthangs broken!',
|
||||
'Dayumm!'
|
||||
);
|
||||
|
||||
$frame->addComment($testComments[0]);
|
||||
$frame->addComment($testComments[1]);
|
||||
$frame->addComment($testComments[2]);
|
||||
|
||||
$comments = $frame->getComments();
|
||||
|
||||
$this->assertCount(3, $comments);
|
||||
|
||||
$this->assertEquals($comments[0]['comment'], $testComments[0]);
|
||||
$this->assertEquals($comments[1]['comment'], $testComments[1]);
|
||||
$this->assertEquals($comments[2]['comment'], $testComments[2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::addComment
|
||||
* @covers Whoops\Exception\Frame::getComments
|
||||
*/
|
||||
public function testGetFilteredComments()
|
||||
{
|
||||
$frame = $this->getFrameInstance();
|
||||
$testComments = array(
|
||||
array('Dang, yo!', 'test'),
|
||||
array('Errthangs broken!', 'test'),
|
||||
'Dayumm!'
|
||||
);
|
||||
|
||||
$frame->addComment($testComments[0][0], $testComments[0][1]);
|
||||
$frame->addComment($testComments[1][0], $testComments[1][1]);
|
||||
$frame->addComment($testComments[2][0], $testComments[2][1]);
|
||||
|
||||
$comments = $frame->getComments('test');
|
||||
|
||||
$this->assertCount(2, $comments);
|
||||
$this->assertEquals($comments[0]['comment'], $testComments[0][0]);
|
||||
$this->assertEquals($comments[1]['comment'], $testComments[1][0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Frame::serialize
|
||||
* @covers Whoops\Exception\Frame::unserialize
|
||||
*/
|
||||
public function testFrameIsSerializable()
|
||||
{
|
||||
$data = $this->getFrameData();
|
||||
$frame = $this->getFrameInstance();
|
||||
$commentText = "Gee I hope this works";
|
||||
$commentContext = "test";
|
||||
|
||||
$frame->addComment($commentText, $commentContext);
|
||||
|
||||
$serializedFrame = serialize($frame);
|
||||
$newFrame = unserialize($serializedFrame);
|
||||
|
||||
$this->assertInstanceOf('Whoops\\Exception\\Frame', $newFrame);
|
||||
$this->assertEquals($newFrame->getFile(), $data['file']);
|
||||
$this->assertEquals($newFrame->getLine(), $data['line']);
|
||||
|
||||
$comments = $newFrame->getComments();
|
||||
$this->assertCount(1, $comments);
|
||||
$this->assertEquals($comments[0]["comment"], $commentText);
|
||||
$this->assertEquals($comments[0]["context"], $commentContext);
|
||||
}
|
||||
}
|
67
vendor/filp/whoops/tests/Whoops/Exception/InspectorTest.php
vendored
Normal file
67
vendor/filp/whoops/tests/Whoops/Exception/InspectorTest.php
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
/**
|
||||
* Whoops - php errors for cool kids
|
||||
* @author Filipe Dobreira <http://github.com/filp>
|
||||
*/
|
||||
|
||||
namespace Whoops\Exception;
|
||||
use Whoops\Exception\Inspector;
|
||||
use Whoops\TestCase;
|
||||
use RuntimeException;
|
||||
use Exception;
|
||||
use Mockery as m;
|
||||
|
||||
class InspectorTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @param string $message
|
||||
* @return Exception
|
||||
*/
|
||||
protected function getException($message = null)
|
||||
{
|
||||
return m::mock('Exception', array($message));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Exception $exception|null
|
||||
* @return Whoops\Exception\Inspector
|
||||
*/
|
||||
protected function getInspectorInstance(Exception $exception = null)
|
||||
{
|
||||
return new Inspector($exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Inspector::getExceptionName
|
||||
*/
|
||||
public function testReturnsCorrectExceptionName()
|
||||
{
|
||||
$exception = $this->getException();
|
||||
$inspector = $this->getInspectorInstance($exception);
|
||||
|
||||
$this->assertEquals(get_class($exception), $inspector->getExceptionName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Inspector::__construct
|
||||
* @covers Whoops\Exception\Inspector::getException
|
||||
*/
|
||||
public function testExceptionIsStoredAndReturned()
|
||||
{
|
||||
$exception = $this->getException();
|
||||
$inspector = $this->getInspectorInstance($exception);
|
||||
|
||||
$this->assertSame($exception, $inspector->getException());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Whoops\Exception\Inspector::getFrames
|
||||
*/
|
||||
public function testGetFramesReturnsCollection()
|
||||
{
|
||||
$exception = $this->getException();
|
||||
$inspector = $this->getInspectorInstance($exception);
|
||||
|
||||
$this->assertInstanceOf('Whoops\\Exception\\FrameCollection', $inspector->getFrames());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user