Verify that correct mode(HTML/TEXT) of caption is set for the Panel Fixes #11521tags/8.8.0.beta1
} | } | ||||
/** For internal use only. May be removed or replaced in the future. */ | /** 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. */ | /** For internal use only. May be removed or replaced in the future. */ |
panel.captionNode.setClassName(VPanel.CLASSNAME + "-caption"); | panel.captionNode.setClassName(VPanel.CLASSNAME + "-caption"); | ||||
boolean hasCaption = hasCaption(); | boolean hasCaption = hasCaption(); | ||||
if (hasCaption) { | if (hasCaption) { | ||||
panel.setCaption(getState().caption); | |||||
panel.setCaption(getState().caption,getState().captionAsHtml); | |||||
} else { | } else { | ||||
panel.setCaption(""); | |||||
panel.setCaption("",false); | |||||
panel.captionNode.setClassName(VPanel.CLASSNAME + "-nocaption"); | panel.captionNode.setClassName(VPanel.CLASSNAME + "-nocaption"); | ||||
} | } | ||||
buttons.addComponent(companiesButton); | buttons.addComponent(companiesButton); | ||||
buttons.addComponent(settingsButton); | buttons.addComponent(settingsButton); | ||||
panel = new Panel(); | panel = new Panel(); | ||||
panel.setCaption("<div class=\"caption-with-html\">Caption</div>"); | |||||
panel.setSizeFull(); | panel.setSizeFull(); | ||||
panel.setContent(stats); | panel.setContent(stats); | ||||
content.addComponent(buttons); | content.addComponent(buttons); |
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); | |||||
} | |||||
} |
import org.junit.Test; | import org.junit.Test; | ||||
import com.vaadin.testbench.By; | |||||
import com.vaadin.tests.tb3.MultiBrowserTest; | import com.vaadin.tests.tb3.MultiBrowserTest; | ||||
public class PanelChangeContentsTest extends MultiBrowserTest { | public class PanelChangeContentsTest extends MultiBrowserTest { | ||||
"/VVerticalLayout[0]/Slot[1]/VPanel[0]/VVerticalLayout[0]/Slot[0]/VLabel[0]") | "/VVerticalLayout[0]/Slot[1]/VPanel[0]/VVerticalLayout[0]/Slot[0]/VLabel[0]") | ||||
.getText()); | .getText()); | ||||
assertElementNotPresent(By.className("caption-with-html")); | |||||
} | } | ||||
} | } |
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")); | |||||
} | |||||
} |