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('