この方法では、動作しているようです。必要に応じて、必要なページに設定されたリクエストパラメータに基づいてフィルタリングすることができます(RequestGlobalsをパラメータとして追加し、set/getAttributeを使用します)。
スクリプトを追加したときにキャプチャする独自のDocumentLinkerを提供する方が良い場合があります。
あなたAppModuleにこれを追加します。
public void contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter> configuration, final Environment environment, final RequestGlobals request) {
MarkupRendererFilter getScripts = new MarkupRendererFilter() {
public void renderMarkup(MarkupWriter writer, MarkupRenderer renderer) {
DocumentLinker dl = environment.peek(DocumentLinker.class);
renderer.renderMarkup(writer);
try {
List<String> scripts = (List<String>)request.getAttribute("scripts");
if (scripts != null) {
scripts.clear();
Field f = dl.getClass().getDeclaredField("scripts");
f.setAccessible(true);
scripts.addAll((List<String>)f.get(dl));
}
} catch (Exception e) {}
}
};
configuration.add("getScripts", getScripts, "after:DefaultValidationDecorator");
}
をあなたのテストでは:
request.setAttribute("scripts", new ArrayList<String>());
実行ページ
assert request.getAttribute("scripts").contains(path_to_script_you_want_to_check);
あなたは余分を取り除くためにどちらかの側を変更する必要があるかもしれませんがTapestryが追加するパス情報。
実際、「基本」jsファイルがあります。スタックを取得するには、jsに@IncludeJavaScriptLibraryアノテーションを追加します。 – Gillespie59