PHP Classes

File: web/SSO/vendor/openid/php-openid/Tests/Auth/Yadis/DiscoverData.php

Recommend this page to a friend!
  Classes of william amed   Raptor 2   web/SSO/vendor/openid/php-openid/Tests/Auth/Yadis/DiscoverData.php   Download  
File: web/SSO/vendor/openid/php-openid/Tests/Auth/Yadis/DiscoverData.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Raptor 2
Framework that takes routes from annotations
Author: By
Last change:
Date: 8 years ago
Size: 4,807 bytes
 

Contents

Class file image Download
<?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);
}