morgand     01/09/07 10:09:15

  Modified:    latka/conf report.dtd
               latka/doc TestLatka.xml
               latka/resource org.apache.commons.latka.report.xsl
               latka/src/java/org/apache/commons/latka
                        AbstractReporter.java Latka.java XMLReporter.java
               latka/src/java/org/apache/commons/latka/event
                        LatkaEventInfo.java
               latka/src/java/org/apache/commons/latka/http
                        RequestImpl.java Response.java ResponseImpl.java
               latka/src/java/org/apache/commons/latka/xml
                        RequestHandler.java
  Log:
  added ability to review failed Responses
  
  Revision  Changes    Path
  1.6       +1 -0      jakarta-commons/latka/conf/report.dtd
  
  Index: report.dtd
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/conf/report.dtd,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- report.dtd        2001/08/21 17:08:19     1.5
  +++ report.dtd        2001/09/07 17:09:14     1.6
  @@ -13,6 +13,7 @@
   <!ELEMENT requestSuccess EMPTY>
   
   <!ELEMENT requestFailure (label)>
  +<!ATTLIST requestFailure responseId CDATA #REQUIRED>
   
   <!ELEMENT requestSkipped EMPTY>
   
  
  
  
  1.4       +7 -0      jakarta-commons/latka/doc/TestLatka.xml
  
  Index: TestLatka.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/doc/TestLatka.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestLatka.xml     2001/08/21 21:44:30     1.3
  +++ TestLatka.xml     2001/09/07 17:09:14     1.4
  @@ -10,6 +10,7 @@
       <!-- first request should not set a referer -->
       <request path="/latka-test/snoop/RequestHeaders.jsp" label="no referer 1">
         <validate>
  +        <statusCode code="400"/>
           <regexp pattern="referer" cond="false"/>
         </validate>
       </request>
  @@ -23,6 +24,12 @@
       </request>
   
     </session>
  +
  +  <request path="/latka-webapp/superman2.jpg" label="image2">
  +    <validate>
  +      <byteLength min="14000" max="14000"/>
  +    </validate>
  +  </request>
   
     <!-- no referer for requests outside of a session -->
     <request path="/latka-test/snoop/RequestHeaders.jsp" label="no referer 2">
  
  
  
  1.6       +1 -1      
jakarta-commons/latka/resource/org.apache.commons.latka.report.xsl
  
  Index: org.apache.commons.latka.report.xsl
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/resource/org.apache.commons.latka.report.xsl,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- org.apache.commons.latka.report.xsl       2001/08/21 15:55:32     1.5
  +++ org.apache.commons.latka.report.xsl       2001/09/07 17:09:15     1.6
  @@ -72,7 +72,7 @@
         <xsl:param name="timing"/>
         <xsl:text>  REQUEST ERROR </xsl:text>
         <xsl:value-of select="$timing"/>
  -      <xsl:text> </xsl:text>
  +      <xsl:text>&#x0A;    </xsl:text>
         <xsl:apply-templates/>
      </xsl:template>
   
  
  
  
  1.8       +11 -2     
jakarta-commons/latka/src/java/org/apache/commons/latka/AbstractReporter.java
  
  Index: AbstractReporter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/AbstractReporter.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AbstractReporter.java     2001/09/03 07:02:04     1.7
  +++ AbstractReporter.java     2001/09/07 17:09:15     1.8
  @@ -65,6 +65,8 @@
   import org.apache.commons.latka.http.Session;
   
   import java.util.HashMap;
  +import java.util.LinkedList;
  +import java.util.List;
   import java.util.Map;
   
   import org.apache.log4j.Category;
  @@ -82,7 +84,9 @@
   
     protected boolean _suiteSucceeded = true;
   
  -  protected static final Category log = 
  +  protected List _failedResponses = new LinkedList();
  +
  +  protected static final Category _log = 
       Category.getInstance(AbstractReporter.class);
   
     public void requestSucceeded(RequestEvent event) {
  @@ -91,6 +95,7 @@
     
     public void requestFailed(RequestEvent event) {
       recordSuccess(event, false);
  +    _failedResponses.add(event.getResponse());
     }
   
     public void requestSkipped(RequestEvent event) {
  @@ -106,7 +111,7 @@
         _suiteSucceeded = false;
         _requestSucceeded.put(event.getRequest(),new Boolean(bool));
         _sessionSucceeded.put(event.getSession(),new Boolean(bool));
  -      log.info("request failed");
  +      _log.info("request failed");
       }
   
     }
  @@ -134,6 +139,10 @@
   
     public boolean didSuiteSucceed() {
       return _suiteSucceeded;
  +  }
  +
  +  public List getFailedResponses() {
  +    return _failedResponses;
     }
   
   }
  
  
  
  1.18      +17 -3     
