<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Round 2 Interop Client Tests</title>
</head>

<body>
<a href="index.php">Back to Interop Index</a><br>
<p>&nbsp;</p>
<?php
require_once 'client_round2_interop.php';

$iop = new Interop_Client();

function endpointList($test,$sel_endpoint)
{
    global $iop;
    $iop->getEndpoints($test);
    echo "<select name='endpoint'>\n";
    echo "<option value=''>-- All Endpoints --</option>\n";
    foreach ($iop->endpoints as $epname => $epinfo) {
        $selected = '';
        if ($sel_endpoint == $epname) $selected = ' SELECTED';
        echo "<option value='$epname'$selected>$epname</option>\n";
    }
    echo "</select>\n";
}
function methodList($test,$sel_method)
{
    global $iop;
    global $soap_tests;

    echo "<select name='method'>\n";
    echo "<option value='ALL'>-- Run All Methods --</option>\n";
		$prev_method = "";
    foreach ($soap_tests[$test] as $x) {
        $method = $x->test_name;
        if ($method != $prev_method) {
        	$prev_method = $method;
          $selected = '';
          if ($sel_method == $method) $selected = ' SELECTED';
          echo "<option value='$method'$selected>$method</option>\n";
        }
    }
    echo "</select>\n";
}

function endpointTestForm($test, $endpoint, $method, $paramType, $useWSDL)
{
    global $PHP_SELF;
    if (!$test) $test = 'base';
    echo "Round 2 '$test' Selected<br>\n";
    echo "Select endpoint and method to run:<br>\n";
    echo "<form action='$PHP_SELF' method='post'>\n";
    echo "<input type='hidden' name='test' value='$test'>\n";
    endpointList($test, $endpoint);
    methodList($test, $method);
    echo "<select name='paramType'>";
//    echo "<option value='all'>-- All --</option>";
    echo "<option value='soapval'".($paramType=='soapval'?' selected':'').">soap value</option>";
    echo "<option value='php'".($paramType=='php'?' selected':'').">php internal type</option></select>\n";
    echo "<select name='useWSDL'>";
//    echo "<option value='all'>-- All --</option>";
    echo "<option value='0'>go Direct</option>";
    echo "<option value='1'".($useWSDL?' selected':'').">use WSDL</option></select>\n";
    echo "<input type='submit' value='Go'>\n";
    echo "</form><br>\n";
}

function testSelectForm($selected_test = NULL)
{
    global $iop, $PHP_SELF;
    echo "Select a Round 2 test case to run:<br>\n";
    echo "<form action='$PHP_SELF' method='post'>\n";
    echo "<select name='test'>\n";
    foreach ($iop->tests as $test) {
        $selected = '';
        if ($selected_test == $test) $selected = ' SELECTED';
        echo "<option value='$test'$selected>$test</option>\n";
    }
    echo "</select>\n";
    echo "<input type='submit' value='Go'>\n";
    echo "</form><br>\n";
}

testSelectForm($_POST['test']);
endpointTestForm($_POST['test'],$_POST['endpoint'],$_POST['method'],$_POST['paramType'],$_POST['useWSDL']);

if ($_POST['test'] && array_key_exists('endpoint', $_POST) && array_key_exists('method', $_POST)) {
    // here we execute the orders
    echo "<h2>Calling {$_POST['method']} at {$_POST['endpoint']}</h2>\n";
    echo "NOTE: wire's are slightly modified to display better in web browsers.<br>\n";

    $iop->currentTest = $_POST['test'];      // see $tests above
    $iop->paramType = $_POST['paramType'];     // 'php' or 'soapval'
    $iop->useWSDL = $_POST['useWSDL'];           // 1= do wsdl tests
    $iop->numServers = 0;        // 0 = all
    $iop->specificEndpoint = $_POST['endpoint']; // test only this endpoint
    $iop->testMethod = $_POST['method']=='ALL'?'':$_POST['method'];       // test only this method
    $iop->skipEndpointList = array(); // endpoints to skip
    $iop->nosave = 0; // 1= disable saving results to database
    // debug output
    $iop->show = 0;
    $iop->debug = 0;
    $iop->showFaults = 0; // used in result table output
    echo '<pre>';
    $iop->doTest();  // run a single set of tests using above options
    echo '</pre>';
}
?>
</body>
</html>
