annotate sites/all/modules/sparql/sparql.test @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * Tests for the sparql module.
danielebarchiesi@4 6 *
danielebarchiesi@4 7 */
danielebarchiesi@4 8
danielebarchiesi@4 9 //////////////////////////////////////////////////////////////////////////////
danielebarchiesi@4 10 // SPARQL unit tests (CIA Factbook)
danielebarchiesi@4 11
danielebarchiesi@4 12 class SPARQL_CIAFactbookTestCase extends DrupalWebTestCase {
danielebarchiesi@4 13 const ENDPOINT = 'http://www4.wiwiss.fu-berlin.de/factbook/sparql';
danielebarchiesi@4 14 const COUNTRY = 'http://www4.wiwiss.fu-berlin.de/factbook/ns#Country';
danielebarchiesi@4 15
danielebarchiesi@4 16 public function getInfo() {
danielebarchiesi@4 17 return array(
danielebarchiesi@4 18 'name' => t('CIA Factbook'),
danielebarchiesi@4 19 'description' => t('Executes queries against the CIA Factbook\'s SPARQL endpoint, attempting to parse resultsets in both JSON and XML format.'),
danielebarchiesi@4 20 'group' => t('SPARQL'),
danielebarchiesi@4 21 );
danielebarchiesi@4 22 }
danielebarchiesi@4 23
danielebarchiesi@4 24 function setup() {
danielebarchiesi@4 25 parent::setup('rdf', 'sparql');
danielebarchiesi@4 26 }
danielebarchiesi@4 27
danielebarchiesi@4 28 public function test_json_query() {
danielebarchiesi@4 29 $this->query_classes(t('JSON'), array('format' => 'application/sparql-results+json', 'output' => 'json'));
danielebarchiesi@4 30 }
danielebarchiesi@4 31
danielebarchiesi@4 32 public function test_xml_query() {
danielebarchiesi@4 33 $this->query_classes(t('XML'), array('format' => 'application/sparql-results+xml', 'output' => 'xml'));
danielebarchiesi@4 34 }
danielebarchiesi@4 35
danielebarchiesi@4 36 private function query_classes($format, array $options = array()) {
danielebarchiesi@4 37 $results = $this->query('SELECT DISTINCT ?class WHERE { [] a ?class } ORDER BY ?class', $options);
danielebarchiesi@4 38 $this->assertTrue(empty($this->errors), t('@format: No errors', array('@format' => $format)));
danielebarchiesi@4 39 $this->assertNotNull($results, t('@format: Has results', array('@format' => $format)));
danielebarchiesi@4 40 $this->assertEqual(count($results), 1, t('@format: Has one result', array('@format' => $format)));
danielebarchiesi@4 41 $this->assertTrue(isset($results[0]['class']), t('@format: Contains ?class column', array('@format' => $format)));
danielebarchiesi@4 42 $this->assertEqual((string)$results[0]['class'], self::COUNTRY, t('@format: Correct answer', array('@format' => $format)));
danielebarchiesi@4 43 }
danielebarchiesi@4 44
danielebarchiesi@4 45 private function query($query, array $options = array()) {
danielebarchiesi@4 46 $this->errors = array();
danielebarchiesi@4 47 return sparql_query($query, array_merge(array('endpoint' => self::ENDPOINT), $options), $this->errors);
danielebarchiesi@4 48 }
danielebarchiesi@4 49 }