public function testSetDataTable() { $request = new Request(); $data = new DataTable(); $data->addColumn(new ColumnDescription('textfield', ValueType::STRING)); $data->addColumn(new ColumnDescription('intfield', ValueType::NUMBER)); $response = new Response($request); $response->setDataTable($data); $getRequest = $response->getRequest(); $getDataTable = $response->getDataTable(); $this->assertEquals($request, $getRequest, "Request must match"); $this->assertEquals($data, $getDataTable, "DataTable must match"); }
public function testRequestOutputTypeJsonpAffectsResponse() { $request = new Request(array(Request::DATASOURCE_REQUEST_PARAMETER => RequestParameters::OUTPUT_TYPE_PARAMETER . ':' . OutputType::JSONP)); $response = new Response($request); $response->setDataTable($this->dataTable); $renderer = new JsonRenderer(); $json_p = $renderer->render($response); $prefix = "google.visualization.Query.setResponse("; $suffix = ");"; $this->assertSame($prefix, substr($json_p, 0, strlen($prefix)), "JSONP output must be prefixed with 'callbackFn('"); $this->assertSame($suffix, substr($json_p, -1 * strlen($suffix)), "JSONP output must be suffixed with ');'"); $newDateIndex = strpos($json_p, '"v":new Date('); // JSONP style date $stringDateIndex = strpos($json_p, '"v":"Date('); // JSON style date $this->assertTrue($newDateIndex > 0, "Expect JSONP date format to be present"); $this->assertFalse($stringDateIndex, "Expect JSON date format to NOT be found"); }
/** * @param Response &$response [required] [IN] [OUT] */ protected function executeTrue(Response &$response) { $request = $response->getRequest(); // Verify that the user is granted access to the data if ($this->isRestrictedAccessMode()) { $this->verifyAccessAllowed($request->getOutputType()); } // Populate the data $data =& $this->getDataTable($request); // Apply query, if any $query = Query::constructFromString($request->getQuery()); if (!$query->isEmpty()) { $data =& QueryEngine::execute($query, $data); } $response->setDataTable($data); }