Verify that correct mode(HTML/TEXT) of caption is set for the Panel Fixes #11521tags/8.8.0.beta1
@@ -130,8 +130,12 @@ public class VPanel extends SimplePanel implements ShortcutActionHandlerOwner, | |||
} | |||
/** For internal use only. May be removed or replaced in the future. */ | |||
public void setCaption(String text) { | |||
DOM.setInnerHTML(captionText, text); | |||
public void setCaption(String text, boolean captionAsHtml) { | |||
if (captionAsHtml) { | |||
captionText.setInnerHTML(text); | |||
} else { | |||
captionText.setInnerText(text); | |||
} | |||
} | |||
/** For internal use only. May be removed or replaced in the future. */ |
@@ -97,9 +97,9 @@ public class PanelConnector extends AbstractSingleComponentContainerConnector | |||
panel.captionNode.setClassName(VPanel.CLASSNAME + "-caption"); | |||
boolean hasCaption = hasCaption(); | |||
if (hasCaption) { | |||
panel.setCaption(getState().caption); | |||
panel.setCaption(getState().caption,getState().captionAsHtml); | |||
} else { | |||
panel.setCaption(""); | |||
panel.setCaption("",false); | |||
panel.captionNode.setClassName(VPanel.CLASSNAME + "-nocaption"); | |||
} | |||
@@ -35,6 +35,7 @@ public class PanelChangeContents extends AbstractReindeerTestUI | |||
buttons.addComponent(companiesButton); | |||
buttons.addComponent(settingsButton); | |||
panel = new Panel(); | |||
panel.setCaption("<div class=\"caption-with-html\">Caption</div>"); | |||
panel.setSizeFull(); | |||
panel.setContent(stats); | |||
content.addComponent(buttons); |
@@ -0,0 +1,31 @@ | |||
package com.vaadin.tests.components.panel; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.Panel; | |||
import com.vaadin.ui.Button; | |||
import com.vaadin.ui.VerticalLayout; | |||
public class PanelHTMLCaption extends AbstractTestUI { | |||
public static final String caption = "<b> <div id='divId'>BOLD CAPTION</div></b>"; | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
Panel panel = new Panel(); | |||
panel.setId("panelId"); | |||
panel.setWidth("200px"); | |||
panel.setHeight("200px"); | |||
panel.setCaption(caption); | |||
panel.setCaptionAsHtml(false); | |||
panel.setContent(new VerticalLayout()); | |||
addComponent(panel); | |||
Button changeCaptionFormat = new Button("Set Caption as HTML", e -> { | |||
panel.setCaptionAsHtml(true); | |||
}); | |||
changeCaptionFormat.setId("buttonId"); | |||
addComponent(changeCaptionFormat); | |||
} | |||
} |
@@ -4,6 +4,7 @@ import static org.junit.Assert.assertEquals; | |||
import org.junit.Test; | |||
import com.vaadin.testbench.By; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class PanelChangeContentsTest extends MultiBrowserTest { | |||
@@ -29,5 +30,6 @@ public class PanelChangeContentsTest extends MultiBrowserTest { | |||
"/VVerticalLayout[0]/Slot[1]/VPanel[0]/VVerticalLayout[0]/Slot[0]/VLabel[0]") | |||
.getText()); | |||
assertElementNotPresent(By.className("caption-with-html")); | |||
} | |||
} |
@@ -0,0 +1,16 @@ | |||
package com.vaadin.tests.components.panel; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
public class PanelHTMLCaptionTest extends MultiBrowserTest { | |||
@Test | |||
public void testCaptionDisplayedAsText() { | |||
openTestURL(); | |||
assertElementNotPresent(By.id("divId")); | |||
findElement(By.id("buttonId")).click(); | |||
assertElementPresent(By.id("divId")); | |||
} | |||
} |