KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > test > web > WebUnitSuite


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.test.web;
6
7 import java.util.* ;
8 import org.apache.commons.lang.StringUtils;
9 import org.exoplatform.test.web.unit.ClickLinkWithText;
10 import org.exoplatform.test.web.unit.WebUnit;
11 /**
12  * May 21, 2004
13  * @author: Tuan Nguyen
14  * @email: tuan08@users.sourceforge.net
15  * @version: $Id: WebUnitSuite.java,v 1.1 2004/10/11 23:36:04 tuan08 Exp $
16  **/

17 abstract public class WebUnitSuite {
18   final static private int NAME_COLUMN = 30 ;
19   final static private int COUNTER_COLUMN = 8 ;
20   final static private int ERROR_COLUMN = 8 ;
21   final static private int MALFORMED_COLUMN = 10 ;
22   final static private int AVG_TIME_COLUMN = 10 ;
23   final static private int CONTENT_LENGTH_COLUMN = 10 ;
24   final static private int SUM_CONTENT_LENGTH_COLUMN = 10 ;
25   
26   final static public int NOT_RUN_STATUS = 0 ;
27   final static public int OK_STATUS = 1 ;
28   final static public int ERROR_STATUS = 2 ;
29   final static public int IGNORE_STATUS = 3 ;
30   
31   private List units_ ;
32   private String JavaDoc name_ ;
33   private String JavaDoc description_ ;
34   private int status_ = NOT_RUN_STATUS ;
35   
36   public WebUnitSuite() {
37   }
38   
39   public WebUnitSuite(String JavaDoc name, String JavaDoc description) {
40     name_ = name ;
41     description_ = description ;
42     units_ = new ArrayList() ;
43   }
44   
45   public int getStatus() { return status_ ; }
46   public void setStatus(int status) { status_ = status ; }
47   
48   public void goToPage(String JavaDoc path) {
49     String JavaDoc[] links = StringUtils.split(path, "/") ;
50     for(int i = 0; i < links.length; i++) {
51         addWebUnit(new ClickLinkWithText("GoTo:" + links[i], "Go to " + links[i] + "page").
52                        setTextLink(links[i])) ;
53     }
54   }
55   
56   public String JavaDoc getName() { return name_ ; }
57   public String JavaDoc getDescription() { return description_ ; }
58   
59   public List getWebUnits() { return units_ ; }
60
61   protected void addWebUnit(WebUnit unit) {
62     units_.add(unit) ;
63   }
64   
65   protected void add(WebUnit unit) {
66     units_.add(unit) ;
67   }
68   
69   public void reset() {
70     if(getStatus() == WebUnitSuite.IGNORE_STATUS) return ;
71     status_ = NOT_RUN_STATUS ;
72     for(int i = 0; i < units_.size() ; i++) {
73       WebUnit unit = (WebUnit) units_.get(i) ;
74       unit.reset() ;
75     }
76   }
77   
78   private void appendColumn(StringBuffer JavaDoc b, String JavaDoc value, int width) {
79     b.append(value) ;
80     for(int i = 0; i < width- value.length(); i++) {
81       b.append(" ") ;
82     }
83   }
84   
85   public String JavaDoc getTextSummary() {
86     StringBuffer JavaDoc b = new StringBuffer JavaDoc(5000) ;
87     b.append("Suite Name: ").append(name_).append("\n");
88     b.append("Description: ").append(description_).append("\n");
89     appendColumn(b, "Unit Name", NAME_COLUMN) ;
90     appendColumn(b, "Counter", COUNTER_COLUMN) ;
91     appendColumn(b, "Error", ERROR_COLUMN) ;
92     appendColumn(b, "Malformed", MALFORMED_COLUMN) ;
93     appendColumn(b, "Avg(ms)", AVG_TIME_COLUMN) ;
94     appendColumn(b, "Avg(kb)", CONTENT_LENGTH_COLUMN) ;
95     appendColumn(b, "Sum(kb)", SUM_CONTENT_LENGTH_COLUMN) ;
96     b.append("\n") ;
97     for(int i = 0 ; i < units_.size(); i++) {
98       WebUnit unit = (WebUnit) units_.get(i) ;
99       WebUnitMonitor monitor = unit.getMonitor() ;
100       appendColumn(b, unit.getName(), NAME_COLUMN) ;
101       appendColumn(b, Integer.toString(monitor.getCounter()), COUNTER_COLUMN) ;
102       appendColumn(b, Integer.toString(monitor.getErrorCounter()), ERROR_COLUMN) ;
103       appendColumn(b, Integer.toString(monitor.getXhtmlMalformedCounter()), MALFORMED_COLUMN) ;
104       appendColumn(b, Long.toString(monitor.getAvgExecutionTime()), AVG_TIME_COLUMN) ;
105       appendColumn(b, Float.toString((float)monitor.getAvgContentLength()/1000), CONTENT_LENGTH_COLUMN) ;
106       appendColumn(b, Float.toString((float)monitor.getSumContentLength()/1000), SUM_CONTENT_LENGTH_COLUMN) ;
107       b.append("\n") ;
108     }
109     return b.toString() ;
110   }
111   
112   public void appendHtmlTextSummary(StringBuffer JavaDoc b) {
113     b.append("Suite Name: ").append(name_).append("<br/>");
114     b.append("Description: ").append(description_).append("<br/>");
115     b.append("<table class='WebUnitSuite' width='100%'>").
116                 append("<tr>").
117                     append("<th>").append("Unit Name").append("</th>").
118                     append("<th>").append("req").append("</th>").
119                     append("<th>").append("err").append("</th>").
120                     append("<th>").append("Malformed").append("</th>").
121                     append("<th>").append("Avg(ms)").append("</th>").
122                     append("<th>").append("Avg(kb)").append("</th>").
123                     append("<th>").append("Sum(kb)").append("</th>").
124                     append("<th>").append("Desc").append("</th>").
125               append("</tr>");
126     for(int i = 0 ; i < units_.size(); i++) {
127       WebUnit unit = (WebUnit) units_.get(i) ;
128       WebUnitMonitor monitor = unit.getMonitor() ;
129       b.append("<tr>").
130           append("<td>").append(unit.getName()).append("</td>").
131           append("<td align='center'>").append(monitor.getCounter()).append("</td>").
132           append("<td align='center'>").append(monitor.getErrorCounter()).append("</td>").
133           append("<td align='center'>").append(monitor.getXhtmlMalformedCounter()).append("</td>").
134           append("<td align='center'>").append(monitor.getAvgExecutionTime()).append("</td>").
135           append("<td align='center'>").append((float)monitor.getAvgContentLength()/1000).append("</td>").
136           append("<td align='center'>").append((float)monitor.getSumContentLength()/1000).append("</td>").
137           append("<td>").append(unit.getDescription()).append("</td>").
138                 append("</tr>") ;
139     }
140     b.append("</table>") ;
141   }
142   
143   static public String JavaDoc STYLES =
144     "<style type='text/css'> \n" +
145     " .WebUnitSuite { \n" +
146     " } \n" +
147     " .WebUnitSuite th { \n" +
148     " border: 1px solid #CCCCCC ; \n" +
149     " padding: 2px ; \n" +
150     " background: #bbb ; \n" +
151     " color: #074B88; \n" +
152     " } \n" +
153     " .WebUnitSuite td { \n" +
154     " border: 1px solid #CCCCCC ; \n" +
155     " padding: 2px ; \n" +
156     " } \n" +
157     "</style>\n" ;
158   
159   public String JavaDoc getHtmlTextSummary() {
160     StringBuffer JavaDoc b = new StringBuffer JavaDoc() ;
161     b.append("<html>\n") ;
162     b. append("<head>\n") ;
163     b.append(STYLES) ;
164     b. append("</head>\n") ;
165     b. append("<body>\n") ;
166     appendHtmlTextSummary(b) ;
167     b. append("</body>\n") ;
168     b.append("</html>\n") ;
169     return b.toString() ;
170   }
171 }
172
Popular Tags