public function __construct($result_file, $read_only_result_objects = false) { $this->save_identifier = $result_file; $this->extra_attributes = array(); $this->systems = array(); $this->result_objects = array(); if ($result_file == null) { return; } else { if (is_file($result_file)) { $this->file_location = $result_file; $result_file = file_get_contents($result_file); } else { if (!isset($result_file[1024]) && defined('PTS_SAVE_RESULTS_PATH') && is_file(PTS_SAVE_RESULTS_PATH . $result_file . '/composite.xml')) { $this->file_location = PTS_SAVE_RESULTS_PATH . $result_file . '/composite.xml'; $result_file = file_get_contents($this->file_location); } } } $xml = simplexml_load_string($result_file, 'SimpleXMLElement', LIBXML_COMPACT | LIBXML_PARSEHUGE); if (isset($xml->Generated)) { $this->title = self::clean_input($xml->Generated->Title); $this->description = self::clean_input($xml->Generated->Description); $this->notes = self::clean_input($xml->Generated->Notes); $this->internal_tags = self::clean_input($xml->Generated->InternalTags); $this->reference_id = self::clean_input($xml->Generated->ReferenceID); $this->preset_environment_variables = self::clean_input($xml->Generated->PreSetEnvironmentVariables); } if (isset($xml->System)) { foreach ($xml->System as $s) { $system = new pts_result_file_system(self::clean_input($s->Identifier->__toString()), self::clean_input($s->Hardware->__toString()), self::clean_input($s->Software->__toString()), json_decode(self::clean_input($s->JSON), true), self::clean_input($s->User->__toString()), self::clean_input($s->Notes->__toString()), self::clean_input($s->TimeStamp->__toString()), self::clean_input($s->ClientVersion->__toString())); array_push($this->systems, $system); } } if (isset($xml->Result)) { foreach ($xml->Result as $result) { $test_profile = new pts_test_profile($result->Identifier != null ? $result->Identifier->__toString() : null, null, !$read_only_result_objects); $test_profile->set_test_title($result->Title->__toString()); $test_profile->set_version($result->AppVersion->__toString()); $test_profile->set_result_scale($result->Scale->__toString()); $test_profile->set_result_proportion($result->Proportion->__toString()); $test_profile->set_display_format($result->DisplayFormat->__toString()); $test_result = new pts_test_result($test_profile); $test_result->set_used_arguments_description($result->Description->__toString()); $test_result->set_used_arguments($result->Arguments->__toString()); $result_buffer = new pts_test_result_buffer(); foreach ($result->Data->Entry as $entry) { $result_buffer->add_test_result($entry->Identifier->__toString(), $entry->Value->__toString(), $entry->RawString->__toString(), isset($entry->JSON) ? $entry->JSON->__toString() : null); } $test_result->set_test_result_buffer($result_buffer); $this->result_objects[$test_result->get_comparison_hash(true, false)] = $test_result; } } unset($xml); }
public function get_result_object(&$result) { $test_profile = new pts_test_profile($result->Identifier != null ? $result->Identifier->__toString() : null); $test_profile->set_test_title($result->Title->__toString()); $test_profile->set_version($result->AppVersion->__toString()); $test_profile->set_result_scale($result->Scale->__toString()); $test_profile->set_result_proportion($result->Proportion->__toString()); $test_profile->set_display_format($result->DisplayFormat->__toString()); $test_result = new pts_test_result($test_profile); $test_result->set_used_arguments_description($result->Description->__toString()); $test_result->set_used_arguments($result->Arguments->__toString()); $result_buffer = new pts_test_result_buffer(); foreach ($result->Data->Entry as $entry) { $result_buffer->add_test_result($entry->Identifier->__toString(), $entry->Value->__toString(), $entry->RawString->__toString(), isset($entry->JSON) ? $entry->JSON->__toString() : null); } $test_result->set_test_result_buffer($result_buffer); return $test_result; }