Skip to content

Commit 528b019

Browse files
committed
Test cloning attributes
1 parent f2cf92a commit 528b019

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

tests/AttributesTest.php

+31
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace ipl\Tests\Html;
44

5+
use ipl\Html\Attribute;
56
use ipl\Html\Attributes;
67
use ipl\Html\BaseHtmlElement;
78

@@ -113,4 +114,34 @@ function ($v) use (&$value) {
113114

114115
$this->assertEquals(' foo="bar rab" bar="foo"', $attributes->render());
115116
}
117+
118+
public function testClone(): void
119+
{
120+
$original = Attributes::create([
121+
'class' => 'original class',
122+
'value' => 'original value'
123+
]);
124+
125+
$clone = clone $original;
126+
$clone->get('class')->setValue('clone class');
127+
$clone->get('name')->setValue('clone name');
128+
$clone->remove('value');
129+
130+
$cloneCone = clone $clone;
131+
$cloneCone->get('class')->addValue('clone clone class');
132+
$cloneCone->get('name')->setValue('clone clone name');
133+
$cloneCone->get('value')->setValue('clone clone value');
134+
135+
$this->assertSame('original class', $original->get('class')->getValue());
136+
$this->assertSame('original value', $original->get('value')->getValue());
137+
$this->assertNull($original->get('name')->getValue());
138+
139+
$this->assertSame('clone class', $clone->get('class')->getValue());
140+
$this->assertNull($clone->get('value')->getValue());
141+
$this->assertSame('clone name', $clone->get('name')->getValue());
142+
143+
$this->assertSame(['clone class', 'clone clone class'], $cloneCone->get('class')->getValue());
144+
$this->assertSame('clone clone name', $cloneCone->get('name')->getValue());
145+
$this->assertSame('clone clone value', $cloneCone->get('value')->getValue());
146+
}
116147
}

0 commit comments

Comments
 (0)