All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.test.core.http.HttpTestConfiguration Maven / Gradle / Ivy

The newest version!
package nablarch.test.core.http;

import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import nablarch.core.util.annotation.Published;
import nablarch.fw.ExecutionContext;
import nablarch.test.tool.htmlcheck.Html4HtmlChecker;
import nablarch.test.tool.htmlcheck.HtmlChecker;

/**
 * HTTPリクエストテスト用の設定定義クラス。
 *
 * @author hisaaki sioiri
 */
public class HttpTestConfiguration {

    /**
     * HTMLファイル出力ディレクトリ
     */
    private String htmlDumpDir = "./tmp/html_dump";

    /**
     * webベースディレクトリ
     */
    private String webBaseDir = "../main/web";

    /**
     * クライアントサイドテスト用リソースの配置ディレクトリ
     */
    private String jsTestResourceDir = "../test/web";

    /**
     * アプリケーション用設定ファイル
     * (本番用ファイルとの差分)
     */
    private String xmlComponentFile = null;

    /**
     * ユーザIDセッションキー
     */
    private String userIdSessionKey = "user.id";

    /**
     * ApplicationExceptionが格納されるリクエストスコープのキー
     */
    private String exceptionRequestVarKey = ExecutionContext.THROWN_APPLICATION_EXCEPTION_KEY;

    /**
     * ダンプファイルの拡張子
     */
    private String dumpFileExtension = "html";

    /**
     * HTMLリソースの文字コード。
     * デフォルトはUTF-8。
     */
    private String htmlResourcesCharset = "UTF-8";

    /**
     * ダンプHTMLへの可変項目の出力可否。
     */
    private boolean dumpVariableItem = false;

    /** HTMLリソースとしてコピー対象から除外するディレクトリのリスト */
    private List ignoreHtmlResourceDirectory;

    /** テンプディレクトリのパス */
    private String tempDirectory;

    /** アップロードファイルの一時ディレクトリ */
    private String uploadTmpDirectory = "./tmp";

    /**
     * ダンプHTMLへの可変項目の出力可否を取得する。
     * @return dumpVariableItem ダンプHTMLへの可変項目の出力可否
     */
    public boolean isDumpVariableItem() {
        return dumpVariableItem;
    }

    /**
     * ダンプHTMLへの可変項目の出力可否を設定する。
     * @param dumpVariableItem dumpVariableItem ダンプHTMLへの可変項目の出力可否
     */
    public void setDumpVariableItem(boolean dumpVariableItem) {
        this.dumpVariableItem = dumpVariableItem;
    }

    /**
     * HtmlCheckツール設定ファイルのパス
     */
    private String htmlCheckerConfig;

    /**
     * HtmlCheckツールを実行するか否か
     */
    private boolean isCheckHtml = true;

    /**
     * HTMLリソースの文字コードを設定する。
     * @return HTMLリソースの文字コード
     */
    @Published(tag = "architect")
    public String getHtmlResourcesCharset() {
        return htmlResourcesCharset;
    }

    /**
     * HTMLリソースの文字コードを設定する。
     * @param htmlResourcesCharset HTMLリソースの文字コード
     */
    public void setHtmlResourcesCharset(String htmlResourcesCharset) {
        this.htmlResourcesCharset = htmlResourcesCharset;
    }

    /**
     * HTTPヘッダー
     */
    private Map httpHeader = new HashMap() {
        {
            put("Content-Type", "application/x-www-form-urlencoded");
            put("Accept-Language", "ja JP");
        }
    };

    /**
     * システムで使用する共通のセッション情報(ログインユーザ名など)
     */
    private Map sessionInfo = new HashMap();

    /**
     * Webベース配下から、ダンプディレクトリへコピーされるHTMLリソースの拡張子。
     * ここでコピーされたファイルは、ダンプHTMLのURI属性(hrefやsrc)から参照される。
     */
    private List htmlResourcesExtensionList = Arrays.asList("css", "js", "jpg");

    /**
     * HTMLリソースのコピー先ディレクトリ名。
     */
    private String htmlResourcesRoot = "htmlResources";

    /** バックアップ実施フラグ */
    private boolean backup = true;

    /** HTML チェッカー*/
    private HtmlChecker htmlChecker;

    /**
     * バックアップ実施フラグを取得する。
     * @return バックアップ実施フラグ
     */
    public boolean isBackup() {
        return backup;
    }

    /**
     * バックアップ実施フラグを設定する。
     * @param backup バックアップ実施フラグ
     */
    public void setBackup(boolean backup) {
        this.backup = backup;
    }

