Added:
trunk/bin/requests/
trunk/bin/requests/hello.html
trunk/bin/requests/request1.html
trunk/run/Request1.hxml
trunk/run/Request1.sh
trunk/tests/requests/
trunk/tests/requests/Request1.hx
Log:
http request tests
Added: trunk/bin/requests/hello.html
==============================================================================
--- (empty file)
+++ trunk/bin/requests/hello.html Fri Aug 29 09:22:58 2008
@@ -0,0 +1 @@
+<P>hello world</P>
\ No newline at end of file
Added: trunk/bin/requests/request1.html
==============================================================================
--- (empty file)
+++ trunk/bin/requests/request1.html Fri Aug 29 09:22:58 2008
@@ -0,0 +1,67 @@
+<html>
+ <head>
+ <title>request example</title>
+ <style>
+ iframe {
+ border: 0; padding: 0; margin: 0;
+ width: 100%; height: 100%;
+ }
+
+ .label {
+ padding: 2px;
+ font-weight: bold;
+ font-size: 7pt;
+ background-color: #000000;
+ color: #ffffff;
+ text-align: center;
+ }
+
+ .window {
+ font-family: Verdana;
+ font-size: 9pt;
+ float:left;
+ border: 1px solid #aaa;
+ margin: 0 2px 2px 0;
+ }
+
+ .window .cont {
+ width: 410px;
+ height: 240px;
+ overflow: auto;
+ }
+ </style>
+ </head>
+<body>
+<div class="window">
+ <div class="label">JavaScript</div>
+ <div id="js_container" class="cont">
+ <pre><div id="haxe:trace"></div></pre>
+ </div>
+</div>
+
+<div class="window">
+ <div class="label">Flash 7</div>
+ <div id="flash7_container" class="cont">Flash 7</div>
+</div>
+
+<div class="window">
+ <div class="label">Flash 8</div>
+ <div id="flash8_container" class="cont">Flash 8</div>
+</div>
+
+<div class="window">
+ <div class="label">Flash 9</div>
+ <div id="flash9_container" class="cont">Flash 9</div>
+</div>
+
+<script type="text/javascript" src="request1.js"></script>
+<script type="text/javascript" src="../swfobject.js" ></script>
+<script type="text/javascript">
+(function() {
+ for(var ver=7;ver<10;ver++) {
+ var el = document.getElementById("flash"+ver+"_container");
+ (new SWFObject("request1f"+ver+".swf", "request1"+ver, el.offsetWidth,
el.offsetHeight, ver, "#ffffff")).write(el);
+ }
+})();
+</script>
+</script>
\ No newline at end of file
Added: trunk/run/Request1.hxml
==============================================================================
--- (empty file)
+++ trunk/run/Request1.hxml Fri Aug 29 09:22:58 2008
@@ -0,0 +1,34 @@
+# F7
+-swf ../bin/requests/request1f7.swf
+-main tests.requests.Request1
+-debug
+-cp ../
+-swf-version 7
+-swf-header 410:240:120:ffffff
+
+--next
+
+# F8
+-swf ../bin/requests/request1f8.swf
+-main tests.requests.Request1
+-debug
+-cp ../
+-swf-version 8
+-swf-header 410:240:120:ffffff
+
+--next
+
+# F9
+-swf ../bin/requests/request1f9.swf
+-main tests.requests.Request1
+-debug
+-cp ../
+-swf-header 410:240:120:ffffff
+
+--next
+
+# JS
+-js ../bin/requests/request1.js
+-main tests.requests.Request1
+-debug
+-cp ../
Added: trunk/run/Request1.sh
==============================================================================
--- (empty file)
+++ trunk/run/Request1.sh Fri Aug 29 09:22:58 2008
@@ -0,0 +1,6 @@
+# edit to deploy somewhere else... note that Request1.hx also has a
hardcoded url
+DEPLOY_DIR=/var/www/utest/
+
+rm -rf $DEPLOY_DIR*
+haxe Request1.hxml
+cp -r ../bin/* $DEPLOY_DIR
Added: trunk/tests/requests/Request1.hx
==============================================================================
--- (empty file)
+++ trunk/tests/requests/Request1.hx Fri Aug 29 09:22:58 2008
@@ -0,0 +1,141 @@
+package tests.requests;
+
+import utest.Assert;
+import utest.Assertation;
+import utest.TestFixture;
+import utest.TestHandler;
+import utest.Runner;
+import utest.ui.text.TraceReport;
+
+class Request1 {
+
+ static inline var TIMEOUT = 500;
+
+ static function main() {
+ //var t = new Request1();
+ //t.testRequest();
+ //t.testRequestFail();
+
+ var r = new Runner();
+ r.addCase(new RequestTest());
+ var report = new TraceReport(r);
+ r.run();
+
+ }
+
+ public function new();
+
+ // #1 - asynchronous usage
+ function testRequest() {
+ var testCase = new RequestTest();
+ var fixture = new TestFixture(testCase, "testHttp");
+ var handler = new TestHandler(fixture);
+
+ var async = handler.addAsync(function(){ trace("running async"); },
TIMEOUT);
+ testCase.onFinish = async;
+
+ handler.onTimeout = function(h) {
+ trace("TIMEOUT");
+ }
+
+ handler.onComplete = function(h) {
+ trace("COMPLETE");
+ var results = handler.results;
+
+ if (h.results.length != 1) {
+ trace("FAIL (wrong number of results ("+h.results.length+"))");
+ } else {
+ switch(h.results.pop()) {
+ case Success(p):
+ trace("OK #1");
+ default:
+ trace("FAIL (expected success)");
+ }
+ }
+ }
+
+ handler.execute();
+ }
+
+ // #2 - asynchronous usage with a failure
+ function testRequestFail() {
+ var testCase = new RequestTest();
+ var fixture = new TestFixture(testCase, "testHttpFail");
+ var handler = new TestHandler(fixture);
+
+ var async = handler.addAsync(function(){ trace("running async"); },
TIMEOUT);
+ testCase.onFinish = async;
+
+ handler.onTimeout = function(h) {
+ trace("TIMEOUT");
+ }
+
+ handler.onComplete = function(h) {
+ trace("COMPLETE");
+ var results = handler.results;
+
+ if (h.results.length != 1) {
+ trace("FAIL (wrong number of results ("+h.results.length+"))");
+ } else {
+ switch(h.results.pop()) {
+ case Failure(msg , pos ):
+ trace("OK #2");
+ default:
+ trace("FAIL (expected failure)");
+ }
+ }
+ }
+
+ handler.execute();
+ }
+}
+
+class RequestTest {
+
+ // Edit url to match your server.
+ private static var baseURL = "http://localhost:8888/utest/requests/";
+
+ // A handle on the returned function from addAsync().
+ public var onFinish : Void->Void;
+
+ public function new();
+
+ /*
+ Makes a http request that will work.
+ */
+ public function testHttp() {
+ var requestor = new haxe.Http( baseURL + "hello.html" );
+ requestor.onData = onData;
+ requestor.onError = onError;
+ requestor.request(false);
+ }
+
+ /*
+ Makes a http request that will not work.
+ */
+ public function testHttpFail() {
+ var requestor = new haxe.Http( baseURL + "doesntexist.html" );
+ requestor.onData = onData;
+ requestor.onError = onError;
+ requestor.request(false);
+ }
+
+ /*
+ Handles results from SUCCESSFUL http requests.
+ */
+ function onData(msg:String) {
+ trace(msg);
+ Assert.equals("<P>hello world</P>", msg);
+ onFinish();
+ }
+
+ /*
+ Handles results from UNSUCCESSFUL http requests.
+ */
+ public function onError(msg:String) {
+ trace(msg);
+ Assert.fail(msg);
+ onFinish();
+ }
+
+}
\ No newline at end of file