From 0b92bebc24285e4bdbb70ab5d135a55fbe53fc0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20K=C3=A4fer?= Date: Tue, 13 Jul 2021 15:41:20 +0200 Subject: [PATCH] Extend HtmlImage by loading parameter. --- README.md | 2 +- src/HtmlImage.php | 25 ++++++++++++++++++++++++- tests/HtmlImageTest.php | 22 ++++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0350e6..ef26904 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ Instances of `HtmlElementUniversalAbstract`, such as achor, break, button, div, `getId()`, `setId($id)`, `getClass()`, `setClass($class)`, `getStyle()`, `setStyle($style)`, `getTitle()`, `setTitle($title)`, `getOnClick()`, `setOnClick($event)`, `getOnDoubleClick()`, `setOnDoubleClick($event)`, `getOnMouseDown()`, `setOnMouseDown($event)`, `getOnMouseUp()`, `setOnMouseUp($event)`, `getOnMouseOver()`, `setOnMouseOver($event)`, `getOnMouseMove()`, `setOnMouseMove($event)`, `getOnMouseOut()`, `setOnMouseOut($event)`, `getOnKeyPress()`, `setOnKeyPress($event)`, `getOnKeyDown()`, `setOnKeyDown($event)`, `getOnKeyUp()`, `setOnKeyUp($event)` -Some html elements also have special getter-/setter-methodes to access and modify attributes. For Example anchor (href, target, name, onblur, onfocus), button (type, name, value, tabindex, disabled, onblur, onfocus), image (src, alt, width, height), meta (name), label (for), form (action, method, target, enctype, autocomplete, onreset, onsubmit), input (type, name, disabled, readonly, onblur, onchange, onfocus). +Some html elements also have special getter-/setter-methodes to access and modify attributes. For Example anchor (href, target, name, onblur, onfocus), button (type, name, value, tabindex, disabled, onblur, onfocus), image (src, alt, width, height, loading), meta (name), label (for), form (action, method, target, enctype, autocomplete, onreset, onsubmit), input (type, name, disabled, readonly, onblur, onchange, onfocus). ### Nested elements diff --git a/src/HtmlImage.php b/src/HtmlImage.php index c6b3449..da00f72 100755 --- a/src/HtmlImage.php +++ b/src/HtmlImage.php @@ -116,4 +116,27 @@ public function setHeight($height) } return $this; } -} \ No newline at end of file + + /** + * @return string + */ + public function getLoading() + { + return $this->getAttribute('loading'); + } + + /** + * @param string $loading + * @return HtmlImage + */ + public function setLoading($loading) + { + if ($loading === 'eager' || $loading === 'lazy') { + $this->setAttribute('loading', $loading); + } else { + $this->setAttribute('loading', null); + } + + return $this; + } +} diff --git a/tests/HtmlImageTest.php b/tests/HtmlImageTest.php index 611f178..1842aa0 100644 --- a/tests/HtmlImageTest.php +++ b/tests/HtmlImageTest.php @@ -90,4 +90,26 @@ public function testSetClass() $htmlElementObject->setClass('testClass'); $this->assertEquals('', $htmlBuilder->render($htmlElementObject)); } + + public function testSetLoading() + { + $htmlBuilder = new HtmlBuilder(); + + $src = 'foo.png'; + + $htmlElementObject = new HtmlImage($src); + $htmlElementObject->setLoading('eager'); + $this->assertEquals('', $htmlBuilder->render($htmlElementObject)); + } + + public function testSetLoadingWithWrongValue() + { + $htmlBuilder = new HtmlBuilder(); + + $src = 'foo.png'; + + $htmlElementObject = new HtmlImage($src); + $htmlElementObject->setLoading('xyz'); + $this->assertEquals('