function invoke($method) { ob_start(); parent::invoke($method); $output = ob_get_contents(); ob_end_clean(); $sock = new SimpleSocket("127.0.0.1", $this->_port, 5); $sock->write($output); $sock->close(); echo $sock->getError(); }
function testSocket() { $socket = new SimpleSocket("www.lastcraft.com", 80); $this->assertFalse($socket->isError(), "Error [" . $socket->getError() . "]"); $this->assertTrue($socket->isOpen()); $this->assertTrue($socket->write("GET www.lastcraft.com/test/network_confirm.php HTTP/1.0\r\n")); $socket->write("Host: localhost\r\n"); $socket->write("Connection: close\r\n\r\n"); $this->assertEqual($socket->read(8), "HTTP/1.1"); $socket->close(); $this->assertEqual($socket->read(8), ""); }
public function testRecordOfSentCharacters() { $socket = new SimpleSocket('www.lastcraft.com', 80, 15); $this->assertTrue($socket->write("GET /test/network_confirm.php HTTP/1.0\r\n")); $socket->write("Host: www.lastcraft.com\r\n"); $socket->write("Connection: close\r\n\r\n"); $socket->close(); $this->assertEqual($socket->getSent(), "GET /test/network_confirm.php HTTP/1.0\r\n" . "Host: www.lastcraft.com\r\n" . "Connection: close\r\n\r\n"); }
public function testRecordOfSentCharacters() { $socket = new SimpleSocket($this->host, $this->port, 15); $this->assertTrue($socket->write("GET /network_confirm.php HTTP/1.0\r\n")); $socket->write("Host: {$this->host}\r\n"); $socket->write("Connection: close\r\n\r\n"); $socket->close(); $this->assertEqual($socket->getSent(), "GET /network_confirm.php HTTP/1.0\r\n" . "Host: {$this->host}\r\n" . "Connection: close\r\n\r\n"); }
function testRecordOfSentCharacters() { $site = $this->getServerInfo(); $socket = new SimpleSocket($site['host'], $site['port'], 15); $this->assertTrue($socket->write("GET {$site['path']}network_confirm.php HTTP/1.0\r\n")); $socket->write("Host: {$site['host']}\r\n"); $socket->write("Connection: close\r\n\r\n"); $socket->close(); $this->assertEqual($socket->getSent(), "GET {$site['path']}network_confirm.php HTTP/1.0\r\n" . "Host: {$site['host']}\r\n" . "Connection: close\r\n\r\n"); }
/** * Reads the whole of the socket output into a * single string. * @param SimpleSocket $socket Unread socket. * @return string Raw output if successful * else false. * @access private */ function _readAll(&$socket) { $all = ''; while (!$this->_isLastPacket($next = $socket->read())) { $all .= $next; } return $all; }
/** * Actually opens the low level socket. * @param string $host Host to connect to. * @param integer $port Port on host. * @param integer $error_number Recipient of error code. * @param string $error Recipient of error message. * @param integer $timeout Maximum time to wait for connection. * @access protected */ function _openSocket($host, $port, &$error_number, &$error, $timeout) { return parent::_openSocket("tls://{$host}", $port, $error_number, $error, $timeout); }
/** * Reads the whole of the socket output into a * single string. * @param SimpleSocket $socket Unread socket. * @return string Raw output if successful * else false. * @access private */ protected function readAll($socket) { $all = ''; while (!$this->isLastPacket($next = $socket->read())) { $all .= $next; } return $all; }
/** * Dispatches the form data down the socket. * @param SimpleSocket $socket Socket to write to. * @access public */ function writeTo(&$socket) { $socket->write($this->encode()); }
/** * Collects the results form the workers and processes any pending signals * @param int $sec timeout to wait for new results from the workers * @throws WorkerPoolException */ protected function collectWorkerResults($sec = 0) { // dispatch signals pcntl_signal_dispatch(); if (isset($this->workerProcesses) === FALSE) { throw new WorkerPoolException('There is no list of worker processes. Maybe you destroyed the worker pool?', 1401179881); } $result = SimpleSocket::select($this->workerProcesses->getSockets(), array(), array(), $sec); foreach ($result['read'] as $socket) { /** @var $socket SimpleSocket */ $processId = $socket->annotation['pid']; $result = $socket->receive(); $possibleArrayKeys = array('data', 'poolException', 'workerException'); if (is_array($result) && count($resultTypes = array_intersect(array_keys($result), $possibleArrayKeys)) === 1) { // If the result has the expected format, free the worker and store the result. // Otherwise, the worker may be abnormally terminated (fatal error, exit(), ...) and will // fall in the reapers arms. $this->workerProcesses->registerFreeProcessId($processId); $result['pid'] = $processId; $resultType = reset($resultTypes); // Do not store NULL if ($resultType !== 'data' || $result['data'] !== NULL) { array_push($this->results, $result); } } } // dispatch signals pcntl_signal_dispatch(); }
/** * Fetches the content and parses the headers. * @param $socket Test override. * @return Either false or a HttpResponse. * @access public */ function fetch($socket = false) { if (!is_object($socket)) { $socket = new SimpleSocket($this->_url->getHost()); } if ($socket->isError()) { return false; } $socket->write("GET " . $this->_url->getPath() . $this->_url->getEncodedRequest() . " HTTP/1.0\r\n"); $socket->write("Host: " . $this->_url->getHost() . "\r\n"); foreach ($this->_user_headers as $header_line) { $socket->write($header_line . "\r\n"); } if (count($this->_cookies) > 0) { $socket->write("Cookie: " . $this->_marshallCookies($this->_cookies) . "\r\n"); } $socket->write("Connection: close\r\n"); $socket->write("\r\n"); return $this->_createResponse($socket); }
/** * Reads the whole of the socket output into a * single string. * @param SimpleSocket $socket Unread socket. * @return string Raw output if successful * else false. * @access private */ function _readAll(&$socket) { $all = ""; while ($next = $socket->read()) { $all .= $next; } return $all; }
function skip() { $socket = new SimpleSocket($this->host, $this->port, 5, 8); parent::skipIf(!$socket->isOpen(), sprintf('The LiveHttpTestCase requires that a webserver runs at %s:%s', $this->host, $this->port)); }
/** * Runs the test methods in the test case, or not if the * scorer blocks it. * @param SimpleTest $test_case Test case to run test on. * @param string $method Name of test method. * @access public */ function run() { $methods = get_class_methods(get_class($this->_test_case)); $invoker =& $this->_test_case->createInvoker(); foreach ($methods as $method) { if (!$this->_isTest($method)) { continue; } if ($this->_isConstructor($method)) { continue; } ob_start(); echo $this->_start; $this->_scorer->paintMethodStart($method); if ($this->_scorer->shouldInvoke($this->_test_case->getLabel(), $method)) { $invoker->invoke($method); } $this->_scorer->paintMethodEnd($method); echo $this->_end; $output = ob_get_contents(); ob_end_clean(); $sock = new SimpleSocket("127.0.0.1", $this->_port, 5); $sock->write($output); $sock->close(); echo $sock->getError(); } }