|
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;
|
| 8 | +use ipl\Html\HtmlString; |
| 9 | +use ipl\Html\ValidHtml; |
7 | 10 |
|
8 | 11 | class AttributesTest extends TestCase
|
9 | 12 | {
|
@@ -113,4 +116,46 @@ function ($v) use (&$value) {
|
113 | 116 |
|
114 | 117 | $this->assertEquals(' foo="bar rab" bar="foo"', $attributes->render());
|
115 | 118 | }
|
| 119 | + |
| 120 | + public function testClone(): void |
| 121 | + { |
| 122 | + $original = Attributes::create([ |
| 123 | + 'class' => 'original-class', |
| 124 | + 'value' => 'original-value' |
| 125 | + ]); |
| 126 | + |
| 127 | + $clone = clone $original; |
| 128 | + $clone->get('class')->setValue('clone-class'); |
| 129 | + $clone->get('name')->setValue('clone-name'); |
| 130 | + $clone->remove('value'); |
| 131 | + |
| 132 | + $cloneCone = clone $clone; |
| 133 | + $cloneCone->get('class')->addValue('clone-clone-class'); |
| 134 | + $cloneCone->get('name')->setValue('clone-clone-name'); |
| 135 | + $cloneCone->get('value')->setValue('clone-clone-value'); |
| 136 | + |
| 137 | + $this->assertSame('original-class', $original->get('class')->getValue()); |
| 138 | + $this->assertSame('original-value', $original->get('value')->getValue()); |
| 139 | + $this->assertNull($original->get('name')->getValue()); |
| 140 | + $this->assertSame( |
| 141 | + ' class="original-class" value="original-value"', |
| 142 | + $original->render() |
| 143 | + ); |
| 144 | + |
| 145 | + $this->assertSame('clone-class', $clone->get('class')->getValue()); |
| 146 | + $this->assertNull($clone->get('value')->getValue()); |
| 147 | + $this->assertSame('clone-name', $clone->get('name')->getValue()); |
| 148 | + $this->assertSame( |
| 149 | + ' class="clone-class" name="clone-name"', |
| 150 | + $clone->render() |
| 151 | + ); |
| 152 | + |
| 153 | + $this->assertSame(['clone-class', 'clone-clone-class'], $cloneCone->get('class')->getValue()); |
| 154 | + $this->assertSame('clone-clone-name', $cloneCone->get('name')->getValue()); |
| 155 | + $this->assertSame('clone-clone-value', $cloneCone->get('value')->getValue()); |
| 156 | + $this->assertSame( |
| 157 | + ' class="clone-class clone-clone-class" name="clone-clone-name" value="clone-clone-value"', |
| 158 | + $cloneCone->render() |
| 159 | + ); |
| 160 | + } |
116 | 161 | }
|
0 commit comments