diff options
author | Jordi Boggiano <j.boggiano@seld.be> | 2011-06-29 18:58:26 +0200 |
---|---|---|
committer | Jordi Boggiano <j.boggiano@seld.be> | 2011-06-29 18:58:40 +0200 |
commit | 78a26a3f4f6e51b9bf6a7f328a945e3b8c1b408c (patch) | |
tree | 00f6008e10a0aaf6dd945a8faaf5ea0c0aa56566 | |
parent | c465a5dd02179c98ce1f58c4b002ff31b608eda9 (diff) | |
download | monolog-78a26a3f4f6e51b9bf6a7f328a945e3b8c1b408c.zip monolog-78a26a3f4f6e51b9bf6a7f328a945e3b8c1b408c.tar.gz monolog-78a26a3f4f6e51b9bf6a7f328a945e3b8c1b408c.tar.bz2 |
Tested WebProcessor
-rw-r--r-- | src/Monolog/Processor/WebProcessor.php | 22 | ||||
-rw-r--r-- | tests/Monolog/Processor/WebProcessorTest.php | 39 |
2 files changed, 58 insertions, 3 deletions
diff --git a/src/Monolog/Processor/WebProcessor.php b/src/Monolog/Processor/WebProcessor.php index 24f4404..46b2177 100644 --- a/src/Monolog/Processor/WebProcessor.php +++ b/src/Monolog/Processor/WebProcessor.php @@ -18,6 +18,22 @@ namespace Monolog\Processor; */ class WebProcessor { + protected $serverData; + + /** + * @param mixed $serverData array or object w/ ArrayAccess that provides access to the $_SERVER data + */ + public function __construct($serverData = null) + { + if (null === $serverData) { + $this->serverData =& $_SERVER; + } elseif (is_array($serverData) || $serverData instanceof \ArrayAccess) { + $this->serverData = $serverData; + } else { + throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.'); + } + } + /** * @param array $record * @param HandlerInterface $handler @@ -28,9 +44,9 @@ class WebProcessor $record['extra'] = array_merge( $record['extra'], array( - 'url' => $_SERVER['REQUEST_URI'], - 'ip' => $_SERVER['REMOTE_ADDR'], - 'method' => $_SERVER['REQUEST_METHOD'], + 'url' => $this->serverData['REQUEST_URI'], + 'ip' => $this->serverData['REMOTE_ADDR'], + 'http_method' => $this->serverData['REQUEST_METHOD'], ) ); diff --git a/tests/Monolog/Processor/WebProcessorTest.php b/tests/Monolog/Processor/WebProcessorTest.php new file mode 100644 index 0000000..28a04c9 --- /dev/null +++ b/tests/Monolog/Processor/WebProcessorTest.php @@ -0,0 +1,39 @@ +<?php + +/* + * This file is part of the Monolog package. + * + * (c) Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Monolog\Processor; + +use Monolog\TestCase; + +class WebProcessorTest extends TestCase +{ + public function testProcessor() + { + $server = array( + 'REQUEST_URI' => 'A', + 'REMOTE_ADDR' => 'B', + 'REQUEST_METHOD' => 'C', + ); + $processor = new WebProcessor($server); + $record = $processor($this->getRecord()); + $this->assertEquals($server['REQUEST_URI'], $record['extra']['url']); + $this->assertEquals($server['REMOTE_ADDR'], $record['extra']['ip']); + $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']); + } + + /** + * @expectedException UnexpectedValueException + */ + public function testInvalidData() + { + new WebProcessor(new \stdClass); + } +} |