|
2 | 2 |
|
3 | 3 | namespace ipl\Tests\Html;
|
4 | 4 |
|
| 5 | +use ipl\Html\Attribute; |
5 | 6 | use ipl\Html\Attributes;
|
6 | 7 | use ipl\Html\BaseHtmlElement;
|
7 | 8 |
|
@@ -113,4 +114,34 @@ function ($v) use (&$value) {
|
113 | 114 |
|
114 | 115 | $this->assertEquals(' foo="bar rab" bar="foo"', $attributes->render());
|
115 | 116 | }
|
| 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 | + } |
116 | 147 | }
|
0 commit comments