diff --git a/core/lib/Drupal/Core/Template/Attribute.php b/core/lib/Drupal/Core/Template/Attribute.php index 5926024..f0104f1 100644 --- a/core/lib/Drupal/Core/Template/Attribute.php +++ b/core/lib/Drupal/Core/Template/Attribute.php @@ -197,7 +197,11 @@ public function removeClass() { * @return bool */ public function hasClass($class) { - return in_array($class, $this->storage['class']->value()); + if (isset($this->storage['class']) && $this->storage['class'] instanceOf AttributeArray) { + return in_array($class, $this->storage['class']->value()); + } else { + return FALSE; + } } /** diff --git a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php index 49da086..0384da8 100644 --- a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php +++ b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php @@ -145,14 +145,14 @@ public function testRemoveClasses() { * @covers ::hasClass() */ public function testHasClass() { - // Add a class to check for. - $classes = array('we-totally-have-this-class'); - $attribute = new Attribute(array('class' => $classes)); + // Test an attribute without any classes. + $attribute = new Attribute(); + $this->assertFalse($attribute->hasClass('a-class-nowhere-to-be-found')); + // Add a class to check for. + $attribute->addClass('we-totally-have-this-class'); // Check that this class exists. $this->assertTrue($attribute->hasClass('we-totally-have-this-class')); - // Check that this class does not exist. - $this->assertFalse($attribute->hasClass('a-class-nowhere-to-be-found')); } /**