/* * Copyright (C) 2013-2017 NTT DATA Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package org.terasoluna.gfw.web.message; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import static org.mockito.Matchers.anyObject; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.io.StringWriter; import java.util.Arrays; import java.util.Date; import java.util.Locale; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.tagext.TagSupport; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockPageContext; import org.springframework.mock.web.MockServletContext; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.servlet.tags.form.TagWriter; import org.terasoluna.gfw.common.message.ResultMessage; import org.terasoluna.gfw.common.message.ResultMessages; import org.terasoluna.gfw.web.message.MessagesPanelTag; /** * Test class for MessagesPanelTag. */ public class MessagesPanelTagTest { protected StringWriter writer; protected WebApplicationContext wac; /** * mock instance of servlet jsp pageContext. */ protected MockPageContext pageContext; /** * mock instance of http servlet requset. */ protected MockHttpServletRequest request; /** * instance of test target. */ protected MessagesPanelTag tag; /** * create mock PageContext. */ protected MockPageContext createPageContext() { MockServletContext sc = new MockServletContext(); wac = mock(WebApplicationContext.class); when( wac.getMessage(eq("hello.world"), eq(new Object[] {}), (Locale) anyObject())).thenReturn("hello world!"); when( wac.getMessage(eq("foo.bar"), eq(new Object[] { 1, 2 }), (Locale) anyObject())).thenReturn("foo1 and bar2"); when(wac.getServletContext()).thenReturn(sc); request = new MockHttpServletRequest(sc); MockHttpServletResponse response = new MockHttpServletResponse(); sc.setAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); return new MockPageContext(sc, request, response); } /** * setup all test case. */ @SuppressWarnings("serial") @Before public void setUp() throws Exception { this.writer = new StringWriter(); this.pageContext = createPageContext(); this.tag = new MessagesPanelTag() { @Override TagWriter createTagWriter() { return new TagWriter(writer); } }; tag.setPageContext(pageContext); } @Test public void testCreateTagWriter() { MessagesPanelTag tag = new MessagesPanelTag(); tag.setPageContext(pageContext); assertThat(tag.createTagWriter(), is(notNullValue())); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check textMessasge in messagesPanelTag. */ @Test public void test01() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add( ResultMessage.fromText("hello world!"))); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages set property key.<br> * check property key to textMessasge in messagesPanelTag. */ @Test public void test02() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add("hello.world")); int ret = tag.doStartTag(); // System.out.println(getOutput() // .replaceAll(Pattern.quote("\""), "\\\\\"")); String expected = "<div class=\"alert alert-error\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & String message.<br> * check textMessasge in messagesPanelTag. */ @Test public void test03() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, "hello world!"); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessage.fromText("String message").<br> * check textMessasge in messagesPanelTag. */ @Test public void test04() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessage.fromText("hello world!")); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessage.fromCode("property key").<br> * check property key to textMessasge in messagesPanelTag. */ @Test public void test05() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessage.fromCode("hello.world")); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & null.<br> * check empty in messagesPanelTag and normal end. */ @Test public void test06() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, null); int ret = tag.doStartTag(); String expected = ""; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Two String Array.<br> * check two textMessages in messagesPanelTag. */ @Test public void test07() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, new String[] { "hello", "world" }); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello</li><li>world</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Arrays.<br> * check two textMessages in messagesPanelTag. */ @Test public void test08() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("hello", "world")); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello</li><li>world</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Add ResultMessages twice by fromText().<br> * check two textMessages in messagesPanelTag. */ @Test public void test09() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.warn().add(ResultMessage.fromText("hello")).add( ResultMessage.fromText("world"))); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-warn\"><ul><li>hello</li><li>world</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Add ResultMessages twice by property key.<br> * check two messages property key to textMessage in messagesPanelTag. */ @Test public void test10() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.success().add("hello.world") .add("foo.bar", 1, 2)); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-success\"><ul><li>hello world!</li><li>foo1 and bar2</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Date type.<br> * check date to textMessage in messagesPanelTag. */ @Test public void test11() throws Exception { Date now = new Date(); request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, now); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>" + now + "</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & change PanelElement,OuterElement and InnerElement.<br> * check change PanelElement,OuterElement and PanelElement in messagesPanelTag. */ @Test public void test12() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("hello!")) .add(ResultMessage.fromText("foo"))); tag.setPanelElement("p"); tag.setOuterElement(""); tag.setInnerElement("span"); int ret = tag.doStartTag(); String expected = "<p class=\"alert alert-info\"><span>hello!</span><span>foo</span></p>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use Arrays & change PanelClassName is empty.<br> * check no CSS class setting in messagesPanelTag. */ @Test public void test13() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("foo", "bar")); tag.setPanelClassName(""); int ret = tag.doStartTag(); String expected = "<div><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & change PanelClassName is empty.<br> * check CSS class is PanelTypeClassPrefix and ResultMessages.type in messagesPanelTag. */ @Test public void test14() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo")).add( ResultMessage.fromText("bar"))); tag.setPanelClassName(""); int ret = tag.doStartTag(); String expected = "<div class=\"alert-info\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & Change PanelClassName and PanelTypeClassPrefix is empty.<br> * check CSS class is ResultMessages.type in messagesPanelTag. */ @Test public void test15() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo")).add( ResultMessage.fromText("bar"))); tag.setPanelClassName(""); tag.setPanelTypeClassPrefix(""); int ret = tag.doStartTag(); String expected = "<div class=\"info\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & Change PanelClassName and PanelTypeClassPrefix is empty.<br> * check CSS class is ResultMessages.type in messagesPanelTag. */ @Test public void test16() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo")).add( ResultMessage.fromText("bar"))); tag.setPanelClassName(""); tag.setPanelTypeClassPrefix(""); int ret = tag.doStartTag(); String expected = "<div class=\"info\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & Change PanelClassName, PanelTypeClassPrefix and MessagesType * is empty.<br> * check no CSS class in messagesPanelTag. */ @Test public void test21() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo")).add( ResultMessage.fromText("bar"))); tag.setPanelClassName(""); tag.setPanelTypeClassPrefix(""); tag.setMessagesType(""); int ret = tag.doStartTag(); String expected = "<div><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & change OuterElement and InnerElement is empty.<br> * check no OuterElement and PanelElement in messagesPanelTag. */ @Test public void test17() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo"))); tag.setOuterElement(""); tag.setInnerElement(""); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-info\">foo</div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } @Test public void testDoStartTagInternalPanelElementAndOuterElementEmpty() throws Exception { // set up request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo"))); tag.setPanelElement(""); tag.setOuterElement(""); int ret = tag.doStartTag(); String expected = "<li>foo</li>"; // assert assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } @Test public void testDoStartTagInternalPanelElementEmpty() throws Exception { // set up request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo"))); tag.setPanelElement(""); int ret = tag.doStartTag(); String expected = "<ul><li>foo</li></ul>"; // assert assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use ResultMessages & change PanelElement,OuterElement and InnerElement is empty.<br> * check JspTagException. */ @Test(expected = JspTagException.class) public void test28() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo"))); tag.setPanelElement(""); tag.setOuterElement(""); tag.setInnerElement(""); tag.doStartTag(); } @Test(expected = JspTagException.class) public void testDoStartTagInternalElementNull() throws Exception { // set up request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.info().add(ResultMessage.fromText("foo"))); tag.setPanelElement(null); tag.setOuterElement(null); tag.setInnerElement(null); // try tag.doStartTag(); } /** * Set default messages attribute name & Use Arrays & change PanelClassName is empty.<br> * check no CSS class in messagesPanelTag. */ @Test public void test18() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("foo", null)); tag.setPanelClassName(""); int ret = tag.doStartTag(); String expected = "<div><ul><li>foo</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set attribute name & Use ResultMessages.<br> * check messagesPanelTag can get set Attribute name. */ @Test public void test19() throws Exception { request.setAttribute("result", ResultMessages.error().add( ResultMessage.fromText("hello world!"))); tag.setMessagesAttributeName("result"); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use int array.<br> * check int to two textMessage in messagesPanelTag. */ @Test public void test20() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, new int[] { 1, 2 }); tag.setPanelClassName(""); int ret = tag.doStartTag(); String expected = "<div><ul><li>1</li><li>2</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & set MessagesType is empty.<br> * check PanelTypeClassPrefix + MessagesType is empty in messagesPanelTag. */ @Test public void test22() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, "hello world!"); tag.setMessagesType(""); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & set MessagesType is empty.<br> * check PanelTypeClassPrefix + MessagesType is empty in messagesPanelTag. */ @Test public void test23() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, "hello world!"); tag.setMessagesType("error"); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use textMessage & set PanelClassName and PanelTypeClassPrefix is empty & * MessagesType is "error".<br> * check CSS class is error in messagesPanelTag. */ @Test public void test24() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, "hello world!"); tag.setPanelClassName(""); tag.setPanelTypeClassPrefix(""); tag.setMessagesType("error"); int ret = tag.doStartTag(); String expected = "<div class=\"error\"><ul><li>hello world!</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use arrays & set MessagesType is empty.<br> * check PanelTypeClassPrefix + MessagesType is empty and array messages in messagesPanelTag. */ @Test public void test25() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("foo", "bar")); tag.setMessagesType(""); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use arrays & set MessagesType is "error".<br> * check use default CSS class by set MessagesType in messagesPanelTag. */ @Test public void test26() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("foo", "bar")); tag.setMessagesType("error"); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Use Array & set PanelClassName and PanelTypeClassPrefix is empty & MessagesType is * "error".<br> * check CSS class is error in messagesPanelTag. */ @Test public void test27() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, Arrays.asList("foo", "bar")); tag.setPanelClassName(""); tag.setPanelTypeClassPrefix(""); tag.setMessagesType("error"); int ret = tag.doStartTag(); String expected = "<div class=\"error\"><ul><li>foo</li><li>bar</li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check that message text gets escaped if htmlEscapingEnabled is set to true. */ @Test public void test29() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("<div>"))); tag.setDisableHtmlEscape("true"); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li><div></li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check that message text is not escaped if htmlEscapingEnabled is set to false. */ @Test public void test30() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("<div>"))); tag.setDisableHtmlEscape("false"); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li><div></li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check that message text gets escaped if htmlEscapingEnabled is set to null. */ @Test public void test31() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("<div>"))); tag.setDisableHtmlEscape(null); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li><div></li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check that message text gets escaped if htmlEscapingEnabled is set to empty string. */ @Test public void test32() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("<div>"))); tag.setDisableHtmlEscape(""); int ret = tag.doStartTag(); String expected = "<div class=\"alert alert-error\"><ul><li><div></li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & ResultMessages.fromText().<br> * check that JspTagException occurs if htmlEscapingEnabled is set to unexpected String. */ @Test(expected = JspTagException.class) public void test33() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("<div>"))); tag.setDisableHtmlEscape("aaaa"); tag.doStartTag(); } /** * Set default messages attribute name & Empty Array.<br> * check that start tags are not self-closing in messagesPanelTag. */ @Test public void test34() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, new String[] {}); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } /** * Set default messages attribute name & Empty String.<br> * check that start tags are not self-closing in messagesPanelTag. */ @Test public void test35() throws Exception { request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ""); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li></li></ul></div>"; assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } protected String getOutput() { return this.writer.toString(); } @Test public void testAppendPanelTypeClassPrefixPanelTypeClassPrefixNull() throws Exception { // set up request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, ResultMessages.error().add(ResultMessage.fromText("foo"))); tag.setPanelTypeClassPrefix(null); int ret = tag.doStartTag(); String expected = "<div class=\"alerterror\"><ul><li>foo</li></ul></div>"; // assert assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } @Test public void testGetTextMessageInstanceofThrowable() throws Exception { // set up request.setAttribute(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME, new Throwable()); int ret = tag.doStartTag(); String expected = "<div class=\"alert\"><ul><li></li></ul></div>"; // assert assertThat(getOutput(), is(expected)); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); } }