Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.functions » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *   http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    * 
   17    */
   18   
   19   package org.apache.jmeter.functions;
   20   
   21   
   22   import java.util.Collection;
   23   import java.util.LinkedList;
   24   import java.util.List;
   25   
   26   import org.apache.commons.lang.StringEscapeUtils;
   27   import org.apache.jmeter.engine.util.CompoundVariable;
   28   import org.apache.jmeter.samplers.SampleResult;
   29   import org.apache.jmeter.samplers.Sampler;
   30   import org.apache.jmeter.util.JMeterUtils;
   31   
   32   /**
   33    * Function to unescape a string containing entity escapes
   34    * to a string containing the actual Unicode characters corresponding to the escapes. 
   35    * Supports HTML 4.0 entities.
   36    * <p>
   37    * For example, the string "&amp;lt;Fran&amp;ccedil;ais&amp;gt;" will become "&lt;Fran&ccedil;ais&gt;"
   38    * </p>
   39    * <p>
   40    * If an entity is unrecognized, it is left alone, and inserted verbatim into the result string.
   41    * e.g. "&amp;gt;&amp;zzzz;x" will become "&gt;&amp;zzzz;x".
   42    * </p>
   43    * @see org.apache.commons.lang.StringEscapeUtils#unescapeHtml(String)
   44    */
   45   public class UnEscapeHtml extends AbstractFunction {
   46   
   47       private static final List desc = new LinkedList();
   48   
   49       private static final String KEY = "__unescapeHtml"; //$NON-NLS-1$
   50   
   51       static {
   52           desc.add(JMeterUtils.getResString("unescape_html_string")); //$NON-NLS-1$
   53       }
   54   
   55       private Object[] values;
   56   
   57       public UnEscapeHtml() {
   58       }
   59   
   60       public synchronized String execute(SampleResult previousResult, Sampler currentSampler)
   61               throws InvalidVariableException {
   62   
   63           String escapedString = ((CompoundVariable) values[0]).execute();
   64           return StringEscapeUtils.unescapeHtml(escapedString);
   65   
   66       }
   67   
   68       public synchronized void setParameters(Collection parameters) throws InvalidVariableException {
   69           checkParameterCount(parameters, 1);
   70           values = parameters.toArray();
   71       }
   72   
   73       public String getReferenceKey() {
   74           return KEY;
   75       }
   76   
   77       public List getArgumentDesc() {
   78           return desc;
   79       }
   80   }

Save This Page
Home » jakarta-jmeter-2.3.4_src » org.apache.jmeter.functions » [javadoc | source]