    /**
     * ダンプディレクトリへコピーされるHTMLリソースの拡張子を取得する。
     * @return ダンプディレクトリへコピーされるHTMLリソースの拡張子
     */
    @Published(tag = "architect")
    public List getHtmlResourcesExtensionList() {
        return htmlResourcesExtensionList;
    }

    /**
     * ダンプディレクトリへコピーされるHTMLリソースの拡張子を設定する。
     * @param htmlResourcesExtensionList ダンプディレクトリへコピーされるHTMLリソースの拡張子
     */
    public void setHtmlResourcesExtensionList(
            List htmlResourcesExtensionList) {
        this.htmlResourcesExtensionList = htmlResourcesExtensionList;
    }

    /**
     * HTMLリソースのコピー先ディレクトリ名を取得する。
     * @return HTMLリソースのコピー先ディレクトリ名
     */
    @Published(tag = "architect")
    public String getHtmlResourcesRoot() {
        return htmlResourcesRoot;
    }

    /**
     * HTMLリソースのコピー先ディレクトリ名を設定する。
     * @param htmlResourcesRoot HTMLリソースのコピー先ディレクトリ名
     */
    public void setHtmlResourcesRoot(String htmlResourcesRoot) {
        this.htmlResourcesRoot = htmlResourcesRoot;
    }

    /**
     * HTML出力ディレクトリを取得する。
     *
     * @return HTML出力ディレクトリ
     */
    @Published(tag = "architect")
    public String getHtmlDumpDir() {
        return htmlDumpDir;
    }

    /**
     * HTML出力ディレクトリを設定する。
     *
     * @param htmlDumpDir HTML出力ディレクトリ
     */
    public void setHtmlDumpDir(String htmlDumpDir) {
        this.htmlDumpDir = htmlDumpDir;
    }

    /**
     * webベースディレクトリを取得する。
     *
     * @return webベースディレクトリ
     */
    @Published(tag = "architect")
    public String getWebBaseDir() {
        return webBaseDir;
    }

