blob: 3bdf9419132418ba98c588f3daccadaa1f8f6e92 [file] [log] [blame]
<html>
<head>
<link type="text/css" rel="stylesheet" media="all" href="screen.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript" src="forge/util.js"></script>
<script type="text/javascript" src="forge/socket.js"></script>
<script type="text/javascript" src="forge/http.js"></script>
<script type="text/javascript" src="forge/log.js"></script>
<script type="text/javascript">
//<![CDATA[
// logging category
var cat = 'forge.tests.http';
window.forge.socketPool =
{
ready: function()
{
forge.log.debug(cat, 'SocketPool ready.');
}
};
swfobject.embedSWF(
'forge/SocketPool.swf', 'socketPool', '0', '0', '9.0.0',
false, {}, {allowscriptaccess: 'always'}, {});
// local aliases
var net = window.forge.net;
var http = window.forge.http;
var util = window.forge.util;
var client;
function client_init()
{
try
{
var sp = net.createSocketPool({
flashId: 'socketPool',
policyPort: 19945,
msie: false
});
client = http.createClient({
//url: 'http://' + window.location.host,
socketPool: sp,
connections: 10
});
document.getElementById('feedback').innerHTML =
'HTTP client created';
}
catch(ex)
{
forge.log.error(cat, ex);
}
return false;
}
function client_cleanup()
{
var sp = client.socketPool;
client.destroy();
sp.destroy();
document.getElementById('feedback').innerHTML =
'HTTP client cleaned up';
return false;
}
function client_send()
{
var request = http.createRequest({
method: 'GET',
path: '/'
//body: 'echo=foo',
//headers: [{'Content-Type': 'application/x-www-form-urlencoded'}]
});
client.send({
request: request,
connected: function(e)
{
forge.log.debug(cat, 'connected', e);
},
headerReady: function(e)
{
forge.log.debug(cat, 'header ready', e);
},
bodyReady: function(e)
{
forge.log.debug(cat, 'body ready', e);
},
error: function(e)
{
forge.log.error(cat, 'error', e);
}
});
document.getElementById('feedback').innerHTML =
'HTTP request sent';
return false;
}
function client_send_10()
{
for(var i = 0; i < 10; ++i)
{
client_send();
}
return false;
}
function client_stress()
{
for(var i = 0; i < 10; ++i)
{
setTimeout(function()
{
for(var i = 0; i < 10; ++i)
{
client_send();
}
}, 0);
}
return false;
}
function client_cookies()
{
var cookie =
{
name: 'test-cookie',
value: 'test-value',
maxAge: -1,
secure: false,
path: '/'
};
client.setCookie(cookie);
forge.log.debug(cat, 'cookie', client.getCookie('test-cookie'));
}
function client_clear_cookies()
{
client.clearCookies();
}
function request_add_cookies()
{
var cookie1 =
{
name: 'test-cookie1',
value: 'test-value1',
maxAge: -1,
secure: false,
path: '/'
};
var cookie2 =
{
name: 'test-cookie2',
value: 'test-value2',
maxAge: -1,
secure: false,
path: '/'
};
var request = http.createRequest({
method: 'GET',
path: '/'
});
request.addCookie(cookie1);
request.addCookie(cookie2);
forge.log.debug(cat, 'request', request.toString());
}
function response_get_cookies()
{
var response = http.createResponse();
response.appendField('Set-Cookie',
'test-cookie1=test-value1; max-age=0; path=/; secure');
response.appendField('Set-Cookie',
'test-cookie2=test-value2; ' +
'expires=Thu, 21-Aug-2008 23:47:25 GMT; path=/');
var cookies = response.getCookies();
forge.log.debug(cat, 'cookies', cookies);
}
//]]>
</script>
</head>
<body>
<div class="nav"><a href="index.html">Forge Tests</a> / HTTP</div>
<div class="header">
<h1>HTTP Test</h1>
</div>
<div class="content">
<div id="socketPool">
<p>Could not load the flash SocketPool.</p>
</div>
<fieldset class="section">
<ul>
<li>Use the controls below to test the HTTP client.</li>
<li>You currently need a JavaScript console to view the output.</li>
</ul>
</fieldset>
<fieldset class="section">
<legend>Controls</legend>
<button id="init" onclick="javascript:return client_init();">init</button>
<button id="cleanup" onclick="javascript:return client_cleanup();">cleanup</button>
<button id="send" onclick="javascript:return client_send();">send</button>
<button id="send10" onclick="javascript:return client_send_10();">send 10</button>
<button id="stress" onclick="javascript:return client_stress();">stress</button>
<button id="client_cookies" onclick="javascript:return client_cookies();">cookies</button>
<button id="clear_cookies" onclick="javascript:return client_clear_cookies();">clear cookies</button>
<button id="add_cookies" onclick="javascript:return request_add_cookies();">add cookies</button>
<button id="get_cookies" onclick="javascript:return response_get_cookies();">get cookies</button>
</fieldset>
<fieldset class="section">
<legend>Feedback</legend>
<p>Feedback from the flash SocketPool:</p>
<div id="feedback">
None
</div>
</div>
</body>
</html>