Explorar el Código

setCaption of Panel did not honor setCaptionAsHtml (#11523)

Verify that correct mode(HTML/TEXT) of caption is set for the  Panel
Fixes #11521
tags/8.8.0.beta1
Tatu Lund hace 5 años
padre
commit
0035aa1d7a

+ 6
- 2
client/src/main/java/com/vaadin/client/ui/VPanel.java Ver fichero

@@ -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. */

+ 2
- 2
client/src/main/java/com/vaadin/client/ui/panel/PanelConnector.java Ver fichero

@@ -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");
}


+ 1
- 0
uitest/src/main/java/com/vaadin/tests/components/panel/PanelChangeContents.java Ver fichero

@@ -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);

+ 31
- 0
uitest/src/main/java/com/vaadin/tests/components/panel/PanelHTMLCaption.java Ver fichero

@@ -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);
}
}

+ 2
- 0
uitest/src/test/java/com/vaadin/tests/components/panel/PanelChangeContentsTest.java Ver fichero

@@ -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"));
}
}

+ 16
- 0
uitest/src/test/java/com/vaadin/tests/components/panel/PanelHTMLCaptionTest.java Ver fichero

@@ -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"));
}
}

Cargando…
Cancelar
Guardar