', $example_xrds), array('YADIS_HEADER', 'X-XRDS-Location'), array('NAME', $test_name)); foreach ($mapping as $pair) { list($k, $v) = $pair; $template = str_replace($k, $v, $template); } return $template; } function generateSample($test_name, $base_url, $_example_xrds = null, $filename = null) { global $example_xrds, $default_test_file; if ($_example_xrds === null) { $_example_xrds = $example_xrds; } if ($filename === null) { $filename = $default_test_file; } $template = getData($filename, $test_name); if ($template === null) { return null; } return fillTemplate($test_name, $template, $base_url, $_example_xrds); } function generateResult($base_url, $input_name, $id_name, $result_name, $success) { $input_url = $base_url . $input_name; // urlparse.urljoin(base_url, input_name) // If the name is null then we expect the protocol to fail, which // we represent by null if ($id_name === null) { // assert result_name is null return array($input_url, null); // DiscoveryFailure } $result = generateSample($result_name, $base_url); list($headers, $content) = explode("\n\n", $result, 2); $header_lines = explode("\n", $headers); $ctype = null; foreach ($header_lines as $header_line) { if (strpos($header_line, 'Content-Type:') === 0) { list($temp, $ctype) = explode(":", $header_line, 2); $ctype = trim($ctype); break; } } $id_url = $base_url . $id_name; $result = new Auth_Yadis_Yadis(); $result->uri = $id_url; if ($success) { $result->xrds_uri = $base_url . $result_name; } else { $result->xrds_uri = null; } $result->content_type = $ctype; $result->body = $content; return array($input_url, $result); }