From 5dfc30336ebab9130901ac91cde395ecb37db1df Mon Sep 17 00:00:00 2001 From: Denis Date: Wed, 25 Aug 2021 14:55:36 +0300 Subject: [PATCH] Revert "fix: remove href attribute for disabled Anchor (#11121)" (#11623) (#11632) This reverts commit 97db70e443f9ee2cf7fd6b36f135083d51d3be6b. --- .../vaadin/flow/component/html/Anchor.java | 36 ----- .../flow/component/html/AnchorTest.java | 130 ------------------ 2 files changed, 166 deletions(-) diff --git a/flow-html-components/src/main/java/com/vaadin/flow/component/html/Anchor.java b/flow-html-components/src/main/java/com/vaadin/flow/component/html/Anchor.java index 6e513beef0d..fc0ee38469a 100644 --- a/flow-html-components/src/main/java/com/vaadin/flow/component/html/Anchor.java +++ b/flow-html-components/src/main/java/com/vaadin/flow/component/html/Anchor.java @@ -43,9 +43,6 @@ public class Anchor extends HtmlContainer implements Focusable { .optionalAttributeWithDefault("target", AnchorTarget.DEFAULT.getValue()); - private String disabledHref; - private AbstractStreamResource resource; - /** * Creates a new empty anchor component. */ @@ -157,7 +154,6 @@ public void removeHref() { * the resource value, not null */ public void setHref(AbstractStreamResource href) { - resource = href; getElement().setAttribute("href", href); } @@ -249,36 +245,4 @@ public AnchorTargetValue getTargetValue() { return AnchorTarget.DEFAULT; } - @Override - public void onEnabledStateChanged(boolean enabled) { - super.onEnabledStateChanged(enabled); - if (enabled) { - if (resource == null) { - restoreHref(); - } else { - restoreResource(); - } - disabledHref = null; - } else { - disabledHref = getHref(); - removeHref(); - } - } - - private void restoreHref() { - if (!getElement().hasAttribute("href")) { - // only set attribute value back if attribute has not been set - // somehow when component was disabled - setHref(disabledHref); - } - } - - private void restoreResource() { - if (!getElement().hasAttribute("href")) { - // only set attribute value back if attribute has not been set - // somehow when component was disabled - setHref(resource); - } - } - } diff --git a/flow-html-components/src/test/java/com/vaadin/flow/component/html/AnchorTest.java b/flow-html-components/src/test/java/com/vaadin/flow/component/html/AnchorTest.java index 9bfeb3722f5..24bd7cfed91 100644 --- a/flow-html-components/src/test/java/com/vaadin/flow/component/html/AnchorTest.java +++ b/flow-html-components/src/test/java/com/vaadin/flow/component/html/AnchorTest.java @@ -17,24 +17,13 @@ import java.util.Optional; -import org.junit.After; import org.junit.Assert; import org.junit.Test; import com.vaadin.flow.component.Text; -import com.vaadin.flow.component.UI; -import com.vaadin.flow.server.AbstractStreamResource; public class AnchorTest extends ComponentTest { - private UI ui; - - @After - public void tearDown() { - ui = null; - UI.setCurrent(null); - } - @Test public void removeHref() { Anchor anchor = new Anchor(); @@ -110,120 +99,6 @@ public void getTargetValue_useSomeStringValue_targetIsReturned() { Assert.assertEquals("foo", anchor.getTargetValue().getValue()); } - @Test - public void disabledAnchor_hrefIsRemoved_enableAnchor_hrefIsRestored() { - Anchor anchor = new Anchor("foo", "bar"); - anchor.setEnabled(false); - - Assert.assertFalse(anchor.getElement().hasAttribute("href")); - - anchor.setEnabled(true); - Assert.assertTrue(anchor.getElement().hasAttribute("href")); - Assert.assertEquals("foo", anchor.getHref()); - } - - @Test - public void disabledAnchor_setHrefWhenDisabled_enableAnchor_hrefIsPreserved() { - Anchor anchor = new Anchor("foo", "bar"); - anchor.setEnabled(false); - - anchor.setHref("baz"); - - anchor.setEnabled(true); - - Assert.assertTrue(anchor.getElement().hasAttribute("href")); - Assert.assertEquals("baz", anchor.getHref()); - } - - @Test - public void disabledAnchor_setResourceWhenDisabled_enableAnchor_resourceIsPreserved() { - Anchor anchor = new Anchor("foo", "bar"); - anchor.setEnabled(false); - - mockUI(); - anchor.setHref(new AbstractStreamResource() { - - @Override - public String getName() { - return "baz"; - } - }); - String href = anchor.getHref(); - - anchor.setEnabled(true); - - Assert.assertTrue(anchor.getElement().hasAttribute("href")); - Assert.assertEquals(href, anchor.getHref()); - } - - @Test - public void disabledAnchor_setResource_hrefIsRemoved_enableAnchor_hrefIsRestored() { - mockUI(); - AbstractStreamResource resource = new AbstractStreamResource() { - - @Override - public String getName() { - return "foo"; - } - - }; - Anchor anchor = new Anchor(resource, "bar"); - String href = anchor.getHref(); - anchor.setEnabled(false); - - Assert.assertFalse(anchor.getElement().hasAttribute("href")); - - anchor.setEnabled(true); - Assert.assertEquals(href, anchor.getHref()); - } - - @Test - public void disabledAnchor_setResourceWhenDisabled_hrefIsPreserved() { - mockUI(); - AbstractStreamResource resource = new AbstractStreamResource() { - - @Override - public String getName() { - return "foo"; - } - - }; - Anchor anchor = new Anchor(resource, "bar"); - String href = anchor.getHref(); - anchor.setEnabled(false); - - anchor.setHref(new AbstractStreamResource() { - - @Override - public String getName() { - return "baz"; - } - }); - - Assert.assertTrue(anchor.getElement().hasAttribute("href")); - Assert.assertNotEquals(href, anchor.getHref()); - } - - @Test - public void disabledAnchor_setResource_setHrefViaElementWhenDisabled_enableAnchor_hrefIsRestored() { - mockUI(); - AbstractStreamResource resource = new AbstractStreamResource() { - - @Override - public String getName() { - return "foo"; - } - - }; - Anchor anchor = new Anchor(resource, "bar"); - anchor.setEnabled(false); - - anchor.getElement().setAttribute("href", "baz"); - - anchor.setEnabled(true); - Assert.assertEquals("baz", anchor.getHref()); - } - // Other test methods in super class @Override @@ -232,9 +107,4 @@ protected void addProperties() { addOptionalStringProperty("target"); } - private void mockUI() { - ui = new UI(); - UI.setCurrent(ui); - } - }