    /**
     * webベースディレクトリを設定する。
     * 

* PJ共通のwebモジュールが存在する場合、このプロパティに * カンマ区切りで複数のwebベースディレクトリを指定できる。 * * {@literal "path/to/app/,path/to/common/"} * 複数指定した場合、先頭から順にリソースが探索される。 *

* @param webBaseDir webベースディレクトリ */ public void setWebBaseDir(String webBaseDir) { this.webBaseDir = webBaseDir; } /** * クライアントスクリプトテスト用リソース配置ディレクトリパスを取得する。 * * @return クライアントスクリプトテスト用リソース配置ディレクトリパス。 */ @Published(tag = "architect") public String getJsTestResourceDir() { return jsTestResourceDir; } /** * クライアントスクリプトテスト用リソース配置ディレクトリパスを設定する。 * * @param jsTestResourceDir クライアントスクリプトテスト用リソース配置ディレクトリパス */ public void setJsTestResourceDir(String jsTestResourceDir) { this.jsTestResourceDir = jsTestResourceDir; } /** * ターゲットコード用の設定ファイル(XMLファイル)をリードするための、ルートXMLファイル名を取得する。 * * @return XMLファイル名 */ @Published(tag = "architect") public String getXmlComponentFile() { return xmlComponentFile; } /** * ターゲットコード用の設定ファイル(XMLファイル)をリードするための、ルートXMLファイル名を設定する。 * * @param xmlComponentFile XMLファイル名 */ public void setXmlComponentFile(String xmlComponentFile) { this.xmlComponentFile = xmlComponentFile; } /** * ユーザIDセッションキーを取得する。 * * @return ユーザIDセッションキー */ @Published(tag = "architect") public String getUserIdSessionKey() { return userIdSessionKey; } /** * ユーザIDセッションキーを設定する。 * * @param userIdSessionKey ユーザIDセッションキーを設定する。 */ public void setUserIdSessionKey(String userIdSessionKey) { this.userIdSessionKey = userIdSessionKey; } /** * ApplicationExceptionが格納されるリクエストスコープのキーを取得する。 * * @return ApplicationExceptionが格納されるリクエストスコープのキー */ @Published(tag = "architect") public String getExceptionRequestVarKey() { return exceptionRequestVarKey; } /** * ApplicationExceptionが格納されるリクエストスコープのキーを設定する。 * * @param exceptionRequestVarKey ApplicationExceptionが格納されるリクエストスコープのキー */ public void setExceptionRequestVarKey(String exceptionRequestVarKey) { this.exceptionRequestVarKey = exceptionRequestVarKey; } /** * ダンプファイルの拡張子を取得する。 * * @return ダンプファイルの拡張子 */ @Published(tag = "architect") public String getDumpFileExtension() { return dumpFileExtension; } /** * ダンプファイルの拡張子を設定する。 * * @param dumpFileExtension ダンプファイルの拡張子 */ public void setDumpFileExtension(String dumpFileExtension) { this.dumpFileExtension = dumpFileExtension; } /** * HtmlCheckツール設定ファイルのパスを取得する。 * * @return HtmlCheckツール設定ファイル */ @Published(tag = "architect") public String getHtmlCheckerConfig() { return htmlCheckerConfig; } /** * HtmlCheckツール設定ファイルのパスを設定する。 * * @param htmlCheckerConfig HtmlCheckツール設定ファイルのパス */ public void setHtmlCheckerConfig(String htmlCheckerConfig) { this.htmlCheckerConfig = htmlCheckerConfig; this.htmlChecker = new Html4HtmlChecker(htmlCheckerConfig); } /** * HTTPHeaderを取得する。 * @return HTTPHeader */ @Published(tag = "architect") public Map getHttpHeader() { return httpHeader; } /** * HTTPHeaderを設定する。 * @param httpHeader HTTPHeader */ public void setHttpHeader(Map httpHeader) { this.httpHeader = httpHeader; } /** * セッション情報を取得する。 * @return セッション情報 */ @Published(tag = "architect") public Map getSessionInfo() { return sessionInfo; } /** * セッション情報を設定する。 * @param sessionInfo セッション情報 */ public void setSessionInfo(Map sessionInfo) { this.sessionInfo = sessionInfo; } /** * HTMLチェック実行するか否かの設定を設定する。 * @param isCheckHtml HTMLチェック実行するか否かの設定 */ public void setCheckHtml(boolean isCheckHtml) { this.isCheckHtml = isCheckHtml; } /** * HTMLチェック実行するか否かの設定を取得する。 * @return HTMLチェック実行する場合はtrue、実行しない場合はfalse */ @Published(tag = "architect") public boolean isCheckHtml() { return isCheckHtml; } /** * HTMLリソースディレクトリを取得する。 * @return HTMLリソースディレクトリ */ @Published(tag = "architect") public File getHtmlResourcesDir() { return new File(htmlDumpDir, htmlResourcesRoot); } /** * HTMLリソースとして除外するディレクトリを取得する。 * * @return HTMLリソースディレクトリとして除外するディレクトリのリスト */ @Published(tag = "architect") public List getIgnoreHtmlResourceDirectory() { return ignoreHtmlResourceDirectory; } /** * HTMLリソースとして除外するディレクトリのリストを設定する。 *

* {@link #setHtmlResourcesRoot(String)}で設定したディレクトリ配下から、リソースとして除外するディレクトリを設定する。 * たとえば、HTMLリソースがバージョン管理されている場合、バージョン管理用のディレクトリ(.svnや.git)などを設定することにより、 * 不要なファイルがコピーされることを回避でききる。 * * @param ignoreHtmlResourceDirectory HTMLリソースディレクトリとして除外するディレクトリのリスト */ public void setIgnoreHtmlResourceDirectory(List ignoreHtmlResourceDirectory) { this.ignoreHtmlResourceDirectory = ignoreHtmlResourceDirectory; } /** * テンプディレクトリのパスを取得する。 * * @return テンプディレクトリのパス */ @Published(tag = "architect") public String getTempDirectory() { return tempDirectory; } /** * テンプディレクトリのパスを設定する。 *

* JSPのコンパイル後のクラスが格納されるディレクトリ。 * 本設定を省略して場合のデフォルトテンプディレクトリは、jettyのデフォルト動作となる。 * * @param tempDirectory テンプディレクトリのパス */ public void setTempDirectory(String tempDirectory) { this.tempDirectory = tempDirectory; } /** * アップロードファイルの一時ディレクトリを取得する。 * * 本ディレクトリは、テスト時にアップロードファイルを一時的に配置するディレクトリとなる。 * * @return アップロードファイルの一時ディレクトリ */ @Published(tag = "architect") public String getUploadTmpDirectory() { return uploadTmpDirectory; } /** * アップロードファイルの一時ディレクトリを設定する。 * @param uploadTmpDirectory アップロードファイルの一時ディレクトリ */ public void setUploadTmpDirectory(String uploadTmpDirectory) { this.uploadTmpDirectory = uploadTmpDirectory; } /** * HTMLチェッカーを取得する。 * * @return HTMLチェッカー */ @Published(tag = "architect") public HtmlChecker getHtmlChecker() { return htmlChecker; } /** * HTMLチェッカーを設定する。 * * @param htmlChecker HTMLチェッカー */ public void setHtmlChecker(HtmlChecker htmlChecker) { this.htmlChecker = htmlChecker; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy