123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- require_once "Auth/Yadis/Yadis.php";
- require_once "Tests/Auth/Yadis/TestUtil.php";
- global $testlist;
- $testlist = array(
- // success, input_name, id_name, result_name
- array(true, "equiv", "equiv", "xrds"),
- array(true, "header", "header", "xrds"),
- array(true, "lowercase_header", "lowercase_header", "xrds"),
- array(true, "xrds", "xrds", "xrds"),
- array(true, "xrds_ctparam", "xrds_ctparam", "xrds_ctparam"),
- array(true, "xrds_ctcase", "xrds_ctcase", "xrds_ctcase"),
- array(false, "xrds_html", "xrds_html", "xrds_html"),
- array(true, "redir_equiv", "equiv", "xrds"),
- array(true, "redir_header", "header", "xrds"),
- array(true, "redir_xrds", "xrds", "xrds"),
- array(false, "redir_xrds_html", "xrds_html", "xrds_html"),
- array(true, "redir_redir_equiv", "equiv", "xrds"),
- array(false, "404_server_response", null, null),
- array(false, "404_with_header", null, null),
- array(false, "404_with_meta", null, null),
- array(false, "201_server_response", null, null),
- array(false, "500_server_response", null, null)
- );
- function getExampleXRDS()
- {
- return Tests_Auth_Yadis_readdata('example-xrds.xml');
- }
- global $example_xrds;
- $example_xrds = getExampleXRDS();
- global $default_test_file;
- $default_test_file = 'test1-discover.txt';
- global $discover_tests;
- $discover_tests = array();
- function readTests($filename)
- {
- $data = Tests_Auth_Yadis_readdata($filename);
- if ($data === null) {
- return null;
- }
- $tests = array();
- foreach (preg_split("/\f\n/", $data) as $case) {
- list($name, $content) = explode("\n", $case, 2);
- $tests[$name] = $content;
- }
- return $tests;
- }
- function getData($filename, $name)
- {
- global $discover_tests;
- if (!array_key_exists($filename, $discover_tests)) {
- $data = readTests($filename);
- if ($data === null) {
- return null;
- }
- $discover_tests[$filename] = $data;
- }
- $file_tests = $discover_tests[$filename];
- if (array_key_exists($name, $file_tests)) {
- return $file_tests[$name];
- } else {
- return null;
- }
- }
- function fillTemplate($test_name, $template, $base_url, $example_xrds)
- {
- $mapping = array(
- array('URL_BASE/', $base_url),
- array('<XRDS Content>', $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);
- }
|