- From: Jean-Guilhem Rouel via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 28 Aug 2009 12:40:01 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/tests In directory hutz:/tmp/cvs-serv22368/src/org/w3c/unicorn/tests Added Files: CommandLine.java UnicornClient.java HiepTest.java UnicornClientDirectInputTest.java XMLBeansTest.java TaskTest.java UnicornCallTest.java Log Message: Merging dev2 in HEAD --- NEW FILE: UnicornClient.java --- package org.w3c.unicorn.tests; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import org.w3c.unicorn.UnicornCall; import org.w3c.unicorn.contract.EnumInputMethod; import org.w3c.unicorn.output.OutputFactory; import org.w3c.unicorn.output.OutputFormater; import org.w3c.unicorn.output.OutputModule; import org.w3c.unicorn.util.Property; public class UnicornClient { /** * Prints help contents on the standard output. * */ public static void print_help() { System.out .println("[Usage] UnicornClient task inputType=[mimetype=]pageToValid templateLanguage outputTemplate [otherParameters]"); System.out.println(""); System.out .println("* tasks = one of task in tasklist.xml (eg: markup, css...)"); System.out.println("* inputType : uri|file"); System.out .println("* mimetype : text/html|text/css|... (required only if inputType='file')"); System.out .println("* pageToValid : an uri or a path to a file (depend on inputType)"); System.out.println("* otherParameters : param1=val1,param2=val2..."); System.out.println(""); System.out .println("[Example] UnicornClient markup uri=http://w3.org en xhtml10"); System.out .println("[Example] UnicornClient calculator uri=http://flyingman.sophia.w3.org/test en text10 x2=on,ptoto=titi"); System.out .println("[Example] UnicornClient css file=text/css=./style/base.css fr text10 profile=css2,usermedium=screen,warning=2,lang=en"); } /** * Tests Unicorn client. * * @param args */ public static void main(String[] args) { if (args.length == 0) { print_help(); } else if (args.length == 1 && args[0].equals("help")) { print_help(); } else { // read parameters String task = args[0]; String pageToValid = args[1]; String language = args[2]; String outputTemplate = args[3]; String pParams = ""; if (args.length > 4) { // this argument is optional pParams = args[4]; } UnicornCall aUnicornCall = new UnicornCall(); // parse other parameters: "x2=on,toto=titi" to a // map<String,String[]> if (pParams.length() != 0) { Map<String, String[]> mapOfParameter = new LinkedHashMap<String, String[]>(); String[] couples = pParams.split(","); for (int i = 0; i < couples.length; i++) { String[] couple = couples[i].split("="); if (couple.length == 2) { String[] tmp = { couple[1] }; mapOfParameter.put(couple[0], tmp); } else { System.err.println("Error parameter!"); } } aUnicornCall.setMapOfStringParameter(mapOfParameter); } // parse input type: "uri=http://flyingman.sophia.w3.org/test" or // "file=text/css=./style/base.css" String[] pInput = pageToValid.split("="); if (pInput[0].equals("uri")) { aUnicornCall.setEnumInputMethod(EnumInputMethod.URI); aUnicornCall.setDocumentName(pInput[1]); aUnicornCall.setInputParameterValue(pInput[1]); } else { // direct input try { aUnicornCall.setEnumInputMethod(EnumInputMethod.DIRECT); // read content in the file pInput[2], example: // pInput[2]=base.css alors content=".h1{color:#FA0012}"; BufferedReader bfr = new BufferedReader(new FileReader( pInput[2])); String content = ""; String line; while ((line = bfr.readLine()) != null) { content = content + line + "\n"; } bfr.close(); // Ajouter mime type dans map of parameter Map<String, String[]> mapOfParameter = aUnicornCall .getMapOfStringParameter(); if (mapOfParameter == null) { mapOfParameter = new LinkedHashMap<String, String[]>(); aUnicornCall.setMapOfStringParameter(mapOfParameter); } String[] tmp = { pInput[1] }; mapOfParameter.put(Property.get("UNICORN_PARAMETER_PREFIX") + "mime", tmp); aUnicornCall.setInputParameterValue(content); } catch (IOException e) { e.printStackTrace(); } } aUnicornCall.setTask(task); // task id aUnicornCall.setLang(language); long before = System.currentTimeMillis(); try { aUnicornCall.doTask(); Map<String, Object> mapOfStringObject = new LinkedHashMap<String, Object>(); mapOfStringObject.put("unicorncall", aUnicornCall); OutputFormater aOutputFormater = OutputFactory .getOutputFormater(outputTemplate, // text or xhtml10, // see // unicorn.properties language, "text/html"); // MIME Type OutputModule aOutputModule = OutputFactory .getOutputModule("simple"); PrintWriter pw = new PrintWriter(System.out); aOutputModule.produceOutput(aOutputFormater, mapOfStringObject, null, pw); pw.flush(); } catch (Exception e) { e.printStackTrace(); } long after = System.currentTimeMillis(); System.out.println("Elapsed time (s): " + (double) (after - before) / 1000); } } } --- NEW FILE: UnicornCallTest.java --- package org.w3c.unicorn.tests; import java.io.InputStream; import java.util.Iterator; import javax.activation.MimeType; import javax.xml.namespace.NamespaceContext; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.unicorn.contract.EnumInputMethod; import org.w3c.unicorn.input.InputFactory; import org.w3c.unicorn.input.InputModule; import org.w3c.unicorn.request.Request; import org.w3c.unicorn.response.Response; import org.xml.sax.InputSource; public class UnicornCallTest { public static Boolean evaluer(InputStream stream, String expression) { Boolean b = null; try { // cr�ation de la source InputSource source = new InputSource(stream); // cr�ation du XPath XPathFactory fabrique = XPathFactory.newInstance(); XPath xpath = fabrique.newXPath(); // test du namespace manuel NamespaceContext namespace = new NamespaceContext() { public String getNamespaceURI(String prefix) { if ("observationresponse".equals(prefix)) { return "http://www.w3.org/unicorn/observationresponse"; } else { return null; } } public String getPrefix(String namespaceURI) { if ("http://www.w3.org/unicorn/observationresponse " .equals(namespaceURI)) { return "observationresponse"; } else { return null; } } public Iterator getPrefixes(String namespaceURI) { return null; } }; xpath.setNamespaceContext(namespace); // �valuation de l'expression XPath XPathExpression exp = xpath.compile(expression); b = (Boolean) exp.evaluate(source, XPathConstants.BOOLEAN); System.out.println("namespace context : " + xpath.getNamespaceContext()); } catch (XPathExpressionException xpee) { xpee.printStackTrace(); } return b; } public static void main(String[] args) { try { // First, the XML document /* * String xmlStr = * "<?xml version=\"1.0\" ?>\n" + * "<Sales xmlns=\"http://www.davber.com/sales-format\">\n" + * "<Customer name=\"CostCo, Inc.\">\n" + * "<ord:Order xmlns:ord=\"http://www.davber.com/order-format\" * price=\"12000\">\n" + * "<ord:Description>A bunch of stuff" + * "</ord:Description>\n" + * "</ord:Order>\n" + * "</Customer>\n" + * "</Sales>\n"; * */ InputModule inputMod = InputFactory.createInputModule( (new MimeType()), EnumInputMethod.URI, "http://www.w3.org"); Request req = Request.createRequest(inputMod, "http://validator.w3.org/check", "uri", false, "ucn"); req.setLang("en"); req.addParameter("output", "ucn"); System.out.println("request created"); System.out.println(req.getResponseType()); Response res = req.doRequest(); System.out.println("request done"); DocumentBuilderFactory xmlFact = DocumentBuilderFactory .newInstance(); xmlFact.setNamespaceAware(false); DocumentBuilder builder = xmlFact.newDocumentBuilder(); Document doc = builder.parse(res.getXml().toString()); // Now the XPath expression String xpathStr = "//false"; XPathFactory xpathFact = XPathFactory.newInstance(); XPath xpath = xpathFact.newXPath(); String result = xpath.evaluate(xpathStr, doc); XPathExpression xpe = xpath.compile(xpathStr); boolean b = (Boolean) xpe.evaluate(doc, XPathConstants.BOOLEAN); System.out.println(b); System.out.println("xpath : " + (!result.equals(""))); // System.out.println("XPath result is \"" + // result + "\""); } catch (Exception ex) { ex.printStackTrace(); } } } /* * public static void main(String[] args) { try { System.out.println("Premier * test : URL"); // URL url = new // * URL("http://www.pms.ifi.lmu.de/forschung/xpath-eval.html"); * // String expression = "//category"; // String expression = * "//cadevraitetrefalse"; // (//doctype eq '-//W3C//DTD XHTML 1.0 Strict//EN') // * InputStream is = url.openStream(); // InputStreamReader isr = new * InputStreamReader(is); // BufferedReader br = new BufferedReader(isr); String * s = ""; // while ((s=br.readLine()) != null) // System.out.println(s); // * boolean b = evaluer(url.openStream(), expression); // * System.out.println(expression); // System.out.println("--> " + b); * // System.out.println("Deuxi�me test : UPLOAD"); // Object fichier = * (Object) (new File("C:/w3.xht")); // FileItem f = (FileItem) fichier; // * expression = "//html"; * // � tester plus tard (voir firstservlet pour un exemple) * // b = evaluer(f.getInputStream(),expression); // System.out.println("On * verra plus tard"); * // ystem.out.println("Troisi�me test : DIRECT"); * // System.out.println(b); * // ObservationresponseDocument.Factory.parse(); * * //System.out.println("Premier test : URL"); * * String expr = "//result"; InputModule inputMod = * InputFactory.createInputModule( (new MimeType()), EnumInputMethod.URI, * "http://www.w3.org"); Request req = Request.createRequest(inputMod, * "http://validator.w3.org/check", "uri", false, "ucn"); req.setLang("en"); * req.addParameter("output", "ucn"); System.out.println("request created"); * System.out.println(req.getResponseType()); req.doRequest(); * System.out.println("request done"); * // pour afficher le stream de response * * InputStream resp = req.getResponseStream(); InputStreamReader isr = new * InputStreamReader(resp); BufferedReader br = new BufferedReader(isr); String * str = ""; while ((str=br.readLine()) != null) System.out.println(str); * * * br.close(); isr.close();resp.close(); * * // trouver un moyen de // reset le responseStream de * * //System.out.println(req.getResponseStream()); boolean xpathRes = * evaluer(req.getResponseStream(), expr); System.out.println(xpathRes); * } catch (Exception e) { e.printStackTrace(); } } */ /* * public static void main(String[] args) throws Exception { Object ct; try { ct = * (new URL("http://www.w3.org")).openConnection().getContentType(); //XmlObject * bidule = XmlObject.Factory.parse("http://www.w3.org"); * * System.out.println(bidule); // System.out.println(ct); * //ct.selectPath(xPath); String xPath = "(//doctype eq '-//W3C//DTD XHTML 1.0 * Strict//EN') or (//doctype eq '-//W3C//DTD HTML 4.01//EN')" ; * //System.out.println(ct.selectPath(xPath)); * * * * * * * * } catch (MalformedURLException e) { e.printStackTrace(); } catch * (IOException e) { e.printStackTrace(); } * } */ --- NEW FILE: HiepTest.java --- package org.w3c.unicorn.tests; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import org.w3c.unicorn.UnicornCall; import org.w3c.unicorn.contract.EnumInputMethod; import org.w3c.unicorn.output.OutputFactory; import org.w3c.unicorn.output.OutputFormater; import org.w3c.unicorn.output.OutputModule; public class HiepTest { public static void main(String[] args) { UnicornCall aUnicornCall = new UnicornCall(); aUnicornCall.setTask("conformance"); // task id aUnicornCall.setEnumInputMethod(EnumInputMethod.URI); aUnicornCall.setDocumentName("http://w3.org"); aUnicornCall.setInputParameterValue("http://w3.org"); aUnicornCall.setLang("en"); try { aUnicornCall.doTask(); Map<String, Object> mapOfStringObject = new LinkedHashMap<String, Object>(); mapOfStringObject.put("unicorncall", aUnicornCall); OutputFormater aOutputFormater = OutputFactory.getOutputFormater( "xhtml10", // le template --> text ou xhtml10, see // unicorn.properties "en", // la langue "text/plain"); // MIME Type OutputModule aOutputModule = OutputFactory .getOutputModule("simple"); PrintWriter pw = new PrintWriter(System.out); aOutputModule.produceOutput(aOutputFormater, mapOfStringObject, null, pw); pw.flush(); } catch (Exception e) { e.printStackTrace(); } } } --- NEW FILE: TaskTest.java --- /** * */ package org.w3c.unicorn.tests; import java.io.File; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import org.apache.xmlbeans.XmlException; import org.w3.unicorn.tasklist.TaskType; import org.w3.unicorn.tasklist.TasklistDocument; import org.w3c.unicorn.exceptions.UnknownObserverException; import org.w3c.unicorn.tasklist.Task; import org.w3c.unicorn.tasklist.TaskListUnmarshallerBeans; /** * @author shenril * */ public class TaskTest { /** * @param args * @throws UnknownObserverException */ public static void main(String[] args) throws UnknownObserverException { try { TasklistDocument tasklist = TasklistDocument.Factory .parse(new File("./resources/tasklist/new-tasklist.xml")); TaskListUnmarshallerBeans unmarshaller = new TaskListUnmarshallerBeans(); Task aTask = new Task(); aTask.setTree(unmarshaller.expandTree(tasklist.getTasklist().getTaskArray(0), tasklist.getTasklist().getTaskArray(0).getRoutine())); Map<String, Task> mapOfTask = new LinkedHashMap<String, Task>(); for (TaskType myTask : tasklist.getTasklist().getTaskList()) { Task bTask = new Task(); aTask.setTree(unmarshaller.expandTree(myTask, myTask.getRoutine())); mapOfTask.put(bTask.getID(), bTask); } aTask.setTree(aTask.expandNode(mapOfTask, aTask.getTree())); aTask.displayTree(aTask.getTree()); } catch (XmlException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (UnknownObserverException e) { e.printStackTrace(); } } } --- NEW FILE: CommandLine.java --- // $Id: CommandLine.java,v 1.2 2009/08/28 12:39:58 jean-gui Exp $ // Author: Damien LEROY. // (c) COPYRIGHT MIT, ERCIM ant Keio, 2006. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.unicorn.tests; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.unicorn.UnicornCall; import org.w3c.unicorn.contract.EnumInputMethod; import org.w3c.unicorn.output.EnumOutputModule; import org.w3c.unicorn.output.OutputFactory; import org.w3c.unicorn.output.OutputModule; /** * Class to call the framework by command line. * * @author Damien LEROY */ public class CommandLine { private static final Log logger = LogFactory .getLog("org.w3c.unicorn.tests"); private static String sTaskID = "all"; private static Map<String, String[]> mapOfParameter = new LinkedHashMap<String, String[]>(); private static EnumInputMethod aEnumInputMethod = null; private static String sEnumInputMethodValue = null; private static OutputModule aOutputModule = null; /** * Launches the Unicorn Framework. * * @param args * @throws Exception */ public static void main(String[] args) throws Exception { CommandLine.logger.trace("Unicorn Framework Begin."); CommandLine.logger.info("Read command-line arguments."); for (int i = 0; i < args.length; i++) { if (CommandLine.logger.isDebugEnabled()) { CommandLine.logger.debug("Argument : " + args[i] + "."); } if ("-task".equals(args[i])) { i++; CommandLine.sTaskID = args[i]; if (CommandLine.logger.isDebugEnabled()) { CommandLine.logger.debug("Task : " + CommandLine.sTaskID + "."); } } else if ("-inputmethod".equals(args[i])) { i++; String[] tString = args[i].split("="); CommandLine.aEnumInputMethod = EnumInputMethod .fromValue(tString[0]); if (2 <= tString.length) { CommandLine.sEnumInputMethodValue = tString[1]; } if (CommandLine.logger.isDebugEnabled()) { CommandLine.logger.debug("Input method : " + CommandLine.aEnumInputMethod.toString() + ", value : " + CommandLine.sEnumInputMethodValue + "."); } } else if ("-outputmethod".equals(args[i])) { i++; String sOutputMethod = args[i]; final EnumOutputModule aEnumOutputModule = EnumOutputModule .fromValue(sOutputMethod); if (null == aEnumOutputModule) { CommandLine.logger.error("Unknow output method : " + sOutputMethod + "."); return; } CommandLine.aOutputModule = OutputFactory .getOutputModule(aEnumOutputModule); } else if (args[i].contains("=")) { String[] tString = args[i].split("="); String[] val = { tString[1] }; CommandLine.mapOfParameter.put(tString[0], val); } } if (null == CommandLine.aEnumInputMethod) { CommandLine.logger.error("No input method specified."); return; } if (null == CommandLine.aOutputModule) { CommandLine.logger .info("No output method specified use SimpleOutputModule by default."); CommandLine.aOutputModule = OutputFactory .getOutputModule(EnumOutputModule.SIMPLE); } if (EnumInputMethod.DIRECT.equals(CommandLine.aEnumInputMethod)) { // read on standard input and add to Main.eimValue String sEnumInputMethodValue = ""; for (int i = System.in.read(); -1 != i; i = System.in.read()) { sEnumInputMethodValue += (char) i; } if (CommandLine.logger.isDebugEnabled()) { CommandLine.logger.debug("Direct Input :\n" + sEnumInputMethodValue); } CommandLine.sEnumInputMethodValue = sEnumInputMethodValue; } CommandLine.logger.info("Initialize framework."); UnicornCall aUnicornCall = new UnicornCall(); aUnicornCall.setTask(CommandLine.sTaskID); aUnicornCall.setEnumInputMethod(CommandLine.aEnumInputMethod); // CommandLine.sEnumInputMethodValue aUnicornCall.setMapOfStringParameter(CommandLine.mapOfParameter); if (CommandLine.logger.isDebugEnabled()) { CommandLine.logger.debug("UnicornCall : " + aUnicornCall + "."); } CommandLine.logger.info("Process request."); // Main.mapOfParameter.put("warning", "2"); aUnicornCall.doTask(); CommandLine.logger.trace("Unicorn Framework End."); } } --- NEW FILE: XMLBeansTest.java --- // $Id: XMLBeansTest.java,v 1.2 2009/08/28 12:39:59 jean-gui Exp $ // Author: Jean-Guilhem Rouel // (c) COPYRIGHT MIT, ERCIM and Keio, 2006. // Please first read the full copyright statement in file COPYRIGHT.html package org.w3c.unicorn.tests; import java.io.IOException; import org.apache.xmlbeans.XmlException; import org.w3.unicorn.observationresponse.ObservationresponseDocument; /** * XmlBeansTest<br /> * Created: Jun 26, 2006 12:05:50 PM<br /> * * @author Batard Florent */ public class XMLBeansTest { public static void main(String[] args) throws XmlException, IOException { // Bind the instance to the generated XMLBeans types. ObservationresponseDocument ObsDoc = null; try { ObsDoc = ObservationresponseDocument.Factory .parse(new java.io.File("./target.xml")); } catch (XmlException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ObservationresponseDocument.Observationresponse obs = ObsDoc .getObservationresponse(); // Get and print pieces of the XML instance. System.out.println(obs.getResult().getErrors().getErrorlistArray(0) .getErrorArray(0).getLongmessageArray(0)); System.out.println(obs.getResult().getErrors().getErrorlistArray(0) .getErrorArray(0).getMessageArray(0)); } } --- NEW FILE: UnicornClientDirectInputTest.java --- package org.w3c.unicorn.tests; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import org.w3c.unicorn.UnicornCall; import org.w3c.unicorn.contract.EnumInputMethod; import org.w3c.unicorn.output.OutputFactory; import org.w3c.unicorn.output.OutputFormater; import org.w3c.unicorn.output.OutputModule; import org.w3c.unicorn.util.Property; public class UnicornClientDirectInputTest { public static void main(String[] args) { UnicornCall aUnicornCall = new UnicornCall(); aUnicornCall.setTask("css"); // task id aUnicornCall.setEnumInputMethod(EnumInputMethod.DIRECT); aUnicornCall.setLang("en"); aUnicornCall .setDocumentName("D:/stageW3C/unicorn/style/base_result.css"); Map<String, String[]> mapOfParameter = new LinkedHashMap<String, String[]>(); String[] tmp = { "text/css" }; mapOfParameter.put(Property.get("UNICORN_PARAMETER_PREFIX") + "mime", tmp); aUnicornCall.setMapOfStringParameter(mapOfParameter); aUnicornCall .setInputParameterValue("p#msie { /* msie-bug note for text/plain */ float: right; border: 1px solid black; background: white;}"); try { aUnicornCall.doTask(); Map<String, Object> mapOfStringObject = new LinkedHashMap<String, Object>(); mapOfStringObject.put("unicorncall", aUnicornCall); OutputFormater aOutputFormater = OutputFactory.getOutputFormater( "text10", // le template --> text ou xhtml10, see // unicorn.properties "en", // la langue "text/plain"); // MIME Type OutputModule aOutputModule = OutputFactory .getOutputModule("simple"); PrintWriter pw = new PrintWriter(System.out); aOutputModule.produceOutput(aOutputFormater, mapOfStringObject, null, pw); pw.flush(); } catch (Exception e) { e.printStackTrace(); } } }
Received on Friday, 28 August 2009 12:40:10 UTC