function AttributeTest::testChainAddRemoveClasses

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Template/AttributeTest.php \Drupal\Tests\Core\Template\AttributeTest::testChainAddRemoveClasses()
  2. 10 core/tests/Drupal/Tests/Core/Template/AttributeTest.php \Drupal\Tests\Core\Template\AttributeTest::testChainAddRemoveClasses()
  3. 11.x core/tests/Drupal/Tests/Core/Template/AttributeTest.php \Drupal\Tests\Core\Template\AttributeTest::testChainAddRemoveClasses()

Tests removing class attributes with the Attribute helper methods. @covers ::removeClass @covers ::addClass

File

core/tests/Drupal/Tests/Core/Template/AttributeTest.php, line 247

Class

AttributeTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Template%21Attribute.php/class/Attribute/9" title="Collects, sanitizes, and renders HTML attributes." class="local">\Drupal\Core\Template\Attribute</a> @group Template

Namespace

Drupal\Tests\Core\Template

Code

public function testChainAddRemoveClasses() {
    $attribute = new Attribute([
        'class' => [
            'example-class',
            'red',
            'green',
            'blue',
        ],
    ]);
    $attribute->removeClass([
        'red',
        'green',
        'pink',
    ])
        ->addClass([
        'apple',
        'lime',
        'grapefruit',
    ])
        ->addClass([
        'banana',
    ]);
    $expected = [
        'example-class',
        'blue',
        'apple',
        'lime',
        'grapefruit',
        'banana',
    ];
    $this->assertEquals($expected, $attribute['class']->value(), 'Attributes chained');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.