本文整理汇总了PHP中Zend\Http\PhpEnvironment\Request::fromString方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::fromString方法的具体用法?PHP Request::fromString怎么用?PHP Request::fromString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Http\PhpEnvironment\Request
的用法示例。
在下文中一共展示了Request::fromString方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testServerPostParameter
/**
* test with post parameter requestType set to JSON
*/
public function testServerPostParameter()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString("POST /index.php?requestType=JSON HTTP/1.1\r\n" . "Host: localhost\r\n" . "User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7");
$request->setPost(new Zend\Stdlib\Parameters(array('requestType' => 'JSON')));
$server = Tinebase_Core::getDispatchServer($request);
$this->assertInstanceOf('Tinebase_Server_Json', $server);
}
示例2: testGetDispatchServerWebDAV
public function testGetDispatchServerWebDAV()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString("GET /index.php?frontend=webdav HTTP/1.1\r\n" . "User-Agent: SAMSUNG-GT-I9300/101.403");
$request->setQuery(new \Zend\Stdlib\Parameters(array('frontend' => 'webdav')));
$server = Tinebase_Core::getDispatchServer($request);
$this->assertInstanceOf('Tinebase_Server_WebDAV', $server);
}
示例3: testServer
/**
* @group ServerTests
*/
public function testServer()
{
$this->markTestSkipped('FIXME unpack(): Type C: not enough input, need 1, have 0');
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /Microsoft-Server-ActiveSync?User=abc1234&DeviceId=Appl7R743U8YWH9&DeviceType=iPhone&Cmd=FolderSync HTTP/1.1
Host: localhost
MS-ASProtocolVersion: 14.1
User-Agent: Apple-iPhone/705.18
EOS
);
$credentials = $this->getTestCredentials();
$request->getServer()->set('PHP_AUTH_USER', $credentials['username']);
$request->getServer()->set('PHP_AUTH_PW', $credentials['password']);
$request->getServer()->set('REMOTE_ADDR', 'localhost');
$_SERVER['REQUEST_METHOD'] = $request->getMethod();
$_SERVER['HTTP_MS_ASPROTOCOLVERSION'] = '14.1';
$_SERVER['HTTP_USER_AGENT'] = 'Apple-iPhone/705.18';
$body = new DOMDocument();
$body->loadXML('<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE AirSync PUBLIC "-//AIRSYNC//DTD AirSync//EN" "http://www.microsoft.com/">
<FolderSync xmlns="uri:FolderHierarchy"><SyncKey>0</SyncKey></FolderSync>');
ob_start();
$server = new ActiveSync_Server_Http();
$server->handle($request, $body);
$result = ob_get_contents();
ob_end_clean();
//TODO needs to be improved (use XML document here)
$this->assertContains('AwFqAAAHVkwDMQABUgMxAAFOVwM', base64_encode($result), 0, 30);
}
示例4: testServerGetParameter
/**
* test general functionality of Tinebase_Server_Plugin_WebDAV
*/
public function testServerGetParameter()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString("POST /index.php?frontend=webdav HTTP/1.1\r\n" . "Host: localhost\r\n" . "Depth: 0\r\n" . "User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7");
$request->setQuery(new Zend\Stdlib\Parameters(array('frontend' => 'webdav')));
$server = Tinebase_Core::getDispatchServer($request);
$this->assertInstanceOf('Tinebase_Server_WebDAV', $server);
}
示例5: testServer
/**
* test general functionality of Tinebase_Server_Plugin_Http
*/
public function testServer()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /index.php?frontend=webdav HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7
EOS
);
$server = Tinebase_Server_Plugin_Http::getServer($request);
$this->assertInstanceOf('Tinebase_Server_Http', $server);
}
示例6: testServerUserAgentAsterisk
/**
* test general functionality of Voipmanager_Server_Plugin
*/
public function testServerUserAgentAsterisk()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /index.php?frontend=activesync HTTP/1.1
Host: localhost
User-Agent: asterisk-libcurl-agent/1.0
EOS
);
$server = Tinebase_Core::getDispatchServer($request);
$this->assertInstanceOf('Voipmanager_Server_Asterisk', $server);
}
示例7: testServerGetParameter
/**
* test general functionality of ActiveSync_Server_Plugin
*/
public function testServerGetParameter()
{
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /index.php?frontend=activesync HTTP/1.1
Host: localhost
Depth: 0
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7
EOS
);
$request->setQuery(new Zend\Stdlib\Parameters(array('frontend' => 'activesync')));
$server = Tinebase_Core::getDispatchServer($request);
$this->assertInstanceOf('ActiveSync_Server_Http', $server);
}
示例8: testHandleRequestForDynamicAPI
/**
* @group ServerTests
*
* @see 0011760: create smd from model definition
*/
public function testHandleRequestForDynamicAPI()
{
// handle jsonkey check
$jsonkey = 'myawsomejsonkey';
$_SERVER['HTTP_X_TINE20_JSONKEY'] = $jsonkey;
$coreSession = Tinebase_Session::getSessionNamespace();
$coreSession->jsonKey = $jsonkey;
$server = new Tinebase_Server_Json();
$request = \Zend\Http\PhpEnvironment\Request::fromString('POST /index.php?requestType=JSON HTTP/1.1' . "\r\n" . 'Host: localhost' . "\r\n" . 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7' . "\r\n" . 'Content-Type: application/json' . "\r\n" . 'X-Tine20-Transactionid: 18da265bc0eb66a36081bfd42689c1675ed68bab' . "\r\n" . 'X-Requested-With: XMLHttpRequest' . "\r\n" . 'Accept: */*' . "\r\n" . 'Referer: http://tine20.vagrant/' . "\r\n" . 'Accept-Encoding: gzip, deflate' . "\r\n" . 'Accept-Language: en-US,en;q=0.8,de-DE;q=0.6,de;q=0.4' . "\r\n" . "\r\n" . '{"jsonrpc":"2.0","method":"Inventory.searchInventoryItems","params":{"filter":[], "paging":{}},"id":6}' . "\r\n");
ob_start();
$server->handle($request);
$out = ob_get_clean();
//echo $out;
$this->assertTrue(!empty($out), 'request should not be empty');
$this->assertNotContains('Not Authorised', $out);
$this->assertNotContains('Method not found', $out);
$this->assertNotContains('No Application Controller found', $out);
$this->assertNotContains('"error"', $out);
$this->assertNotContains('PHP Fatal error', $out);
$this->assertContains('"result"', $out);
}
示例9: testAccountBlocking
/**
* @group ServerTests
*/
public function testAccountBlocking()
{
Zend_Session::$_unitTestEnabled = true;
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /index.php HTTP/1.1
Content-Type: application/json
Content-Length: 122
Host: 192.168.122.158
Connection: keep-alive
Origin: http://192.168.1.158
X-Tine20-Request-Type: JSON
X-Tine20-Jsonkey: undefined
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36
X-Tine20-Transactionid: 9c7129898e9f8ab7e4621fddf7077a1eaa425aac
X-Requested-With: XMLHttpRequest
Accept: */*
Referer: http://192.168.122.158/tine20dev/
Accept-Encoding: gzip,deflate
Accept-Language: de-DE,de;q=0.8,en-GB;q=0.6,en;q=0.4
EOS
);
$credentials = $this->getTestCredentials();
$maxLoginFailures = Tinebase_Config::getInstance()->get(Tinebase_Config::MAX_LOGIN_FAILURES, 5);
for ($i = 0; $i <= $maxLoginFailures; $i++) {
$result = Tinebase_Controller::getInstance()->login($credentials['username'], 'foobar', $request);
$this->assertFalse($result);
}
// account must be blocked now
$result = Tinebase_Controller::getInstance()->login($credentials['username'], $credentials['password'], $request);
$this->assertFalse($result);
}
示例10: testAccountBlocking
/**
* @group ServerTests
*
* @see 0011440: rework login failure handling
*/
public function testAccountBlocking()
{
// NOTE: end transaction here as NOW() returns the start of the current transaction in pgsql
// and is used in user status statement (think about using statement_timestamp() instead of NOW() with pgsql)
Tinebase_TransactionManager::getInstance()->commitTransaction($this->_transactionId);
$this->_transactionId = null;
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
POST /index.php HTTP/1.1
Content-Type: application/json
Content-Length: 122
Host: 192.168.122.158
Connection: keep-alive
Origin: http://192.168.1.158
X-Tine20-Request-Type: JSON
X-Tine20-Jsonkey: undefined
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36
X-Tine20-Transactionid: 9c7129898e9f8ab7e4621fddf7077a1eaa425aac
X-Requested-With: XMLHttpRequest
Accept: */*
Referer: http://192.168.122.158/tine20dev/
Accept-Encoding: gzip,deflate
Accept-Language: de-DE,de;q=0.8,en-GB;q=0.6,en;q=0.4
EOS
);
$credentials = $this->getTestCredentials();
for ($i = 0; $i <= 3; $i++) {
$result = Tinebase_Controller::getInstance()->login($credentials['username'], 'foobar', $request);
$this->assertFalse($result);
}
$result = Tinebase_Controller::getInstance()->login($credentials['username'], $credentials['password'], $request);
$this->assertFalse($result, 'account must be blocked now');
// wait for some time (2^4 = 16 +1 seconds)
$timeToWait = 17;
if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' Waiting for ' . $timeToWait . ' seconds...');
}
sleep($timeToWait);
$result = Tinebase_Controller::getInstance()->login($credentials['username'], $credentials['password'], $request);
$this->assertTrue($result, 'account should be unblocked now');
}
示例11: testRequestHasHeadersMethod
public function testRequestHasHeadersMethod()
{
$baseRequest = BaseRequest::fromString("GET /index.php HTTP/1.1\r\nAccept: */*\r\n\r\nSome Content");
$request = Request::createFromRequest($baseRequest);
$this->assertEquals('Accept: */*', $request->headers('Accept'));
}
示例12: testPropfindThundebird
/**
* test PROPFIND on calendar
*
* @group ServerTests
*/
public function testPropfindThundebird()
{
$credentials = $this->getTestCredentials();
$account = $this->getAccountByName($credentials['username']);
$this->assertInstanceOf('Tinebase_Model_FullUser', $account);
$containerId = $this->getPersonalContainer($account, 'Calendar_Model_Event')->getFirstRecord()->getId();
$request = \Zend\Http\PhpEnvironment\Request::fromString(<<<EOS
PROPFIND /calendars/{$account->contact_id}/{$containerId}/ HTTP/1.1
Host: localhost
Depth: 1
Content-Type: application/xml; charset="utf-8"
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20120824 Thunderbird/15.0 Lightning/1.7
<?xml version="1.0" encoding="UTF-8"?>
<D:propfind xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/" xmlns:C="urn:ietf:params:xml:ns:caldav"><D:prop><D:resourcetype/><D:owner/><D:current-user-principal/><D:supported-report-set/><C:supported-calendar-component-set/><CS:getctag/></D:prop></D:propfind>
EOS
);
$_SERVER['REQUEST_METHOD'] = $request->getMethod();
$_SERVER['REQUEST_URI'] = $request->getUri()->getPath();
$_SERVER['HTTP_DEPTH'] = '0';
$request->getServer()->set('PHP_AUTH_USER', $credentials['username']);
$request->getServer()->set('PHP_AUTH_PW', $credentials['password']);
$request->getServer()->set('REMOTE_ADDR', 'localhost');
ob_start();
$server = new Tinebase_Server_WebDAV();
$server->handle($request);
$result = ob_get_contents();
ob_end_clean();
$responseDoc = new DOMDocument();
$responseDoc->loadXML($result);
#$responseDoc->formatOutput = true; error_log($responseDoc->saveXML());
$xpath = new DomXPath($responseDoc);
$xpath->registerNamespace('cal', 'urn:ietf:params:xml:ns:caldav');
$xpath->registerNamespace('cs', 'http://calendarserver.org/ns/');
$nodes = $xpath->query('//d:multistatus/d:response/d:propstat/d:prop/d:current-user-principal');
$this->assertEquals(1, $nodes->length, $responseDoc->saveXML());
}