use of com.github.bordertech.wcomponents.WPopup in project wcomponents by BorderTech.
the class WPopupRenderer method doRender.
/**
* Paints the given WPopup.
*
* @param component the WPopup to paint.
* @param renderContext the RenderContext to paint to.
*/
@Override
public void doRender(final WComponent component, final WebXmlRenderContext renderContext) {
WPopup popup = (WPopup) component;
XmlStringBuilder xml = renderContext.getWriter();
int width = popup.getWidth();
int height = popup.getHeight();
String targetWindow = popup.getTargetWindow();
xml.appendTagOpen("ui:popup");
xml.appendUrlAttribute("url", popup.getUrl());
xml.appendOptionalAttribute("width", width > 0, width);
xml.appendOptionalAttribute("height", height > 0, height);
xml.appendOptionalAttribute("resizable", popup.isResizable(), "true");
xml.appendOptionalAttribute("showScrollbars", popup.isScrollable(), "true");
xml.appendOptionalAttribute("targetWindow", !Util.empty(targetWindow), targetWindow);
xml.appendClose();
xml.appendEndTag("ui:popup");
}
use of com.github.bordertech.wcomponents.WPopup in project wcomponents by BorderTech.
the class WPopupRenderer_Test method testRendererCorrectlyConfigured.
@Test
public void testRendererCorrectlyConfigured() {
WPopup popup = new WPopup();
Assert.assertTrue("Incorrect renderer supplied", getWebXmlRenderer(popup) instanceof WPopupRenderer);
}
use of com.github.bordertech.wcomponents.WPopup in project wcomponents by BorderTech.
the class WPopupRenderer_Test method testXssEscaping.
@Test
public void testXssEscaping() throws IOException, SAXException, XpathException {
// Popup with only URL and default settings
WPopup popup = new WPopup("www.invalid") {
@Override
public boolean isVisible() {
return true;
}
};
popup.setToolTip(getMaliciousAttribute());
assertSafeContent(popup);
popup.setHtmlClass(getMaliciousAttribute());
assertSafeContent(popup);
popup.setAccessibleText(getMaliciousAttribute());
assertSafeContent(popup);
popup.setUrl("http://www.invalid/cgi?a=" + getMaliciousAttribute());
assertSafeContent(popup);
}
use of com.github.bordertech.wcomponents.WPopup in project wcomponents by BorderTech.
the class WPopupRenderer_Test method testDoPaint.
@Test
public void testDoPaint() throws IOException, SAXException, XpathException {
final String testUrl = "www.testurl.invalid";
final String testUrl2 = "www.testurl2.invalid";
final String testWindow = "window";
final int width = 100;
final int height = 90;
// Popup with only URL and default settings
WPopup popup = new WPopup(testUrl) {
@Override
public boolean isVisible() {
return true;
}
};
assertSchemaMatch(popup);
assertXpathEvaluatesTo(testUrl, "//ui:popup/@url", popup);
assertXpathEvaluatesTo("", "//ui:popup/@width", popup);
assertXpathEvaluatesTo("", "//ui:popup/@height", popup);
assertXpathEvaluatesTo("true", "//ui:popup/@resizable", popup);
assertXpathEvaluatesTo("", "//ui:popup/@showScrollbars", popup);
assertXpathEvaluatesTo("", "//ui:popup/@targetWindow", popup);
// All options
popup.setUrl(testUrl2);
popup.setWidth(width);
popup.setHeight(height);
popup.setResizable(false);
popup.setScrollable(true);
popup.setTargetWindow(testWindow);
assertSchemaMatch(popup);
assertXpathEvaluatesTo(testUrl2, "//ui:popup/@url", popup);
assertXpathEvaluatesTo(Integer.toString(width), "//ui:popup/@width", popup);
assertXpathEvaluatesTo(Integer.toString(height), "//ui:popup/@height", popup);
assertXpathEvaluatesTo("", "//ui:popup/@resizable", popup);
assertXpathEvaluatesTo("true", "//ui:popup/@showScrollbars", popup);
assertXpathEvaluatesTo(testWindow, "//ui:popup/@targetWindow", popup);
}
Aggregations