You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2009/08/18 20:10:47 UTC
svn commit: r805519 [8/9] - in /ofbiz/branches/executioncontext20090812: ./
applications/accounting/config/ applications/accounting/data/
applications/accounting/data/helpdata/
applications/accounting/script/org/ofbiz/accounting/finaccount/
application...
Added: ofbiz/branches/executioncontext20090812/framework/testtools/dtd/SeleniumXml.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/dtd/SeleniumXml.xsd?rev=805519&view=auto
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/dtd/SeleniumXml.xsd (added)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/dtd/SeleniumXml.xsd Tue Aug 18 18:10:44 2009
@@ -0,0 +1,507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <!--
+ ==================================================
+ ========== Element and Attribute definitions for
+ ========== SeleniumXml project ===================
+ ==================================================
+ -->
+ <xs:group name="AllCommands"><!-- All SeleniumXml command which normally match with the SeleniumRC Java API. -->
+ <xs:choice>
+ <xs:element ref="testcase" />
+ <xs:element ref="type" />
+ <xs:element ref="loadData" />
+ <xs:element ref="selectPopup" />
+ <xs:element ref="getAllWindowIds" />
+ <xs:element ref="captureTextInPage" />
+ <xs:element ref="getSelectedLabel" />
+ <xs:element ref="getSelectedValue" />
+ <xs:element ref="getSelectedId" />
+ <xs:element ref="assertContains" />
+ <xs:element ref="getHtmlSource" />
+ <xs:element ref="getBodyText" />
+ <xs:element ref="print" />
+ <xs:element ref="waitForPageToLoad" />
+ <xs:element ref="getSelectedIds" />
+ <xs:element ref="copy" />
+ <xs:element ref="append" />
+ <xs:element ref="open" />
+ <xs:element ref="click" />
+ <xs:element ref="select" />
+ <xs:element ref="uniqueId" />
+ <xs:element ref="randomAlphaString" />
+ <xs:element ref="randomString" />
+ <xs:element ref="setSpeed" />
+ </xs:choice>
+ </xs:group>
+
+
+ <xs:element name="testcase">
+ <xs:annotation>
+ <xs:documentation></xs:documentation>
+ </xs:annotation>
+
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllCommands"/>
+ </xs:sequence>
+
+ <xs:attributeGroup ref="attlist.name-value" />
+ <xs:attribute name="LABEL" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="type" >
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.name-value"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="loadData">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.file"/>
+ <xs:attributeGroup ref="attlist.loadData"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="selectPopup">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.selectPopup"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getAllWindowIds">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.getAllWindowIds"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="captureTextInPage">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.captureTextInPage"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getSelectedLabel">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.getSelectedLabel"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getSelectedValue">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllCommands"/>
+ <xs:attributeGroup ref="attlist.getSelectedLabel"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getSelectedId">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.getSelectedLabel"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="assertContains">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.assertContains"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getHtmlSource">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.out"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getBodyText">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.out"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="print">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.print"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="waitForPageToLoad">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.print"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getSelectedIds">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.print"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="copy">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.copy"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="append">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.append"/>
+ <xs:attributeGroup ref="attlist.out"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="open">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.print"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="click">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.locator"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="select">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.option"/>
+ <xs:attributeGroup ref="attlist.locator"/>
+ </xs:complexType>
+ </xs:element>
+
+
+ <xs:element name="uniqueId">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.out"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="randomAlphaString">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.out"/>
+ <xs:attributeGroup ref="attlist.size-prefix"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="randomString">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.out"/>
+ <xs:attributeGroup ref="attlist.size-prefix"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="setSpeed">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attlist.print"/>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- +++++++++++++++++++++++++++++++++++++++++++ -->
+ <!-- Attribute Lists for all Element definitions -->
+ <!-- +++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:attributeGroup name="attlist.file">
+ <xs:attribute type="xs:string" name="file" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.name-value">
+ <xs:attribute type="xs:string" name="name" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="value" use="required">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.loadData">
+ <xs:attribute type="xs:string" name="iterations" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.selectPopup">
+ <xs:attribute type="xs:string" name="locator" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="timeout" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.getAllWindowIds">
+ <xs:attribute type="xs:string" name="winIds" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="winNames" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.captureTextInPage">
+ <xs:attribute type="xs:string" name="regex" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="group" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="results" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.getSelectedLabel">
+ <xs:attribute type="xs:string" name="locator" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="out" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.assertContains">
+ <xs:attribute type="xs:string" name="src" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="test" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.out">
+ <xs:attribute type="xs:string" name="out" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.print">
+ <xs:attribute type="xs:string" name="value" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.copy">
+ <xs:attribute type="xs:string" name="to" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="from" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.append">
+ <xs:attribute type="xs:string" name="src1" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="src2" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.option">
+ <xs:attribute type="xs:string" name="option" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.locator">
+ <xs:attribute type="xs:string" name="locator" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attlist.size-prefix">
+ <xs:attribute type="xs:string" name="size" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute type="xs:string" name="prefix" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+</xs:schema>
Added: ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.bat
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.bat?rev=805519&view=auto
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.bat (added)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.bat Tue Aug 18 18:10:44 2009
@@ -0,0 +1 @@
+java -jar ../../framework/testtools/lib/selenium-server.jar -timeout 240
Added: ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.sh
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.sh?rev=805519&view=auto
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.sh (added)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumServer.sh Tue Aug 18 18:10:44 2009
@@ -0,0 +1,11 @@
+#!/bin/sh
+# location of java executable
+if [ -f "$JAVA_HOME/bin/java" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+else
+ JAVA=java
+fi
+
+"$JAVA" -jar ../../framework/testtools/lib/selenium-server.jar -timeout 240
+exit 0
+
Added: ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.bat
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.bat?rev=805519&view=auto
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.bat (added)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.bat Tue Aug 18 18:10:44 2009
@@ -0,0 +1,14 @@
+rem set JAVA_HOME=%JDK_15%
+set OFBIZ_HOME=../..
+set CP=./build/lib/ofbiz-testtools.jar
+set CP=%CP%;./lib/httpclient-4.0-beta1.jar
+set CP=%CP%;./lib/selenium-java-client-driver.jar
+set CP=%CP%;%OFBIZ_HOME%/framework/base/lib/jdom-1.1.jar
+set CP=%CP%;%OFBIZ_HOME%/framework/base/lib/scripting/jython-nooro.jar
+set CP=%CP%;%OFBIZ_HOME%/framework/base/lib/junit.jar
+set CP=%CP%;%OFBIZ_HOME%/framework/base/lib/commons/commons-lang-2.3.jar
+set CP=%CP%;%OFBIZ_HOME%/framework/base/lib/log4j-1.2.15.jar
+
+echo %CP%
+
+"%JAVA_HOME%/bin/java.exe" -Dselenium.config=./config/seleniumXml.properties -cp %CP% org.ofbiz.testtools.seleniumxml.SeleniumXml %1
Added: ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.sh
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.sh?rev=805519&view=auto
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.sh (added)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/runSeleniumXml.sh Tue Aug 18 18:10:44 2009
@@ -0,0 +1,26 @@
+#!/bin/sh
+# export JAVA_HOME=$JDK_15
+export OFBIZ_HOME=../..
+export CP=./build/lib/ofbiz-testtools.jar
+export CP=$CP:./lib/httpclient-4.0-beta1.jar
+export CP=$CP:./lib/selenium-java-client-driver.jar
+export CP=$CP:$OFBIZ_HOME/framework/base/lib/jdom-1.1.jar
+export CP=$CP:$OFBIZ_HOME/framework/base/lib/scripting/jython-nooro.jar
+export CP=$CP:$OFBIZ_HOME/framework/base/lib/junit.jar
+export CP=$CP:$OFBIZ_HOME/framework/base/lib/commons/commons-lang-2.3.jar
+export CP=$CP:$OFBIZ_HOME/framework/base/lib/log4j-1.2.15.jar
+
+echo $CP
+
+if [ -f "$JAVA_HOME/bin/java" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+else
+ JAVA=java
+fi
+
+"$JAVA" -Dselenium.config=./config/seleniumXml.properties -cp $CP org.ofbiz.testtools.seleniumxml.SeleniumXml $1;
+
+
+
+
+
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoader.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoader.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoader.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoader.java Tue Aug 18 18:10:44 2009
@@ -31,40 +31,40 @@
public class DataLoader {
- private String file;
- private String iterations;
- private SeleniumXml parent;
- private SeleniumXml currentTest;
- private List children;
+ private String file;
+ private String iterations;
+ private SeleniumXml parent;
+ private SeleniumXml currentTest;
+ private List children;
- private int currentRowIndx;
+ private int currentRowIndx;
- //Objects initialized from csvreader script.
- private PyDictionary fieldNameMap;
- private PyList dataList;
- private PyList fieldNames;
+ //Objects initialized from csvreader script.
+ private PyDictionary fieldNameMap;
+ private PyList dataList;
+ private PyList fieldNames;
- public DataLoader(String file, String iterations, SeleniumXml parent, List<Element> children) {
- super();
- this.file = file;
- this.iterations = iterations;
- this.parent = parent;
- this.children = children;
- initData();
- }
+ public DataLoader(String file, String iterations, SeleniumXml parent, List<Element> children) {
+ super();
+ this.file = file;
+ this.iterations = iterations;
+ this.parent = parent;
+ this.children = children;
+ initData();
+ }
- private void initData() {
- // Run the python script
- // Read header and get record count
- PythonInterpreter interp = InitJython.getInterpreter();
+ private void initData() {
+ // Run the python script
+ // Read header and get record count
+ PythonInterpreter interp = InitJython.getInterpreter();
- Map map = new HashMap();
- map.put("file", this.file);
- interp.set("params", map);
+ Map map = new HashMap();
+ map.put("file", this.file);
+ interp.set("params", map);
interp.exec("from csvreader import CSVReader");
String cmd = "reader = CSVReader('" + this.file + "')";
interp.exec(cmd);
@@ -78,43 +78,43 @@
//this.dataList = (PyArray) map.get("dataList");
//this.fieldNames = (PyDictionary) map.get("fieldNames");
- }
+ }
- private void next() {
- this.currentRowIndx = (this.currentRowIndx + 1) % this.dataList.__len__();
- }
-
- private void loadData() {
-
- int size = this.fieldNames.__len__();
- for(int i=0; i<size; i++ ) {
- PyObject name = this.fieldNames.__getitem__(i);
- PyObject valueList = this.dataList.__getitem__(this.currentRowIndx);
- PyObject columnIndx = this.fieldNameMap.__getitem__(name);
- Integer convIndx = (Integer) columnIndx.__tojava__(Integer.class);
- //int convIndx = Integer.parseInt((String) columnIndx.__tojava__(String.class));
- PyObject value = valueList.__getitem__(convIndx);
- this.currentTest.addParam((String) name.__tojava__(String.class), (String) value.__tojava__(String.class));
- }
-
- }
-
- public void runTest() {
-
- //Depending on the iteration instruction repeat the following until complete
- int iter = Integer.parseInt(this.iterations);
-
- //Iterate through entire list of data
- if(iter == -1) {
- iter = this.dataList.__len__();
- }
-
- this.currentTest = new SeleniumXml(this.parent);
- for( int i=0; i<iter; i++) {
- loadData();
- currentTest.runCommands(this.children);
- next();
- }
+ private void next() {
+ this.currentRowIndx = (this.currentRowIndx + 1) % this.dataList.__len__();
+ }
+
+ private void loadData() {
+
+ int size = this.fieldNames.__len__();
+ for(int i=0; i<size; i++) {
+ PyObject name = this.fieldNames.__getitem__(i);
+ PyObject valueList = this.dataList.__getitem__(this.currentRowIndx);
+ PyObject columnIndx = this.fieldNameMap.__getitem__(name);
+ Integer convIndx = (Integer) columnIndx.__tojava__(Integer.class);
+ //int convIndx = Integer.parseInt((String) columnIndx.__tojava__(String.class));
+ PyObject value = valueList.__getitem__(convIndx);
+ this.currentTest.addParam((String) name.__tojava__(String.class), (String) value.__tojava__(String.class));
+ }
+
+ }
+
+ public void runTest() {
+
+ //Depending on the iteration instruction repeat the following until complete
+ int iter = Integer.parseInt(this.iterations);
+
+ //Iterate through entire list of data
+ if (iter == -1) {
+ iter = this.dataList.__len__();
+ }
+
+ this.currentTest = new SeleniumXml(this.parent);
+ for(int i=0; i<iter; i++) {
+ loadData();
+ currentTest.runCommands(this.children);
+ next();
+ }
- }
+ }
}
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoop.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoop.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoop.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/DataLoop.java Tue Aug 18 18:10:44 2009
@@ -35,23 +35,23 @@
private String dataListName;
private SeleniumXml parent;
- private SeleniumXml currentTest;
- private List children;
-
- private int currentRowIndx;
-
-
-
- public DataLoop(String dataListName, SeleniumXml parent, List<Element> children) {
- super();
- this.dataListName = dataListName;
- this.parent = parent;
- this.children = children;
- }
+ private SeleniumXml currentTest;
+ private List children;
+
+ private int currentRowIndx;
+
+
+
+ public DataLoop(String dataListName, SeleniumXml parent, List<Element> children) {
+ super();
+ this.dataListName = dataListName;
+ this.parent = parent;
+ this.children = children;
+ }
- public void runTest() {
+ public void runTest() {
- this.currentTest = new SeleniumXml(this.parent);
+ this.currentTest = new SeleniumXml(this.parent);
Map dataMap = this.parent.getMap();
List dataList = (List)dataMap.get(this.dataListName);
Iterator iter = dataList.iterator();
@@ -60,14 +60,14 @@
// TODO, WARNING - these name could collide with names already in the test context
Set eSet = mp.entrySet();
Iterator iter2 = eSet.iterator();
- while(iter2.hasNext()) {
+ while (iter2.hasNext()) {
Map.Entry entry = (Map.Entry)iter2.next();
String name = (String)entry.getKey();
Object value = entry.getValue();
dataMap.put(name, value);
}
- currentTest.runCommands(this.children);
- }
-
- }
+ currentTest.runCommands(this.children);
+ }
+
+ }
}
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/GroovyRunner.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/GroovyRunner.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/GroovyRunner.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/GroovyRunner.java Tue Aug 18 18:10:44 2009
@@ -37,21 +37,21 @@
public class GroovyRunner {
- private String urlName;
- private SeleniumXml parent;
- private SeleniumXml currentTest;
-
- private int currentRowIndx;
+ private String urlName;
+ private SeleniumXml parent;
+ private SeleniumXml currentTest;
+
+ private int currentRowIndx;
public static GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
-
-
- public GroovyRunner(String urlName, SeleniumXml parent) {
- super();
- this.urlName = urlName;
- this.parent = parent;
- }
+
+
+ public GroovyRunner(String urlName, SeleniumXml parent) {
+ super();
+ this.urlName = urlName;
+ this.parent = parent;
+ }
- public void runTest() {
+ public void runTest() {
Map map = this.parent.getMap();
map.put("url", this.urlName);
@@ -63,13 +63,13 @@
binding.setVariable("context", map);
binding.setVariable("seleniumXml", this.parent);
InvokerHelper.createScript(scriptClass, binding).run();
- } catch(MalformedURLException e) {
+ } catch (MalformedURLException e) {
System.out.println("Scriptrunner, runTest, MalformedURLException error: " + e.getMessage());
- } catch(IOException e) {
+ } catch (IOException e) {
System.out.println("Scriptrunner, runTest, IOException error: " + e.getMessage());
}
-
- }
+
+ }
}
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/InitJython.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/InitJython.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/InitJython.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/InitJython.java Tue Aug 18 18:10:44 2009
@@ -33,45 +33,45 @@
*/
public class InitJython {
-// public Logger logger = Logger.getLogger(InitJython.class.getName());
-
- private static PythonInterpreter SINGLETON;
-
- /** Only allow creation through the factory method */
- protected InitJython() {
-// logger.setLevel(Level.DEBUG);
- }
-
- /**
- * getInterpreter initializes the Python environment the first time. It then issues a
- * new Interpreter for each request.
- * @return PythonInterpreter
- */
- public static PythonInterpreter getInterpreter() {
-
- if (SINGLETON == null) {
- synchronized (InitJython.class) {
- Properties props = System.getProperties();
- //String ofbizHome = props.getProperty("ofbiz.home");
-
- Properties pyProps = new Properties();
-
- if( props.getProperty("python.home") == null) {
- //pyProps.setProperty("python.home", "c:/devtools/jython2.2rc2");
- pyProps.setProperty("python.home", "c:/devtools/Python24");
- }
-
- //Debug.logInfo(props.toString(), module);
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
- PySystemState.initialize(props, pyProps, new String[0], loader);
-
- SINGLETON = new PythonInterpreter();
-
- SINGLETON.exec("import sys");
- SINGLETON.exec("sys.path.append(\"c:/dev/ag/seleniumXml/plugins\")");
- }
- }
-
- return SINGLETON;
+// public Logger logger = Logger.getLogger(InitJython.class.getName());
+
+ private static PythonInterpreter SINGLETON;
+
+ /** Only allow creation through the factory method */
+ protected InitJython() {
+// logger.setLevel(Level.DEBUG);
+ }
+
+ /**
+ * getInterpreter initializes the Python environment the first time. It then issues a
+ * new Interpreter for each request.
+ * @return PythonInterpreter
+ */
+ public static PythonInterpreter getInterpreter() {
+
+ if (SINGLETON == null) {
+ synchronized (InitJython.class) {
+ Properties props = System.getProperties();
+ //String ofbizHome = props.getProperty("ofbiz.home");
+
+ Properties pyProps = new Properties();
+
+ if (props.getProperty("python.home") == null) {
+ //pyProps.setProperty("python.home", "c:/devtools/jython2.2rc2");
+ pyProps.setProperty("python.home", "c:/devtools/Python24");
+ }
+
+ //Debug.logInfo(props.toString(), module);
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ PySystemState.initialize(props, pyProps, new String[0], loader);
+
+ SINGLETON = new PythonInterpreter();
+
+ SINGLETON.exec("import sys");
+ SINGLETON.exec("sys.path.append(\"c:/dev/ag/seleniumXml/plugins\")");
+ }
+ }
+
+ return SINGLETON;
}
}
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/JythonRunner.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/JythonRunner.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/JythonRunner.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/JythonRunner.java Tue Aug 18 18:10:44 2009
@@ -38,20 +38,20 @@
public class JythonRunner {
- private String urlName;
- private SeleniumXml parent;
- private SeleniumXml currentTest;
-
- private int currentRowIndx;
-
-
- public JythonRunner(String urlName, SeleniumXml parent) {
- super();
- this.urlName = urlName;
- this.parent = parent;
- }
+ private String urlName;
+ private SeleniumXml parent;
+ private SeleniumXml currentTest;
+
+ private int currentRowIndx;
+
+
+ public JythonRunner(String urlName, SeleniumXml parent) {
+ super();
+ this.urlName = urlName;
+ this.parent = parent;
+ }
- public void runTest() {
+ public void runTest() {
PythonInterpreter interp = InitJython.getInterpreter();
@@ -61,13 +61,13 @@
String scriptText = TestUtils.readUrlText(this.urlName);
interp.set("context", map);
interp.exec(scriptText);
- } catch(MalformedURLException e) {
+ } catch (MalformedURLException e) {
System.out.println("Scriptrunner, runTest, MalformedURLException error: " + e.getMessage());
- } catch(IOException e) {
+ } catch (IOException e) {
System.out.println("Scriptrunner, runTest, IOException error: " + e.getMessage());
}
-
- }
+
+ }
}
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/RemoteRequest.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/RemoteRequest.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/RemoteRequest.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/RemoteRequest.java Tue Aug 18 18:10:44 2009
@@ -167,7 +167,7 @@
String paramString2 = "USERNAME=" + this.parent.getUserName()
+ "&PASSWORD=" + this.parent.getPassword();
String thisUri2 = this.host + "/eng/control/login?" + paramString2;
- HttpGet req2 = new HttpGet ( thisUri2 );
+ HttpGet req2 = new HttpGet (thisUri2);
req2.setHeader("Connection","Keep-Alive");
HttpResponse rsp = client.execute(req2, localContext);
@@ -202,11 +202,11 @@
String thisUri = this.host + this.requestUrl + ";jsessionid=" + sessionId + "?" + paramString;
//String thisUri = this.host + this.requestUrl + "?" + paramString;
System.out.println("thisUri: " + thisUri);
- HttpGet req = new HttpGet ( thisUri );
+ HttpGet req = new HttpGet (thisUri);
System.out.println("sessionHeader: " + sessionHeader);
req.setHeader(sessionHeader);
- String responseBody = client.execute( req, responseHandler, localContext);
+ String responseBody = client.execute(req, responseHandler, localContext);
/*
entity = rsp.getEntity();
@@ -222,9 +222,9 @@
System.out.println(EntityUtils.toString(rsp.getEntity()));
}
*/
- } catch(HttpResponseException e) {
+ } catch (HttpResponseException e) {
System.out.println(e.getMessage());
- } catch(IOException e) {
+ } catch (IOException e) {
System.out.println(e.getMessage());
} finally {
// If we could be sure that the stream of the entity has been
@@ -235,7 +235,7 @@
try {
if (entity != null)
entity.consumeContent(); // release connection gracefully
- } catch(IOException e) {
+ } catch (IOException e) {
System.out.println("in 'finally' " + e.getMessage());
}
@@ -248,7 +248,7 @@
String paramString = "USERNAME=" + this.parent.getUserName()
+ "&PASSWORD=" + this.parent.getPassword();
String thisUri = this.host + "/eng/control/login?" + paramString;
- HttpGet req = new HttpGet ( thisUri );
+ HttpGet req = new HttpGet (thisUri);
req.setHeader("Connection","Keep-Alive");
client.execute(req, localContext);
@@ -312,8 +312,8 @@
String bodyString = super.handleResponse(response);
JSONObject jsonObject = null;
try {
- jsonObject = JSONObject.fromObject( bodyString );
- } catch(JSONException e) {
+ jsonObject = JSONObject.fromObject(bodyString);
+ } catch (JSONException e) {
throw new HttpResponseException(0, e.getMessage());
}
Set<Map.Entry<String, String>> paramSet = this.parentRemoteRequest.outMap.entrySet();
Modified: ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/SeleniumIDEConverter.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/SeleniumIDEConverter.java?rev=805519&r1=805518&r2=805519&view=diff
==============================================================================
--- ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/SeleniumIDEConverter.java (original)
+++ ofbiz/branches/executioncontext20090812/framework/testtools/src/org/ofbiz/testtools/seleniumxml/SeleniumIDEConverter.java Tue Aug 18 18:10:44 2009
@@ -42,142 +42,142 @@
public class SeleniumIDEConverter {
- private Document ideFile;
- private Element xmlDestRoot;
+ private Document ideFile;
+ private Element xmlDestRoot;
- private Namespace ns = Namespace.getNamespace("http://www.w3.org/1999/xhtml");
- private Map root;
+ private Namespace ns = Namespace.getNamespace("http://www.w3.org/1999/xhtml");
+ private Map root;
- public void convert(String ideFile, String xmlFile) throws JDOMException, IOException, SAXException, ParserConfigurationException {
+ public void convert(String ideFile, String xmlFile) throws JDOMException, IOException, SAXException, ParserConfigurationException {
- readInputFile(ideFile);
-
- convertIDECommands();
-
- createSeleniumXml(xmlFile);
- }
-
-
- private void readInputFile(String input) throws JDOMException, IOException, SAXException, ParserConfigurationException {
-
- File xmlFile = new File(input);
- SAXBuilder builder = new SAXBuilder();
- this.ideFile = builder.build(xmlFile);
-
- //this.root = new HashMap();
- //this.root.put("doc", freemarker.ext.dom.NodeModel.parse(xmlFile));
- }
-
-
- private void convertIDECommands() throws JDOMException {
-
- //XPath path = XPath.newInstance("html/body/table/tbody");
- Element root = this.ideFile.getRootElement();
-
- this.xmlDestRoot = new Element("testcase");
-
- //TODO: there must be a better way to do this with JDom
- Element e1 = root.getChild("body",ns);
- Element e2 = e1.getChild("table",ns);
- Element e3 = e2.getChild("tbody",ns);
- List<Element> list = e3.getChildren("tr", ns);
- List<Element> commands = root.getChild("body",ns).getChild("table",ns).getChild("tbody",ns).getChildren("tr", ns);
- for(Element elem: commands) {
- processIDECommand(elem);
- }
-
- }
-
- private void processIDECommand(Element elem) throws JDOMException {
-
-
- List<Element> cmd = elem.getChildren("td", ns);
- Element cmdElem = cmd.get(0);
-
- String cmdToCompare = cmdElem.getValue();
- System.out.println("Checking for cmd: " + cmdToCompare);
- if("clickAndWait".compareTo(cmdElem.getValue()) == 0 ) {
- System.out.println("Found clickAndWait");
- this.xmlDestRoot.addContent( buildCommand("click", "locator", cmd.get(1).getValue(), null, null) );
- this.xmlDestRoot.addContent( buildCommand("waitForPageToLoad", "value", "10000", null, null) );
-
- } else if("type".compareTo( cmdElem.getValue()) == 0 ) {
- System.out.println("Found type");
- this.xmlDestRoot.addContent ( buildCommand("type", "name", cmd.get(1).getValue(), "value", cmd.get(2).getValue()) );
-
- } else if("select".compareTo(cmdElem.getValue()) == 0 ) {
- System.out.println("Found select");
- this.xmlDestRoot.addContent( buildCommand("select", "locator", cmd.get(1).getValue(), "option", cmd.get(2).getValue()) );
-
- } else if("open".compareTo(cmdElem.getValue()) == 0 ) {
- System.out.println("Found open");
- this.xmlDestRoot.addContent( buildCommand("open", "value", cmd.get(1).getValue(), null, null) );
-
- } else if("click".compareTo(cmdElem.getValue()) == 0 ) {
- Element newCmd = new Element("click");
- newCmd.setAttribute("locator", cmd.get(1).getValue());
- this.xmlDestRoot.addContent(newCmd);
-
- } else if("doubleClick".compareTo(cmdElem.getValue()) == 0 ) {
- Element newCmd = new Element("doubleClick");
- newCmd.setAttribute("locator", cmd.get(1).getValue());
- this.xmlDestRoot.addContent(newCmd);
-
- } else {
- System.out.println("WARNING: No definition for " + cmdElem.getValue() + " defaulting to us 'reflection'.");
- Element newCmd = new Element(cmdElem.getValue());
- //List attributes = cmdElem.getAttributes();
- int size = cmd.size()-1;
- for(int i=1; i<size; i++ ) {
- String paramValue = cmd.get(i).getValue();
- System.out.println("param" + (i) + " :" + paramValue);
- newCmd.setAttribute("param" + (i), paramValue );
- }
- this.xmlDestRoot.addContent(newCmd);
- }
-
- }
-
- private Element buildCommand(String name, String attrib1, String value1, String attrib2, String value2 ) {
-
- Element newCmd = new Element(name);
- if(attrib1 != null) {
- newCmd.setAttribute(attrib1, value1);
- }
- if(attrib2 != null) {
- newCmd.setAttribute(attrib2, value2);
- }
- return newCmd;
- }
- private void createSeleniumXml(String outputFile) {
-
- try {
- FileOutputStream out = new FileOutputStream(outputFile);
- XMLOutputter serializer = new XMLOutputter( Format.getPrettyFormat());
- serializer.output(this.xmlDestRoot, out);
- out.flush();
- out.close();
- } catch (IOException e) {
- System.err.println(e);
- }
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- if(args.length != 2) {
- System.out.println("Please include the source and destination file paths.");
- } else {
- SeleniumIDEConverter sel = new SeleniumIDEConverter();
- try {
- sel.convert(args[0], args[1]);
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
+ readInputFile(ideFile);
+
+ convertIDECommands();
+
+ createSeleniumXml(xmlFile);
+ }
+
+
+ private void readInputFile(String input) throws JDOMException, IOException, SAXException, ParserConfigurationException {
+
+ File xmlFile = new File(input);
+ SAXBuilder builder = new SAXBuilder();
+ this.ideFile = builder.build(xmlFile);
+
+ //this.root = new HashMap();
+ //this.root.put("doc", freemarker.ext.dom.NodeModel.parse(xmlFile));
+ }
+
+
+ private void convertIDECommands() throws JDOMException {
+
+ //XPath path = XPath.newInstance("html/body/table/tbody");
+ Element root = this.ideFile.getRootElement();
+
+ this.xmlDestRoot = new Element("testcase");
+
+ //TODO: there must be a better way to do this with JDom
+ Element e1 = root.getChild("body",ns);
+ Element e2 = e1.getChild("table",ns);
+ Element e3 = e2.getChild("tbody",ns);
+ List<Element> list = e3.getChildren("tr", ns);
+ List<Element> commands = root.getChild("body",ns).getChild("table",ns).getChild("tbody",ns).getChildren("tr", ns);
+ for(Element elem: commands) {
+ processIDECommand(elem);
+ }
+
+ }
+
+ private void processIDECommand(Element elem) throws JDOMException {
+
+
+ List<Element> cmd = elem.getChildren("td", ns);
+ Element cmdElem = cmd.get(0);
+
+ String cmdToCompare = cmdElem.getValue();
+ System.out.println("Checking for cmd: " + cmdToCompare);
+ if ("clickAndWait".compareTo(cmdElem.getValue()) == 0) {
+ System.out.println("Found clickAndWait");
+ this.xmlDestRoot.addContent(buildCommand("click", "locator", cmd.get(1).getValue(), null, null));
+ this.xmlDestRoot.addContent(buildCommand("waitForPageToLoad", "value", "10000", null, null));
+
+ } else if ("type".compareTo(cmdElem.getValue()) == 0 ) {
+ System.out.println("Found type");
+ this.xmlDestRoot.addContent (buildCommand("type", "name", cmd.get(1).getValue(), "value", cmd.get(2).getValue()));
+
+ } else if ("select".compareTo(cmdElem.getValue()) == 0) {
+ System.out.println("Found select");
+ this.xmlDestRoot.addContent(buildCommand("select", "locator", cmd.get(1).getValue(), "option", cmd.get(2).getValue()));
+
+ } else if ("open".compareTo(cmdElem.getValue()) == 0) {
+ System.out.println("Found open");
+ this.xmlDestRoot.addContent(buildCommand("open", "value", cmd.get(1).getValue(), null, null));
+
+ } else if ("click".compareTo(cmdElem.getValue()) == 0) {
+ Element newCmd = new Element("click");
+ newCmd.setAttribute("locator", cmd.get(1).getValue());
+ this.xmlDestRoot.addContent(newCmd);
+
+ } else if ("doubleClick".compareTo(cmdElem.getValue()) == 0) {
+ Element newCmd = new Element("doubleClick");
+ newCmd.setAttribute("locator", cmd.get(1).getValue());
+ this.xmlDestRoot.addContent(newCmd);
+
+ } else {
+ System.out.println("WARNING: No definition for " + cmdElem.getValue() + " defaulting to us 'reflection'.");
+ Element newCmd = new Element(cmdElem.getValue());
+ //List attributes = cmdElem.getAttributes();
+ int size = cmd.size()-1;
+ for(int i=1; i<size; i++) {
+ String paramValue = cmd.get(i).getValue();
+ System.out.println("param" + (i) + " :" + paramValue);
+ newCmd.setAttribute("param" + (i), paramValue);
+ }
+ this.xmlDestRoot.addContent(newCmd);
+ }
+
+ }
+
+ private Element buildCommand(String name, String attrib1, String value1, String attrib2, String value2) {
+
+ Element newCmd = new Element(name);
+ if (attrib1 != null) {
+ newCmd.setAttribute(attrib1, value1);
+ }
+ if (attrib2 != null) {
+ newCmd.setAttribute(attrib2, value2);
+ }
+ return newCmd;
+ }
+ private void createSeleniumXml(String outputFile) {
+
+ try {
+ FileOutputStream out = new FileOutputStream(outputFile);
+ XMLOutputter serializer = new XMLOutputter(Format.getPrettyFormat());
+ serializer.output(this.xmlDestRoot, out);
+ out.flush();
+ out.close();
+ } catch (IOException e) {
+ System.err.println(e);
+ }
+ }
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+ // TODO Auto-generated method stub
+ if (args.length != 2) {
+ System.out.println("Please include the source and destination file paths.");
+ } else {
+ SeleniumIDEConverter sel = new SeleniumIDEConverter();
+ try {
+ sel.convert(args[0], args[1]);
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
}