Package com.canoo.webtest.plugins.pdftest

Source Code of com.canoo.webtest.plugins.pdftest.PdfVerifyInfoPropertyStep

// Copyright � 2004-2007 Canoo Engineering AG, Switzerland.
package com.canoo.webtest.plugins.pdftest;

import com.canoo.webtest.engine.StepFailedException;
import com.canoo.webtest.plugins.pdftest.htmlunit.PDFPage;
import com.canoo.webtest.util.ConversionUtil;

/**
* @author Etienne Studer
* @author Marc Guillemot
* @webtest.step
*   category="PDF"
*   name="pdfVerifyInfoProperty"
*   alias="verifyPdfInfoProperty"
*   description="This step verifies a property from the <em>info</em> dictionary of the current <key>pdf</key> document. The step must either verify the existence of the <em>info</em> dictionary property key or it must verify its value."
*/
public class PdfVerifyInfoPropertyStep extends AbstractVerifyValuePdfStep {
  private String fKey;

  public PdfVerifyInfoPropertyStep() {
    fKey = null;
  }

  /**
   * @param key
   * @webtest.parameter
   *   required="yes"
   *   description="The key of the property of interest from the <em>info</em> dictionary. Typically one of <em>Title</em>, <em>Author</em>, <em>Subject</em>, <em>Keywords</em>, <em>Creator</em>, <em>Producer</em>, <em>CreationDate</em> or <em>ModDate</em>"
   */
  public void setKey(String key) {
    fKey = key;
  }

  public String getKey() {
    return fKey;
  }

  protected void verifyParameters() {
    super.verifyParameters();
    nullParamCheck(getKey(), "key");
  }

  protected void verifyPdf(final PDFPage pdfPage) {
    final String actualValue = pdfPage.getInfoProperty(getKey());
    if (getExists() != null) {
      final boolean exists = ConversionUtil.convertToBoolean(getExists(), true);
      if ((exists && actualValue == null)
          || (!exists && actualValue != null))
      {
            final StringBuffer sb = new StringBuffer("Info property with key \"");
          sb.append(getKey());
          sb.append("\" should ");
          if (!exists)
            sb.append("not ");
          sb.append("exist");
          if (actualValue != null)
            sb.append(" (actual value: >" + actualValue + "<");
        throw new StepFailedException(sb.toString(), this);
      }
    }
    else
    {
      final boolean regex = ConversionUtil.convertToBoolean(getRegex(), false);
      if (!getVerifier(regex).verifyStrings(getValue(), actualValue))
      {
        throw new StepFailedException("Wrong info property value for key \"" + getKey() + "\"", getValue(), actualValue);
      }
    }
  }
}
TOP

Related Classes of com.canoo.webtest.plugins.pdftest.PdfVerifyInfoPropertyStep

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.