Revision: 1685 http://svn.sourceforge.net/vexi/?rev=1685&view=rev Author: mkpg2 Date: 2007-02-17 08:25:43 -0800 (Sat, 17 Feb 2007)
Log Message: ----------- Adding stream reading/writing test cases Modified Paths: -------------- core/trunk/org.vexi.core/src_junit/test/core/TestCore.java Added Paths: ----------- core/trunk/org.vexi.core/src_junit/test/core/stream/ core/trunk/org.vexi.core/src_junit/test/core/stream/TestStream.java core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadxml.t Modified: core/trunk/org.vexi.core/src_junit/test/core/TestCore.java =================================================================== --- core/trunk/org.vexi.core/src_junit/test/core/TestCore.java 2007-02-17 16:09:22 UTC (rev 1684) +++ core/trunk/org.vexi.core/src_junit/test/core/TestCore.java 2007-02-17 16:25:43 UTC (rev 1685) @@ -7,6 +7,7 @@ import test.core.linenumbering.TestLineNumbering; import test.core.namespace_vars.TestNamespaceVars; import test.core.preapply.TestPreapply; +import test.core.stream.TestStream; import test.core.thread.TestThread; import test.js.JSTestSuite; @@ -21,6 +22,7 @@ suite.addTest(TestLineNumbering.suite()); suite.addTest(TestThread.suite()); suite.addTest(TestBiscuits.suite()); + suite.addTest(TestStream.suite()); return suite; } } Added: core/trunk/org.vexi.core/src_junit/test/core/stream/TestStream.java =================================================================== --- core/trunk/org.vexi.core/src_junit/test/core/stream/TestStream.java (rev 0) +++ core/trunk/org.vexi.core/src_junit/test/core/stream/TestStream.java 2007-02-17 16:25:43 UTC (rev 1685) @@ -0,0 +1,75 @@ +package test.core.stream; + +import java.io.File; + +import junit.framework.Test; +import junit.framework.TestCase; + +import org.ibex.js.JS; +import org.ibex.js.JSExn; +import org.ibex.js.JSU; +import org.ibex.js.Scheduler; +import org.ibex.js.Thread; +import org.ibex.js.Fountain; +import org.vexi.core.DevUtil; +import org.vexi.core.Vexi; +import org.vexi.plat.Platform; + +import test.core.CoreTestCase; +import test.core.CoreTestSuite; +import test.core.Util; + +/** + * @author mike + */ +public class TestStream extends CoreTestSuite{ + + + + public static void main(String[] args) throws Throwable { + + TestStream cts = new TestStream(); + TestCase t = cts.createTestCase(cts.getResourceDir(), "saveload.t"); + t.runBare(); + } + + public TestStream() { + super(TestStream.class); + } + + public TestCase createTestCase(String resourceDir, String fileName) { + return new TestStreamCase(resourceDir, fileName); + } + + public static Test suite() { + return suite(new TestStream()); + } + + + static private class TestStreamCase extends CoreTestCase{ + + public TestStreamCase(String resourceDir, String templateFileName) { + super(resourceDir, templateFileName); + } + + + protected void schedule(Vexi v) throws JSExn { + + ///// + // REMARK - most tests we just apply the template + // and the static part and then the not static part + // is executed. For this case we want to pass an + // argument in (a Fountain.File) as it is not possible + // to access one* without a file dialog in vexi. + // + // *except maybe in the tempdir TBD + File tmpDir = Util.createTmpDir(); + File save_ = new File(tmpDir,"save.txt"); + Fountain.File save = new Fountain.File(save_.getPath(),true); + + JS function = Util.getStatic(v, main, "runtest"); + Thread.runInNew(function, new JS[]{save}); + + } + } +} Added: core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t =================================================================== --- core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t (rev 0) +++ core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t 2007-02-17 16:25:43 UTC (rev 1685) @@ -0,0 +1,23 @@ +<vexi xmlns:ui="vexi://ui" xmlns=""> + static.runtest = function(outstream){ + vexi.log.info(outstream); + vexi.stream.write.utf8(outstream,"1\n2\n3"); + var x = vexi.stream.parse.utf8(outstream); + .util..assertEquals("1\n2\n3",x); + vexi.log.info(x); + }; + + <ui:box/> + + /* + vexi.thread = function(){ + vexi.log.info("Starting file dialog test ..."); + var outstream = vexi.stream.file.save(); + vexi.stream.write.utf8(outstream,"1\n2\n3"); + + var instream = vexi.stream.file.load(); + var x = vexi.stream.parse.utf8(instream); + vexi.log.info(x); + };*/ + +</vexi> \ No newline at end of file Added: core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadxml.t =================================================================== --- core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadxml.t (rev 0) +++ core/trunk/org.vexi.core/src_junit/test/core/stream/saveloadxml.t 2007-02-17 16:25:43 UTC (rev 1685) @@ -0,0 +1,53 @@ +<vexi xmlns:ui="vexi://ui" xmlns=""> + + static.runtest = function(outstream){ + var writer = vexi.stream.write.xml(outstream); + var attrs = {name:"Excelsior",strength:"98",guile:"77"}; + writer.startElement("hero", attrs); + writer.characters("Excelsior is one of the mightiest of all the heros ..."); + writer.endElement(); + + var event = function(eventType, arg1, arg2){ + return {eventType:eventType,arg1:arg1,arg2:arg2}; + }; + + var events = []; + var instream = outstream; + var parser = {}; + + parser.startElement = function(name, attrs){ + events[events.length] = event("startElement",name,attrs); + vexi.log.info("<"+name+">"); + }; + parser.endElement = function(name){ + events[events.length] = event("endElement",name); + vexi.log.info("</" + name+">"); + }; + parser.characters = function(val){ + events[events.length] = event("characters",val); + vexi.log.info(val); + }; + vexi.stream.parse.xml(instream, parser); + .util..assertEquals("hero",events[0].arg1); + .util..assertEquals("Excelsior",events[0].arg2.name); + .util..assertEquals("Excelsior is one of",events[1].arg1.substr(0,19)); + .util..assertEquals("hero",events[2].arg1); + + + //vexi.log.info(x); + }; + + <ui:box/> + + /* + vexi.thread = function(){ + vexi.log.info("Starting file dialog test ..."); + var outstream = vexi.stream.file.save(); + vexi.stream.write.utf8(outstream,"1\n2\n3"); + + var instream = vexi.stream.file.load(); + var x = vexi.stream.parse.utf8(instream); + vexi.log.info(x); + };*/ + +</vexi> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn