Revision: 3100
http://vexi.svn.sourceforge.net/vexi/?rev=3100&view=rev
Author: mkpg2
Date: 2008-08-28 21:41:31 +0000 (Thu, 28 Aug 2008)
Log Message:
-----------
Development.
- reorganized js, separating out 'standard' and vexi specific parts
- moved stream code to js
- redone stream api, utf8reader and utf8writer replaced parse.utf8 and
write.utf8
Consequence
- explicit call to vexi.cache is required when loading vexi archives from
vexi.
Modified Paths:
--------------
trunk/core/org.vexi.core/src/org/vexi/core/Constants.java
trunk/core/org.vexi.core/src/org/vexi/core/Resources.java
trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp
trunk/core/org.vexi.core/src_junit/org/vexi/core/TestResources.java
trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertbiscuit.t
trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertempty.t
trunk/core/org.vexi.core/src_junit/test/core/biscuits/createbiscuit.t
trunk/core/org.vexi.core/src_junit/test/core/download/splashtest.t
Added Paths:
-----------
trunk/core/org.vexi.core/src_junit/test/core/general/accessresource.t
trunk/core/org.vexi.core/src_junit/test/core/general/test.xml
Removed Paths:
-------------
trunk/core/org.vexi.core/src_junit/test/core/stream/TestStream.java
trunk/core/org.vexi.core/src_junit/test/core/stream/accessresource.t
trunk/core/org.vexi.core/src_junit/test/core/stream/badargs.t
trunk/core/org.vexi.core/src_junit/test/core/stream/parsemptyxml.t
trunk/core/org.vexi.core/src_junit/test/core/stream/progress.t
trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t
trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf82.t
trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadxml.t
trunk/core/org.vexi.core/src_junit/test/core/stream/test.xml
Modified: trunk/core/org.vexi.core/src/org/vexi/core/Constants.java
===================================================================
--- trunk/core/org.vexi.core/src/org/vexi/core/Constants.java 2008-08-28
02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src/org/vexi/core/Constants.java 2008-08-28
21:41:31 UTC (rev 3100)
@@ -15,12 +15,10 @@
static final JS SC_align_bottom = JSU.S("bottom",true);
static final JS SC_align_bottomright = JSU.S("bottomright",true);
static final JS SC_box = JSU.S("box",true);
- static final JS SC_characters = JSU.S("characters",true);
static final JS SC_Children = JSU.S("Children",true);
static final JS SC_contentheight = JSU.S("contentheight",true);
static final JS SC_contentwidth = JSU.S("contentwidth",true);
static final JS SC_cursor = JSU.S("cursor",true);
- static final JS SC_endElement = JSU.S("endElement",true);
static final JS SC_Enter = JSU.S("Enter",true);
static final JS SC_fill = JSU.S("fill",true);
static final JS SC_font = JSU.S("font",true);
@@ -47,14 +45,12 @@
static final JS SC__Press3 = JSU.S("_Press3",true);
static final JS SC_redirect = JSU.S("redirect",true);
static final JS SC_shrink = JSU.S("shrink",true);
- static final JS SC_startElement = JSU.S("startElement",true);
static final JS SC_stringify = JSU.S("stringify",true);
static final JS SC_surface = JSU.S("surface",true);
static final JS SC_titlebar = JSU.S("titlebar",true);
static final JS SC_vertical = JSU.S("vertical",true);
static final JS SC_visible = JSU.S("visible",true);
static final JS SC_vshrink = JSU.S("vshrink",true);
- static final JS SC_whitespace = JSU.S("whitespace",true);
static final JS SC_width = JSU.S("width",true);
static final JS SC_x = JSU.S("x",true);
static final JS SC_y = JSU.S("y",true);
Modified: trunk/core/org.vexi.core/src/org/vexi/core/Resources.java
===================================================================
--- trunk/core/org.vexi.core/src/org/vexi/core/Resources.java 2008-08-28
02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src/org/vexi/core/Resources.java 2008-08-28
21:41:31 UTC (rev 3100)
@@ -1,37 +1,15 @@
package org.vexi.core;
import java.awt.Font;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Vector;
+import java.io.*;
+import java.text.*;
+import java.util.*;
-import org.ibex.js.Fountain;
-import org.ibex.js.JS;
-import org.ibex.js.JSExn;
-import org.ibex.js.JSU;
+import org.ibex.js.*;
+import org.ibex.js.JS.*;
import org.ibex.js.JS.Enumeration;
-import org.ibex.js.JS.Keys;
-import org.ibex.js.JSU.Wrapper;
-import org.ibex.util.Basket;
-import org.ibex.util.Callable;
-import org.ibex.util.Encode;
-import org.ibex.util.IOUtil;
-import org.ibex.util.Log;
-import org.ibex.util.Tree;
-import org.ibex.util.XML;
-import org.ibex.util.Basket.Stack;
-import org.vexi.plat.Platform;
+import org.ibex.util.*;
+import org.vexi.js.*;
/**
* Roughly encapsulates the vexi cache (.vexi directory)
@@ -99,40 +77,18 @@
// TODO - move to constructor of Fountain.Multiple
- public static JS multiple(final JS[] streams) throws JSExn{
- /*if(streams.length==0) return null;
- if(streams.length==1){
- return streams[0];
- }else{*/
- try{
- // REMARK - ignoring non-cacheable (i.e. fountains
which aren't some
- // sort of directory) when more than one arg given.
- final
- Fountain.Multiple multiStream = new
Fountain.Multiple(streams.length);
- for(int i=0; i<streams.length; i++){
- Fountain cacheable =
JSU.getFountain(streams[i]);
- multiStream.addOverrideStream(cacheable);
- }
- return multiStream;
- }catch(Exception e){
- throw new JSExn(e.getMessage());
- }
- //}
- }
-
- static public Fountain fountainForURL(final String url) throws JSExn{
- Fountain r = _fountainForURL(url);
- if(r==null) throw new JSExn("invalid resource specifier " + url);
- return r;
- }
-
static public Fountain fountainForArg(final String arg) throws IOException
{
Fountain r = null;
try{
- r = _fountainForURL(arg);
+ r = VexiJS._fountainForURL(arg);
+ if(r!=null){
+ if(r instanceof Fountain.HTTP)
+ r = cache(r);
+ }
+
if(r==null){
if(arg.indexOf("!")!=-1){
// FEATURE - make recursive (any depth of wrapping)
@@ -167,29 +123,13 @@
return null;
}
}
+
- static Fountain _fountainForURL(final String url) throws JSExn{
- if (url.startsWith("http://") || url.startsWith("https://")) {
- Fountain r = new Fountain.HTTP(url);
- // HACK - using filename (ideally would use mimetype)
- // HACK? - automatically caching archives. It doesn't make too
much
- // sense to do otherwise
- if (url.endsWith(".vexi")) return new CachedArchive(r);
- return r;
- }
- else if (url.startsWith("data:")) return new
Fountain.ByteArray(Encode.fromBase64(url.substring(5)));
- else if (url.startsWith("utf8:")) return new
Fountain.ByteArray(url.substring(5).getBytes());
- // REMARK - not sure how to integrate file dialogs here. As we want to
maintain a
- // distinction between opening for writing and opening for reading,
for security reasons.
- //else if (url.startsWith("file:")) {
- //Platform.fileDialog(url.substring(5), false);
- //}
- return null;
-
- }
-
static public Fountain cache(final JS stream) throws JSExn{
Fountain f = JSU.getFountain(stream);
+ // HACK
+ if(f.canonical().endsWith(".vexi"))
+ return new CachedArchive(f);
return new CachedFile(f);
}
@@ -448,163 +388,6 @@
is.close();
}
-
- static final int[] ARGTYPES_parseXML = new int[]{JSU.FOUNTAIN, JSU.OBJ};
- public static void parseXML(JS[] args) throws JSExn{
- JSU.checkArgs(args, ARGTYPES_parseXML);
- new XMLHelper(args[1]).doParse(args[0]);
- return;
- }
-
- public static JS writeXML(JS[] args) throws JSExn {
- JSU.checkArgs(args, Fountain.ARGTYPES_afountain);
- try{
- final BufferedWriter out = new BufferedWriter(
- new
OutputStreamWriter(JSU.getOutputStream(args[0])));
- JS writer = new JS.Immutable(){
- Stack stack = new Basket.Array();
-
- public JS get(JS arg) throws JSExn {
- String key = JSU.toString(arg);
- if(key.equals("startElement") ||
- key.equals("endElement") ||
- key.equals("characters") ||
- key.equals("close"))
- return METHOD;
- return super.get(arg);
- }
-
- public JS call(JS method, JS[] args) throws
JSExn {
- String key = JSU.toString(method);
- try{
- if(key.equals("startElement")){
- String name =
JSU.toString(args[0]);
- stack.push(name);
-
- out.write("<" + name);
- if(args.length>1){
- JS attrs = args[1];
- Enumeration E =
attrs.keys().iterator();
- while(E.hasNext()){
- JS attrName =
E.next();
- JS attrVal =
attrs.get(attrName);
- out.write(" "+
JSU.toString(attrName)+"=\""+JSU.toString(attrVal)+"\"");
- }
- }
- out.write(">");
- return null;
- }else if(key.equals("endElement")){
- String name = (String)
stack.pop();
- out.write("</"+name+">");
- if(stack.size()==0){
- out.close();
- }
- return null;
- }else if(key.equals("characters")){
- String chars =
JSU.toString(args[0]);
- out.write(chars);
- return null;
- }else if(key.equals("close")){
- out.close();
- return null;
- }
- }catch(IOException e){
- throw JSU.handleFountainExn(e);
- }
- return super.call(method, args);
- }
- };
- return writer;
- }catch(IOException e){
- throw JSU.handleFountainExn(e);
- }
- }
-
-
- static private class XMLHelper extends XML {
-
-
- private JS characters, whitespace, endElement, startElement;
- public XMLHelper(JS b) throws JSExn {
- super(BUFFER_SIZE, true);
- startElement = b.getAndTriggerTraps(SC_startElement);
- endElement = b.getAndTriggerTraps(SC_endElement);
- characters = b.getAndTriggerTraps(SC_characters);
- whitespace = b.getAndTriggerTraps(SC_whitespace);
- }
-
- private final JS[] callargs1 = new JS[1], callargs2 = new JS[2],
callargs3 = new JS[3];
- public void startElement(Tree.Element c) throws XML.Exn {
- try {
- Tree.Attributes a = c.getAttributes();
- JS attrs = new JS.Obj();
- // FIXME attribute URIs? add an additional hash?
- for(int i=0; i<a.attrSize(); i++)
attrs.put(JSU.S(a.getKey(i)), JSU.S(a.getVal(i)));
- callargs3[0] = JSU.S(c.getLocalName());
- callargs3[1] = attrs;
- callargs3[2] = JSU.S(c.getUri());
- startElement.call(null, callargs3);
- } catch (JSExn jse) {
- throw new Wrapper(jse);
- } finally {
- callargs3[0] = callargs3[1] = callargs3[2] = null;
- }
- }
-
- public void endElement(Tree.Element c) throws XML.Exn {
- try {
- callargs2[0] = JSU.S(c.getLocalName());
- callargs2[1] = JSU.S(c.getUri());
- endElement.call(null, callargs2);
- } catch (JSExn jse) {
- throw new Wrapper(jse);
- } finally {
- callargs2[0] = callargs2[1] = null;
- }
- }
-
- public void characters(char[] ch, int start, int length) throws
XML.Exn {
- try {
- callargs1[0] = JSU.S(new String(ch, start, length));
- characters.call(null, callargs1);
- } catch (JSExn jse) {
- throw new JSU.Wrapper(jse);
- } finally {
- callargs1[0] = null;
- }
- }
-
- public void whitespace(char[] ch, int start, int length) throws
XML.Exn {
- try {
- callargs1[0] = JSU.S(new String(ch, start, length));
- if(whitespace!=null)whitespace.call(null, callargs1);
- } catch (JSExn jse) {
- throw new Wrapper(jse);
- } finally {
- callargs1[0] = null;
- }
- }
-
- public void doParse(JS s) throws JSExn {
- try {
- InputStream is = JSU.getInputStream(s);
- if(is==null) return;
- BufferedReader br = new BufferedReader(new
InputStreamReader(is));
- try{
- parse(br);
- }finally{
- br.close();
- }
- } catch (Wrapper e) {
- throw e.wrapee;
- } catch (XML.Exn e) {
- throw new JSExn("error parsing XML: " + e.toString());
- } catch (IOException e) {
- throw JSU.handleFountainExn(e);
- }
- }
- }
-
////////
// FONT STUFF
Modified: trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp
===================================================================
--- trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp 2008-08-28 02:44:12 UTC
(rev 3099)
+++ trunk/core/org.vexi.core/src/org/vexi/core/Vexi.jpp 2008-08-28 21:41:31 UTC
(rev 3100)
@@ -7,14 +7,8 @@
import java.io.IOException;
import org.ibex.crypto.MD5;
-import org.ibex.js.Fountain;
-import org.ibex.js.JS;
-import org.ibex.js.JSDate;
-import org.ibex.js.JSExn;
-import org.ibex.js.JSRegexp;
-import org.ibex.js.JSU;
-import org.ibex.js.XMLRPC;
-import org.ibex.js.Instr;
+import org.ibex.js.*;
+import org.vexi.js.*;
import org.ibex.util.Cache;
import org.ibex.util.Callable;
import org.ibex.util.Encode;
@@ -91,6 +85,7 @@
case "biscuits": return Resources.biscuits;
case "bless": return METHOD;
case "box": return new Box();
+ case "cache": return METHOD;
case "clone": return METHOD;
case "crypto": return getSub(name);
case "crypto.md5": return METHOD;
@@ -102,41 +97,25 @@
case "file.load": return METHOD;
case "file.remove": return METHOD;
case "file.save": return METHOD;
+ case "file.homedir": return VexiJS.fountainForURL("file:" +
System.getProperty("user.home"));
+ case "file.tempdir": return VexiJS.fountainForURL("file:" +
System.getProperty("java.io.tempdir"));
case "js": return getSub(name);
case "js.eval": return METHOD;
- case "js.stringify": return METHOD;
+ case "js.stringify": return METHOD;
case "log": return getSub(name);
case "log.debug": return METHOD;
case "log.info": return METHOD;
case "log.warn": return METHOD;
case "log.error": return METHOD;
- case "math": return vexiMath;
+ case "math": return VexiJS.math;
case "net": return getSub(name);
case "net.rpc": return getSub(name);
case "net.rpc.soap": return METHOD;
case "net.rpc.xml": return METHOD;
case "params": return Main.params;
case "regexp": return METHOD;
- case "stream": return getSub(name);
- case "stream.buffer": return METHOD;
- case "stream.cache": return METHOD;
- case "stream.multiple": return METHOD;
- case "stream.nameOf": return METHOD;
- case "stream.pipe": return METHOD;
- case "stream.fromString": return METHOD;
- case "stream.homedir": return Resources.fountainForURL("file:" +
System.getProperty("user.home"));
- case "stream.tempdir": return Resources.fountainForURL("file:" +
System.getProperty("java.io.tempdir"));
- case "stream.unzip": return METHOD;
- case "stream.uncab": return METHOD;
- case "stream.url": return METHOD;
- case "stream.parse": return getSub(name);
- case "stream.parse.html": return METHOD;
- case "stream.parse.xml": return METHOD;
- case "stream.parse.utf8": return METHOD;
- case "stream.write": return getSub(name);
- case "stream.write.xml": return METHOD;
- case "stream.write.utf8": return METHOD;
- case "string": return vexiString;
+ case "stream": return VexiJS.stream;
+ case "string": return VexiJS.string;
case "thread": return getSub(name);
case "thread.yield": return METHOD;
case "thread.sleep": return METHOD;
@@ -254,18 +233,17 @@
try {
//#switch(JSU.toString(method))
case "bless": return bless_jsthread(target,
args[0],(args.length<2)?null:args[1]);
+ case "cache": return Resources.cache(args[0]);
case "date": return new JSDate(args);
case "file.load": return accessFile(args,false);
case "file.save": return accessFile(args,true);
- case "js.eval": return JSU.GLOBAL.call(SC_eval, args);
+ case "js.eval": return Methods.eval(args);
// FIXME support object dumping
case "log.debug": if(args.length<1) JSU.debug(null); else
JSU.debug(args[0]); return null;
case "log.info": if(args.length<1) JSU.info(null); else
JSU.info(args[0]); return null;
case "log.warn": if(args.length<1) JSU.warn(null); else
JSU.warn(args[0]); return null;
case "log.error": if(args.length<1) JSU.error(null); else
JSU.error(args[0]); return null;
case "net.rpc.soap": return new SOAP(JSU.toString(args[0]),
JSU.toString(args[1]), JSU.toString(args[2]));
- case "stream.buffer": return new
Fountain.ByteArray(args.length>0?JSU.toInt(args[0]):8192);
- case "stream.multiple": return Resources.multiple(args);
//#end
switch (args.length) {
@@ -290,22 +268,9 @@
case "crypto.sha1": /* FEATURE */ return null;
case "crypto.rc4": /* FEATURE */ return null;
case "file.remove": ((Fountain.File)args[0]).remove();
return null;
- case "js.stringify": return JSU.GLOBAL.call(SC_stringify,
args);
+ case "js.stringify": return JSON.marshal(args[0]);
case "net.rpc.xml": return new
XMLRPC(JSU.toString(args[0]), "");
case "regexp": return new JSRegexp(args[0], null);
- case "stream.cache": return Resources.cache(args[0]);
- case "stream.fromString": return new
Fountain.ByteArray(JSU.toString(args[0]).getBytes());
- case "stream.nameOf": return JSU.S(Fountain.nameOf(args));
- case "stream.parse.html": throw new JSExn("not implemented
yet"); //return null;
- // FIXME backgrounding
-
- case "stream.url": return
Resources.fountainForURL(JSU.toString(args[0]));
- case "stream.unzip":
- try{ return args[0] == null ? null :
Fountain.newZip((Fountain)args[0]); }
- catch(IOException e){ throw new JSExn(e.getMessage()); }
- //case "stream.uncab": return a == null ? null : new
Stream.Cab(a);
- case "stream.parse.utf8": return Fountain.parseUTF8(args);
- case "stream.write.xml": return Resources.writeXML(args);
case "thread.sleep": JSU.sleep(JSU.toInt(args[0])); return
null;
case "ui.browser":
Platform.newBrowserWindow(JSU.toString(args[0])); return null;
case "ui.font.install": Resources.installFont(args[0]);
return null;
@@ -329,9 +294,6 @@
case 2:
//#switch(JSU.toString(method))
case "regexp": return new JSRegexp(args[0], args[1]);
- case "stream.pipe": Fountain.pipe(args); return null;
- case "stream.parse.xml": Resources.parseXML(args); return
null;
- case "stream.write.utf8": Fountain.writeUTF8(args); return
null;
//#end
case 3:
//#switch(JSU.toString(method))
@@ -366,63 +328,9 @@
// FIXME support file:// via dialog boxes
}*/
-
- public static final JS vexiMath = new JS.Immutable() {
- // why does vexi need its own implementation?
- // why not use JSU.MATH directly (and move missing stuff there)
- // FEATURE: find a cleaner way to do this,
- public JS get(JS key) throws JSExn {
- //#switch(JSU.toString(key))
- case "isNaN": return METHOD;
- case "isFinite": return METHOD;
- case "NaN": return METHOD;
- case "Infinity": return METHOD;
- //#end
- return JSU.MATH.get(key);
- }
- public JS call(JS method, JS[] args) throws JSExn {
- //#switch(JSU.toString(method))
- case "isNaN": return JSU.GLOBAL.call(method, args);
- case "isFinite": return JSU.GLOBAL.call(method, args);
- case "NaN": return JSU.GLOBAL.call(method, args);
- case "Infinity": return JSU.GLOBAL.call(method, args);
- //#end
- return JSU.MATH.call(method, args);
- }
- };
- public static final JS vexiString = new JS.Immutable() {
- // Same remarks as vexiMath
- public JS get(JS key) throws JSExn {
- //#switch(JSU.toString(key))
- case "parseInt": return METHOD;
- case "parseFloat": return METHOD;
- case "decodeURI": return METHOD;
- case "decodeURIComponent": return METHOD;
- case "encodeURI": return METHOD;
- case "encodeURIComponent": return METHOD;
- case "escape": return METHOD;
- case "unescape": return METHOD;
- case "fromCharCode": return METHOD;
- //#end
- return super.get(key);
- }
- public JS call(JS method, JS[] args) throws JSExn {
- //#switch(JSU.toString(method))
- case "parseInt": return JSU.GLOBAL.call(method, args);
- case "parseFloat": return JSU.GLOBAL.call(method, args);
- case "decodeURI": return JSU.GLOBAL.call(method, args);
- case "decodeURIComponent": return JSU.GLOBAL.call(method,
args);
- case "encodeURI": return JSU.GLOBAL.call(method, args);
- case "encodeURIComponent": return JSU.GLOBAL.call(method,
args);
- case "escape": return JSU.GLOBAL.call(method, args);
- case "unescape": return JSU.GLOBAL.call(method, args);
- case "fromCharCode": return JSU.GLOBAL.call(method, args);
- //#end
- return super.call(method, args);
- }
- };
+
// FEATURE: move this into builtin.vexi
// From JS thread.
static private Blessing bless_jsthread(final JS vexi, final JS fountain,
final JS name) throws JSExn {
Modified: trunk/core/org.vexi.core/src_junit/org/vexi/core/TestResources.java
===================================================================
--- trunk/core/org.vexi.core/src_junit/org/vexi/core/TestResources.java
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/org/vexi/core/TestResources.java
2008-08-28 21:41:31 UTC (rev 3100)
@@ -10,6 +10,7 @@
import org.ibex.js.Fountain;
import org.ibex.js.JS;
import org.ibex.js.JSU;
+import org.vexi.js.VexiJS;
import test.Util;
import testdeployment.NanoHTTPD;
@@ -88,7 +89,7 @@
}
public void testDownload() throws Exception{
- Fountain f = Resources.fountainForURL(URL +
"test.vexi");
+ Fountain f = Resources.fountainForArg(URL +
"test.vexi");
Fountain b = (Fountain) f.get(JSU.S("b.txt"));
String contents =
Util.inputStreamAsString(JSU.getInputStream(b));
assertEquals("y\n", contents);
@@ -102,7 +103,7 @@
// TODO delete cache
File installed = new
File(Resources.DIR_FONTS,"Bitstream Vera Sans.ttf");
if(installed.exists() && !installed.delete()) fail();
- Fountain f = Resources.fountainForURL(URL +
"VeraSans.vexi");
+ Fountain f = Resources.fountainForArg(URL +
"VeraSans.vexi");
JS fontJS =
Resources.installedFonts.get(JSU.S("Bitstream Vera Sans"));
assertNull(fontJS);
Resources._installFont(f);
Modified: trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertbiscuit.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertbiscuit.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertbiscuit.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -9,7 +9,7 @@
parser.characters = function(val){};
// Create a biscuit
- vexi.stream.parse.xml(vexi.biscuits["session"], parser);
+ vexi.stream.parsexml(vexi.biscuits["session"], parser);
vexi.log.info(x.username);
assert(x.username == "bob");
assert(x.password == "letmein");
Modified: trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertempty.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertempty.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/biscuits/assertempty.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -2,7 +2,7 @@
// Create a biscuit
var x =
- vexi.stream.parse.utf8(vexi.biscuits["session"]);
+ vexi.stream.utf8reader(vexi.biscuits["session"]).all;
vexi.log.info(x);
.util..assertEquals("",x);
<ui:box/>
Modified: trunk/core/org.vexi.core/src_junit/test/core/biscuits/createbiscuit.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/biscuits/createbiscuit.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/biscuits/createbiscuit.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -3,7 +3,7 @@
// Create a biscuit
var x = {username:"bob", password:"letmein"};
var writer =
- vexi.stream.write.xml(vexi.biscuits["session"]);
+ vexi.stream.xmlwriter(vexi.biscuits["session"]);
writer.startElement("obj", x);
writer.endElement();
Modified: trunk/core/org.vexi.core/src_junit/test/core/download/splashtest.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/download/splashtest.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/download/splashtest.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -11,7 +11,8 @@
// Fetch the resource
var rr = vexi_world.bless(
-
vexi.stream.url("http://localhost:7070/example.vexi"));
+ vexi.cache(
+
vexi.stream.url("http://localhost:7070/example.vexi")));
// Trap on resource root on new vexi
vexi_world[""] ++= function(){return rr;};
Copied: trunk/core/org.vexi.core/src_junit/test/core/general/accessresource.t
(from rev 3083,
trunk/core/org.vexi.core/src_junit/test/core/stream/accessresource.t)
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/general/accessresource.t
(rev 0)
+++ trunk/core/org.vexi.core/src_junit/test/core/general/accessresource.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -0,0 +1,20 @@
+<vexi xmlns:ui="vexi://ui" xmlns="">
+
+ // REMARK - is this just a work around for accessing resource files?
+ var stream = vexi[""]["test.xml"];
+ assert(stream!=null);
+ var theName = null;
+ var parser = {};
+ parser.startElement = function(name, attrs){
+ if(name=="person"){
+ theName = attrs["name"];
+ }
+ };
+ parser.endElement = function(name){};
+ parser.characters = function(val){};
+ vexi.stream.parsexml(stream, parser);
+ .util..assertEquals("denzel washington", theName);
+
+ <ui:box/>
+
+</vexi>
\ No newline at end of file
Copied: trunk/core/org.vexi.core/src_junit/test/core/general/test.xml (from rev
3083, trunk/core/org.vexi.core/src_junit/test/core/stream/test.xml)
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/general/test.xml
(rev 0)
+++ trunk/core/org.vexi.core/src_junit/test/core/general/test.xml
2008-08-28 21:41:31 UTC (rev 3100)
@@ -0,0 +1,3 @@
+<peoplewhoareright>
+ <person name="denzel washington"/>
+</peoplewhoareright>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/TestStream.java
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/TestStream.java
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/TestStream.java
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,90 +0,0 @@
-package test.core.stream;
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.ibex.js.*;
-import org.ibex.util.Callable;
-import org.vexi.core.*;
-
-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.getResourceDirs(), "progress.t");
- t.runBare();
- }
-
- public TestStream() {
- super(TestStream.class);
- }
-
- public TestCase createTestCase(String[] resourceDirs, String fileName) {
- return new TestStreamCase(resourceDirs, fileName);
- }
-
- public static Test suite() {
- TestSuite suite = (TestSuite) suite(new TestStream());
- return suite;
- }
-
- protected boolean filter(String name) {
- return super.filter(name)
- //&& !name.contains("saveloadxml")
- //&& !name.contains("saveloadutf8")
- ;
- }
- static private class TestStreamCase extends CoreTestCase{
-
- public TestStreamCase(String[] resourceDirs, String
templateFileName) {
- super(resourceDirs, templateFileName);
- }
-
-
- protected void schedule(final Vexi v){
-
- /////
- // 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
- Scheduler.add(new Callable(){
- public Object run(Object o) throws Exception {
- File tmpDir = Util.createTmpDir();
- File save_ = new
File(tmpDir,"save.txt");
- TestCase.assertTrue(!save_.exists() ||
save_.delete());
- Fountain.File save = new
Fountain.File(save_.getPath(),true);
- //save.remove();
- Main.SCHEDULER.beforeNonJS();
- try{
- final JS runtest =
Util.getStatic(v, main, "runtest");
- if(runtest!=null)
-
Main.SCHEDULER.runInNew(runtest, new JS[]{save});
- else
- Vexi.resolveString(v,
main).call(null, new JS[]{new Box()});
- }finally{
- Main.SCHEDULER.afterNonJS();
- }
- return null;
- }
- });
-
- }
- }
-}
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/accessresource.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/accessresource.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/accessresource.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,20 +0,0 @@
-<vexi xmlns:ui="vexi://ui" xmlns="">
-
- // REMARK - is this just a work around for accessing resource files?
- var stream = vexi[""]["test.xml"];
- assert(stream!=null);
- var theName = null;
- var parser = {};
- parser.startElement = function(name, attrs){
- if(name=="person"){
- theName = attrs["name"];
- }
- };
- parser.endElement = function(name){};
- parser.characters = function(val){};
- vexi.stream.parse.xml(stream, parser);
- .util..assertEquals("denzel washington", theName);
-
- <ui:box/>
-
-</vexi>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/badargs.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/badargs.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/badargs.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,36 +0,0 @@
-<vexi xmlns:ui="vexi://ui" xmlns="">
-
- static.ret = null;
- static.hasException = function(f /*...*/){
- var exn = false;
- try{
- switch(arguments.length-1){
- case 1: ret=f(arguments[1]); break;
- case 2: ret=f(arguments[1], arguments[2]); break;
- }
- }catch(e){ vexi.log.info(e);exn = true;}
- return exn;
- };
-
- static.assertBadArgs = function(f /*...*/){
- assert(hasException.apply(arguments));
- };
-
- static.assertGoodArgs = function(f /*...*/){
- assert(!hasException.apply(arguments));
- };
-
- static.runtest = function(stream){
- assertBadArgs(vexi.stream.parse.xml,{}, {});
- assertBadArgs(vexi.stream.parse.xml,null, {});
- assertBadArgs(vexi.stream.parse.xml,stream);
- assertBadArgs(vexi.stream.parse.xml,stream, null);
- assertBadArgs(vexi.stream.write.xml,{});
- assertGoodArgs(vexi.stream.parse.xml,stream, {});
- assertGoodArgs(vexi.stream.write.xml,stream);
- ret.close(); // as we opened a stream we need to make sure its
closed
- };
-
- <ui:box/>
-
-</vexi>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/parsemptyxml.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/parsemptyxml.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/parsemptyxml.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,34 +0,0 @@
-<vexi xmlns:ui="vexi://ui" xmlns="">
-
- static.runtest = function(instream){
-
- var parser = {};
- parser.startElement = function(name, attrs){
- vexi.log.info("<"+name+">");
- assert(false);
- };
- parser.endElement = function(name){
- vexi.log.info("</" + name+">");
- assert(false);
- };
- parser.characters = function(val){
- vexi.log.info(val);
- assert(false);
- };
- vexi.stream.parse.xml(instream, parser);
- };
-
- <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
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/progress.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/progress.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/progress.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,27 +0,0 @@
-<vexi xmlns:ui="vexi://ui" xmlns="">
-
- vexi.thread = function(){
- var a = vexi.stream.buffer(16);
- vexi.stream.write.utf8(a,"sausage");
- var b = vexi.stream.buffer(16);
-
- var record = [];
-
- a.start++=function(v){
- record[record.length]="start";
- return;
- };
- a.finish++=function(v){
- record[record.length]="finish";
- return;
- };
-
- vexi.stream.pipe(a,b);
-
- .util..assertEquals("sausage", vexi.stream.parse.utf8(b));
- .util..assertEquals("start,finish", record.join(","));
- };
-
- <ui:box/>
-
-</vexi>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf8.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,12 +0,0 @@
-<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>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf82.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf82.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadutf82.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,17 +0,0 @@
-<vexi xmlns:ui="vexi://ui" xmlns="">
- // REMARK - repeat of saveloadutf8.
- // This is to check that the file is deleteable on windows
- // , which requires that all streams be closed.
- // Done like this as strangely it wasn't possible to test the file
- // immediately after executing the test.
- 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>
\ No newline at end of file
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadxml.t
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadxml.t
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/saveloadxml.t
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,53 +0,0 @@
-<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
Deleted: trunk/core/org.vexi.core/src_junit/test/core/stream/test.xml
===================================================================
--- trunk/core/org.vexi.core/src_junit/test/core/stream/test.xml
2008-08-28 02:44:12 UTC (rev 3099)
+++ trunk/core/org.vexi.core/src_junit/test/core/stream/test.xml
2008-08-28 21:41:31 UTC (rev 3100)
@@ -1,3 +0,0 @@
-<peoplewhoareright>
- <person name="denzel washington"/>
-</peoplewhoareright>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn