Source for file GntpMock.php
Documentation is available at GntpMock.php
* Copyright (c) 2009-2013, Laurent Laville <pear@laurent-laville.org>
* Bertrand Mansion <bmansion@mamasam.com>
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the authors nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* @author Laurent Laville <pear@laurent-laville.org>
* @author Bertrand Mansion <bmansion@mamasam.com>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @version SVN: $Id: GntpMock.php 329265 2013-01-22 17:51:31Z farell $
* @link http://growl.laurent-laville.org/
* @link http://pear.php.net/package/Net_Growl
* @since File available since Release 2.1.0
* Mock adapter intended for testing
* Can be used to test applications depending on Net_Growl package without
* actually performing any GNTP requests. This adapter will return responses
* previously added via addResponse()
* $mock = Net_Growl::singleton($appName, $notifications, $password, $options);
* "GNTP/1.0 -OK NONE\r\n" .
* // This will return the response set above
* $response = $mock->register();
* @author Laurent Laville <pear@laurent-laville.org>
* @license http://www.opensource.org/licenses/bsd-license.php BSD
* @version Release: 2.7.0
* @link http://growl.laurent-laville.org/
* @link http://pear.php.net/package/Net_Growl
* @since Class available since Release 2.1.0
* A queue of responses to be returned by sendRequest()
* @param mixed &$application Can be either a Net_Growl_Application object
* or the application name string
* @param array $notifications List of notification types
* @param string $password (optional) Password for Growl
* @param array $options (optional) List of options : 'host', 'port',
* 'protocol', 'timeout' for Growl socket server.
* 'passwordHashAlgorithm', 'encryptionAlgorithm'
* to secure communications.
* 'debug' to know what data are sent and received.
protected function __construct(&$application, $notifications = array (),
$password = '', $options = array ()
parent ::__construct($application, $notifications, $password, $options);
* Sends the REGISTER message type
* @return Net_Growl_Response
* @throws Net_Growl_Exception if remote server communication failure
if ($response->getStatus () == 'OK'
&& $response->getResponseAction () == 'REGISTER'
* Sends the NOTIFY message type
* @param string $name Notification name
* @param string $title Notification title
* @param string $description Notification description
* @param string $options Notification options
* @return Net_Growl_Response
* @throws Net_Growl_Exception if remote server communication failure
public function sendNotify($name, $title, $description, $options)
if ($response->getStatus () == 'OK'
&& $response->getResponseAction () == 'NOTIFY'
* Returns the next response from the queue built by addResponse()
* If the queue is empty it will return default empty response with status 400,
* if an Exception object was added to the queue it will be thrown.
* @param string $method NOT USED
* @param mixed $data NOT USED
* @param bool $callback NOT USED
* @return Net_Growl_Response
protected function sendRequest($method, $data, $callback = false )
$this->debug($response->__toString ());
$message = $response->getMessage ();
$code = $response->getCode ();
throw new $class($message, $code);
$this->debug('Bad Request', 'error');
return self ::createResponseFromString ("Bad Request\r\n");
* Adds response to the queue
* @param mixed $response Either a string, a pointer to an open file,
* an instance of Net_Growl_Exception or Exception
* @throws Net_Growl_Exception
&& !$response instanceof Exception
* Creates a new Net_Growl_Response object from a string
* @param string $str Expected Growl Response
* @return Net_Growl_Response
$response->appendBody ($parts[1 ]);
* Creates a new Net_Growl_Response object from a file
* @param resource $fp File pointer returned by fopen()
* @return Net_Growl_Response
$response->appendBody (fread($fp, 8192 ));
Documentation generated on Tue, 29 Jan 2013 18:30:05 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.
|