annotate new/php/get_tests.php @ 22:1f375b7d75fd tip

updated warning for breaks during test
author Giulio Moro <giuliomoro@yahoo.it>
date Fri, 13 May 2016 19:01:08 +0100
parents 853caf8cd74b
children
rev   line source
giuliomoro@15 1 <?php
giuliomoro@15 2 /*
giuliomoro@15 3 Get Tests
giuliomoro@15 4
giuliomoro@15 5 This script returns the XML test names available, plus the number of tests
giuliomoro@15 6 */
giuliomoro@15 7
giuliomoro@15 8 include "rel2abs.php";
giuliomoro@15 9
giuliomoro@15 10 // XML Saves location - assumes it will be saves/
giuliomoro@15 11 $data = array();
giuliomoro@15 12 $saves = glob("../saves/*.xml");
giuliomoro@15 13 if (is_array($saves))
giuliomoro@15 14 {
giuliomoro@15 15 foreach($saves as $filename) {
giuliomoro@15 16 $xml_string = file_get_contents($filename, FILE_TEXT);
giuliomoro@15 17 $xml_object = simplexml_load_string($xml_string);
giuliomoro@15 18 if ($xml_object) {
giuliomoro@15 19 $filename = rel2abs($filename,"http://".$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
giuliomoro@15 20 $waet = $xml_object->waet[0];
giuliomoro@15 21 $testName = urldecode($waet["url"]);
giuliomoro@15 22 if(array_key_exists($testName,$data)) {
giuliomoro@15 23 // Key exists
giuliomoro@15 24 array_push($data[$testName],$filename);
giuliomoro@15 25 } else {
giuliomoro@15 26 // Key does not exist
giuliomoro@15 27 $data[$testName] = array($filename);
giuliomoro@15 28 }
giuliomoro@15 29 }
giuliomoro@15 30 }
giuliomoro@15 31 }
giuliomoro@15 32
giuliomoro@15 33 // Now read the format response
giuliomoro@15 34 $format = "JSON";
giuliomoro@15 35 if (array_key_exists("format",$_GET)) {
giuliomoro@15 36 $format = $_GET["format"];
giuliomoro@15 37 }
giuliomoro@15 38 switch($format) {
giuliomoro@15 39 case "JSON":
giuliomoro@15 40 // Return JSON
giuliomoro@15 41 $doc_root = '{"tests": [';
giuliomoro@15 42 $keys = array_keys($data);
giuliomoro@15 43 $numTests = count($data);
giuliomoro@15 44 for ($testIndex = 0; $testIndex < $numTests; $testIndex++) {
giuliomoro@15 45 $test_root = '{"testName": "'.$keys[$testIndex].'", "files": [';
giuliomoro@15 46 $numFiles = count($data[$keys[$testIndex]]);
giuliomoro@15 47 for ($countIndex=0; $countIndex < $numFiles; $countIndex++) {
giuliomoro@15 48 $test_root = $test_root.'"'.$data[$keys[$testIndex]][$countIndex].'"';
giuliomoro@15 49 if ($countIndex == $numFiles-1) {
giuliomoro@15 50 $test_root = $test_root.']}';
giuliomoro@15 51 } else {
giuliomoro@15 52 $test_root = $test_root.',';
giuliomoro@15 53 }
giuliomoro@15 54 }
giuliomoro@15 55 $doc_root = $doc_root.$test_root;
giuliomoro@15 56 if ($testIndex == $numTests-1) {
giuliomoro@15 57 $doc_root = $doc_root.']}';
giuliomoro@15 58 } else {
giuliomoro@15 59 $doc_root = $doc_root.',';
giuliomoro@15 60 }
giuliomoro@15 61 }
giuliomoro@15 62 echo $doc_root;
giuliomoro@15 63 break;
giuliomoro@15 64 default:
giuliomoro@15 65 echo '{"error": "format can only be JSON"}';
giuliomoro@15 66 }
giuliomoro@15 67
giuliomoro@15 68 ?>