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("&lt;"+name+">");
+       };
+        parser.endElement = function(name){
+            events[events.length] = event("endElement",name);
+            vexi.log.info("&lt;/" + 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

Reply via email to