jakarta-commons/latka/src/java/org/apache/commons/latka/Latka.java
  
  Index: Latka.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/Latka.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Latka.java        2001/09/06 15:19:25     1.17
  +++ Latka.java        2001/09/07 17:09:15     1.18
  @@ -82,6 +82,7 @@
   import javax.xml.parsers.ParserConfigurationException;
   import javax.xml.parsers.SAXParserFactory;
   import javax.xml.parsers.SAXParser;
  +import javax.xml.transform.Source;
   import javax.xml.transform.Transformer;
   import javax.xml.transform.TransformerConfigurationException;
   import javax.xml.transform.TransformerException;
  @@ -110,6 +111,8 @@
   
     protected boolean _isValidating = true;
     
  +  protected URL _reportStylesheetUrl = null;
  +
     protected static Category log =
       Category.getInstance(Latka.class.getName());
   
  @@ -190,6 +193,10 @@
       _isValidating = isValidating;
     }
   
  +  public void setReportStylesheet(URL url) {
  +    _reportStylesheetUrl = url;
  +  }
  +
     /**
      * Use this method to log XML generated by the
      * XMLReporter class.
  @@ -230,11 +237,18 @@
       
       try {
         StringWriter output = new StringWriter();
  +
  +      Source xslSource = null;
   
  -      ClassLoader loader = Thread.currentThread().getContextClassLoader();
  +      if (_reportStylesheetUrl == null) {
  +        ClassLoader loader = Thread.currentThread().getContextClassLoader();
  +
  +        xslSource = 
  +          new 
StreamSource(loader.getResourceAsStream("org.apache.commons.latka.report.xsl"));
  +      } else {
  +        xslSource = new StreamSource(_reportStylesheetUrl.toString());
  +      }
   
  -      StreamSource xslSource = 
  -        new 
StreamSource(loader.getResourceAsStream("org.apache.commons.latka.report.xsl"));
       
         Transformer transformer = 
           TransformerFactory.newInstance().newTransformer(xslSource);
  
  
  
  1.11      +1 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/XMLReporter.java
  
  Index: XMLReporter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/XMLReporter.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLReporter.java  2001/09/04 05:44:51     1.10
  +++ XMLReporter.java  2001/09/07 17:09:15     1.11
  @@ -185,6 +185,7 @@
       Element requestElement = createRequestElement(event);
       _rootElement.addContent(requestElement);
       Element requestFailure = new Element("requestFailure");
  +    requestFailure.addAttribute("responseId",event.getResponse().toString());
       requestElement.addContent(requestFailure);
   
       StringBuffer buf = new StringBuffer();
  
  
  
  1.6       +10 -0     
jakarta-commons/latka/src/java/org/apache/commons/latka/event/LatkaEventInfo.java
  
  Index: LatkaEventInfo.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/event/LatkaEventInfo.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LatkaEventInfo.java       2001/09/03 07:02:04     1.5
  +++ LatkaEventInfo.java       2001/09/07 17:09:15     1.6
  @@ -59,6 +59,8 @@
   
   package org.apache.commons.latka.event;
   
  +import java.util.List;
  +
   import org.apache.commons.latka.http.Request;
   import org.apache.commons.latka.http.Session;
   
  @@ -99,4 +101,12 @@
      * @return true if all Requests have succeeded
      */
     public boolean didSuiteSucceed();
  +
  +  /**
  +   * Returns a List of all responses that failed
  +   * validation.
  +   *
  +   * @return List of failed Responses
  +   */
  +  public List getFailedResponses();
   }
  
  
  
  1.12      +2 -2      
jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java
  
  Index: RequestImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RequestImpl.java  2001/08/23 21:12:49     1.11
  +++ RequestImpl.java  2001/09/07 17:09:15     1.12
  @@ -163,8 +163,8 @@
       _requestTiming = ((new java.util.Date()).getTime() - startDate.getTime());
   
       if (log.isInfoEnabled()) {
  -      log.info("response obtained (response follows):");
  -      log.info(response.getResource());
  +      log.info("response obtained (response logging disabled because some responses 
are binary):");
  +      //log.info(response.getResource());
       }
   
       return response;
  
  
  
  1.6       +9 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/http/Response.java
  
  Index: Response.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/Response.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Response.java     2001/08/23 16:24:26     1.5
  +++ Response.java     2001/09/07 17:09:15     1.6
  @@ -59,6 +59,8 @@
   
   package org.apache.commons.latka.http;
   
  +import java.io.InputStream;
  +
   /**
    * A Latka Response represents a response from an HTTP server.
    *
  @@ -76,6 +78,13 @@
      * @return the resource, in string form, provided by the HTTP server.
      */
     public String getResource();
  +
  +  /**
  +   * Get the actual bytes returned by the web server
  +   * 
  +   * @return InputStream containing the HTTP response
  +   */
  +  public InputStream getStream();
   
     /**
      * @return the length (in bytes) of the resource provided by the HTTP server.
  
  
  
  1.7       +19 -0     
jakarta-commons/latka/src/java/org/apache/commons/latka/http/ResponseImpl.java
  
  Index: ResponseImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/ResponseImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ResponseImpl.java 2001/08/23 21:21:07     1.6
  +++ ResponseImpl.java 2001/09/07 17:09:15     1.7
  @@ -59,6 +59,7 @@
   
   package org.apache.commons.latka.http;
   
  +import java.io.InputStream;
   import java.io.IOException;
   
   import org.apache.commons.httpclient.Header;
  @@ -166,5 +167,23 @@
       else {
         return -1;
       }
  +  }
  +
  +  public InputStream getStream() {
  +    InputStream stream = null;
  +
  +    // is there a reason that these are separate cases?
  +    // does PostMethod override GetMethod's getDataAsString()?
  +
  +    if (_httpMethod instanceof GetMethod) {
  +      try {
  +        stream = ((GetMethod) _httpMethod).getData();
  +      }
  +      catch (IOException ioX) {
  +        stream = null;
  +      }
  +    }
  +
  +    return stream;
     }
   }
  
  
  
  1.12      +9 -9      
jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java
  
  Index: RequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RequestHandler.java       2001/08/23 16:24:27     1.11
  +++ RequestHandler.java       2001/09/07 17:09:15     1.12
  @@ -101,7 +101,7 @@
     protected Response _response = null;
     protected boolean  _requestExecuted = false;
   
  -  protected static final Category log = 
  +  protected static final Category _log = 
     Category.getInstance(RequestHandler.class);
   
     public RequestHandler(XMLReader reader, Session session,
  @@ -119,7 +119,7 @@
         _defaultPort = Integer.parseInt(portString);
       }
   
  -    log.debug("request handler instantiated");
  +    _log.debug("request handler instantiated");
     }
   
     public RequestHandler(XMLReader reader,
  @@ -135,7 +135,7 @@
                              String qName, Attributes atts)
     throws SAXException {
   
  -    log.debug("received start element event");
  +    _log.debug("received start element event");
   
       if (_listener.didRequestSucceed(_request) == false) {
         // if a test in this request has already failed,
  @@ -154,22 +154,22 @@
   
         if (_skipped) {
           _listener.requestSkipped(new RequestSkippedEvent(_request,null));
  -        log.info("request skipped");
  +        _log.info("request skipped");
         }
       } else if (localName.equals("credentials")) {
         _request.setCredentials(atts.getValue("userName"),atts.getValue("password"));
       } else if (localName.equals("requestHeader")) {  
  -      log.info("adding request headers");
  +      _log.info("adding request headers");
         RequestHeaderHandler headerHandler  = new 
RequestHeaderHandler(_reader,_request);
         headerHandler.delegate(uri,localName,qName,atts);
       } else if (localName.equals("param")) {
  -      log.info("adding parameters: params should follow");
  +      _log.info("adding parameters: params should follow");
         ParameterHandler paramHandler = new ParameterHandler(_reader,_request);
         paramHandler.delegate(uri,localName,qName,atts);
         return;
       } else if (localName.equals("validate")) {
   
  -      log.info("encountered validations");
  +      _log.info("encountered validations");
   
         try {
           _response = _request.execute();
  @@ -246,8 +246,8 @@
       }
   
       String label = atts.getValue("label");
  -    log.info("creating request with label:");
  -    log.info(label);
  +    _log.info("creating request with label:");
  +    _log.info(label);
   
       boolean followRedirects = true;
       String followRedirectStr = atts.getValue("followRedirects");
  
  
  

Reply via email to