/** * Tests RestRequestItem->createRequestItemWithRequest() */ public function testCreateRequestItemWithRequest() { $url = '/people/@viewer/@self?fields=age,name,gender,profileUrl,thumbnailUrl,' . 'status,id&startIndex=0&count=40&orderBy=name&filterBy=all&networkDistance=1'; $request = array(); $request['url'] = $url; $request['method'] = 'GET'; $request['postData'] = array(); $request['postData']['data'] = 'DataTest'; $this->RestRequestItem->createRequestItemWithRequest($request, $this->getToken()); //Without the parseTemplate $this->assertEquals($url, $this->RestRequestItem->getUrl()); $this->assertEquals('0', $this->RestRequestItem->getAppId()); $this->assertEquals(false, $this->RestRequestItem->getUser()); $this->assertEquals(false, $this->RestRequestItem->getGroup()); $this->assertEquals('0', $this->RestRequestItem->getStartIndex()); $this->assertEquals('20', $this->RestRequestItem->getCount()); $this->assertEquals(PeopleOptions::$sortOrder, $this->RestRequestItem->getOrderBy()); $this->assertEquals(PeopleOptions::$filterType, $this->RestRequestItem->getFilterBy()); $this->assertEquals(false, $this->RestRequestItem->getNetworkDistance()); }
/** * Tests MessagesHandler->handlePut() */ public function testHandlePut() { $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1'); //Create message $request = array(); $request['url'] = '/messages/@viewer/outbox/1'; $request['postData'] = 'message 1'; $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $response = $this->MessagesHandler->handlePut($requestItem); $this->assertEquals(NOT_IMPLEMENTED, $response->getError()); $this->assertEquals("Not implemented", $response->getErrorMessage()); }
/** * Tests PeopleHandler->handleGet() */ public function testHandleGet() { $request = array(); $request['url'] = '/people/@viewer/@self'; $request['method'] = 'GET'; $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1'); $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $response = $this->PeopleHandler->handleGet($requestItem); $person = $response->getResponse(); $this->assertEquals('john.doe', $person['id']); $this->assertEquals('MALE', $person['gender']['key']); $this->assertEquals('Male', $person['gender']['displayValue']); $this->assertEquals('Doe', $person['name']['familyName']); $this->assertEquals('John', $person['name']['givenName']); $this->assertEquals('John Doe', $person['name']['unstructured']); }
/** * Tests ActivitiesHandler->handlePut() */ public function testHandlePut() { $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1'); //Create data $request = array(); $request['url'] = '/appdata/@viewer/@self/@app?fields=count'; $request['method'] = 'POST'; $request['postData'] = array(); $request['postData']['count'] = 'TestHandlePut'; $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $this->AppDataHandler->handlePut($requestItem); //Validate generated data $request = array(); $request['url'] = '/appdata/@viewer/@self/@app?networkDistance=&fields=count'; $request['method'] = 'GET'; $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $response = $this->AppDataHandler->handleGet($requestItem); $response = $response->getResponse(); $entry = $response->getEntry(); $this->assertEquals('TestHandlePut', $entry['john.doe']['count']); }
/** * Tests ActivitiesHandler->handlePut() */ public function testHandlePut() { return; $token = BasicSecurityToken::createFromValues('john.doe', 'john.doe', 'app', 'domain', 'appUrl', '1'); //Create activity $request = array(); $request['url'] = '/activities/@viewer/@self/@app?networkDistance='; $request['method'] = 'POST'; $request['postData'] = array(); $request['postData']['id'] = '3'; $request['postData']['appId'] = '1'; $request['postData']['userId'] = 'john.doe'; $request['postData']['title'] = 'TestPost 3'; $request['postData']['body'] = 'TestBody 3'; $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $this->ActivitiesHandler->handlePut($requestItem); //Validate generated activity $request = array(); $request['url'] = '/activities/@viewer/@self/@app'; $request['method'] = 'GET'; $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $response = $this->ActivitiesHandler->handleGet($requestItem); $response = $response->getResponse(); $entry = $response->getEntry(); $this->assertEquals('2', $response->getTotalResults()); //First Entry $this->assertEquals('1', $entry[0]['id']); $this->assertEquals('john.doe', $entry[0]['userId']); $this->assertEquals('yellow', $entry[0]['title']); $this->assertEquals('what a color!', $entry[0]['body']); //Second Entry $this->assertEquals('3', $entry[1]['id']); $this->assertEquals('john.doe', $entry[1]['userId']); $this->assertEquals('TestPost 3', $entry[1]['title']); $this->assertEquals('TestBody 3', $entry[1]['body']); }
private function handleBatchProxyRequest($token) { // Is this is a multipath/mixed post? Check content type: if (isset($GLOBALS['HTTP_RAW_POST_DATA']) && strpos($_SERVER['CONTENT_TYPE'], 'multipart/mixed') !== false && strpos($_SERVER['CONTENT_TYPE'], 'boundary=') !== false) { // Ok looks swell, see what our boundry is.. $boundry = substr($_SERVER['CONTENT_TYPE'], strpos($_SERVER['CONTENT_TYPE'], 'boundary=') + strlen('boundary=')); // Split up requests per boundry $requests = explode($boundry, $GLOBALS['HTTP_RAW_POST_DATA']); $responses = array(); foreach ($requests as $request) { $request = trim($request); if (!empty($request)) { // extractBatchRequest() does the magic parsing of the raw post data to a meaninful request array $request = $this->extractBatchRequest($request); $requestItem = new RestRequestItem(); $requestItem->createRequestItemWithRequest($request, $token); $responses[] = array('request' => $requestItem, 'response' => $this->getResponseItem($requestItem)); } } } else { $this->outputError(new ResponseItem(BAD_REQUEST, "Invalid multipart/mixed request")); } return $responses; }