final MarinerRequestContext requestContext =
new TestMarinerRequestContext();
ProtocolBuilder builder = new ProtocolBuilder();
DOMProtocol protocol = (DOMProtocol) builder.build(
new TestProtocolRegistry.TestDOMProtocolFactory(), null);
final TestMarinerPageContext pageContext = new TestMarinerPageContext();
pageContext.pushRequestContext(requestContext);
pageContext.setProtocol(protocol);
pageContext.setPageGenerationCache(new PageGenerationCache());
pageContext.setRequestURL(
new MarinerURL("http://server:8080/volantis/test.xdime"));
final PolicyReferenceResolverMock referenceResolverMock =
new PolicyReferenceResolverMock("referenceResolverMock",
expectations);
pageContext.setPolicyReferenceResolver(referenceResolverMock);
referenceResolverMock.expects
.resolveQuotedLinkExpression(null, PageURLType.FORM)
.returns(null).any();
referenceResolverMock.expects.resolveQuotedTextExpression(null)
.returns(null).any();
referenceResolverMock.expects
.resolveQuotedTextExpression("testCaption")
.returns(new LiteralTextAssetReference("testCaption"))
.any();
ContextInternals.setMarinerPageContext(requestContext, pageContext);
protocol.setMarinerPageContext(pageContext);
loadStyleSheet(pageContext);
// a form with a pane in it
final CanvasLayout canvasLayout =
new CanvasLayout();
// Activate the device layout.
RuntimeDeviceLayout runtimeDeviceLayout =
RuntimeDeviceLayoutTestHelper.activate(canvasLayout);
pageContext.setDeviceLayout(runtimeDeviceLayout);
final Form form = new Form(canvasLayout);
form.setName("form");
pageContext.setForm(form);
FormInstance formInstance = new FormInstance(
NDimensionalIndex.ZERO_DIMENSIONS);
formInstance.setFormat(form);
pageContext.setFormatInstance(formInstance);
final Pane testPane = new Pane(canvasLayout);
final String paneName = "testPane";
testPane.setName(paneName);
testPane.setParent(form);
final PaneInstance paneInstance = new TestPaneInstance();
paneInstance.setFormat(testPane);
final TestDeviceLayoutContext deviceLayoutContext =
new TestDeviceLayoutContext();
paneInstance.setDeviceLayoutContext(deviceLayoutContext);
pageContext.setFormatInstance(paneInstance);
pageContext.addPaneMapping(testPane);
// set up xfform element
final XFFormAttributes xfFormAttributes = new XFFormAttributes();
final XFFormElementImpl xfFormElement = new XFFormElementImpl();
xfFormElement.elementStart(requestContext, xfFormAttributes);
pageContext.setCurrentElement(xfFormElement);
// set up xfsiselect element
final XFSingleSelectElementImpl xfSingleSelectElement =
new XFSingleSelectElementImpl();
final XFSingleSelectAttributes xfSingleSelectAttributes =
new XFSingleSelectAttributes();
xfSingleSelectAttributes.setCaptionPane(paneName);
xfSingleSelectElement.elementStart(requestContext,
xfSingleSelectAttributes);
pageContext.setCurrentElement(xfSingleSelectElement);
// set up xfoption element
XFOptionAttributes xfOptionsAttrs = new XFOptionAttributes();
final String styleClass = "styleClass";
xfOptionsAttrs.setStyleClass(styleClass);