Skip to content

Commit c774327

Browse files
use trait for table tests (#910)
1 parent 6db7714 commit c774327

File tree

4 files changed

+60
-54
lines changed

4 files changed

+60
-54
lines changed

tests/Concerns/HandlesTable.php

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace atk4\ui\tests\Concerns;
4+
5+
use atk4\ui\Table;
6+
7+
trait HandlesTable
8+
{
9+
/**
10+
* Extract only <tr> out from an atk4\ui\Table given the <tr> data-id attribute value.
11+
*
12+
* @param Table $table
13+
* @param string $rowDataId
14+
*
15+
* @return string
16+
*/
17+
protected function extractTableRow(Table $table, $rowDataId = '1')
18+
{
19+
$matches = [];
20+
21+
preg_match('/<.*data-id="'.$rowDataId.'".*/m', $table->render(), $matches);
22+
23+
return str_replace(["\r", "\n"], '', $matches[0]);
24+
}
25+
}

tests/GridTest.php

+7-14
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
class GridTest extends \atk4\core\PHPUnit_AgileTestCase
99
{
10+
use Concerns\HandlesTable;
11+
1012
public $m;
1113

1214
public function setUp()
@@ -15,7 +17,7 @@ public function setUp()
1517
$a[1] = ['id' => 1, 'email' => 'test@test.com', 'password' => 'abc123', 'xtra' => 'xtra'];
1618
$a[2] = ['id' => 2, 'email' => 'test@yahoo.com', 'password' => 'secret'];
1719

18-
$this->m = new MyModel(new \atk4\data\Persistence_Array($a));
20+
$this->m = new MyModel(new \atk4\data\Persistence\Array_($a));
1921
}
2022

2123
public function test1()
@@ -30,7 +32,7 @@ public function test1()
3032
$this->assertEquals('<td>{$email}</td><td>password={$password}</td>', $t->getDataRowHTML());
3133
$this->assertEquals(
3234
'<tr data-id="1"><td>test@test.com</td><td>password=abc123</td></tr>',
33-
$this->extract($t)
35+
$this->extractTableRow($t)
3436
);
3537
}
3638

@@ -46,7 +48,7 @@ public function test1a()
4648
$this->assertEquals('<td>{$email}</td><td>***</td>', $t->getDataRowHTML());
4749
$this->assertEquals(
4850
'<tr data-id="1"><td>test@test.com</td><td>***</td></tr>',
49-
$this->extract($t)
51+
$this->extractTableRow($t)
5052
);
5153
}
5254

@@ -60,7 +62,7 @@ public function test2()
6062
$this->assertEquals('<td>{$email}</td><td><a href="#" title="Delete {$email}?" class="delete"><i class="ui red trash icon"></i>Delete</a></td>', $t->getDataRowHTML());
6163
$this->assertEquals(
6264
'<tr data-id="1"><td>test@test.com</td><td><a href="#" title="Delete test@test.com?" class="delete"><i class="ui red trash icon"></i>Delete</a></td></tr>',
63-
$this->extract($t)
65+
$this->extractTableRow($t)
6466
);
6567
}
6668

@@ -74,18 +76,9 @@ public function test3()
7476
$this->assertEquals('<td>{$email}</td><td>***</td>', $t->getDataRowHTML());
7577
$this->assertEquals(
7678
'<tr data-id="1"><td>test@test.com</td><td>***</td></tr>',
77-
$this->extract($t)
79+
$this->extractTableRow($t)
7880
);
7981
}
80-
81-
public function extract($t)
82-
{
83-
// extract only <tr> out
84-
$val = $t->render();
85-
preg_match('/<.*data-id="1".*/m', $val, $matches);
86-
87-
return $matches[0];
88-
}
8982
}
9083

9184
class MyModel extends \atk4\data\Model

tests/TableColumnColorRatingTest.php

+6-12
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,13 @@
66

77
class TableColumnColorRatingTest extends \atk4\core\PHPUnit_AgileTestCase
88
{
9+
use Concerns\HandlesTable;
10+
911
public $db;
1012
/** @var Table */
1113
public $table;
1214
public $column;
1315

14-
protected function extract($val)
15-
{
16-
// extract only <tr> out
17-
preg_match('/<.*data-id="1".*/m', $val, $matches);
18-
19-
return $matches[0];
20-
}
21-
2216
public function setUp()
2317
{
2418
$arr = [
@@ -65,7 +59,7 @@ public function testValueGreaterThanMax()
6559

6660
$this->assertEquals(
6761
'<tr data-id="1"><td>bar</td><td>ref123</td><td style="background-color:#00ff00;">3</td></tr>',
68-
$this->extract($this->table->render())
62+
$this->extractTableRow($this->table)
6963
);
7064
}
7165

@@ -88,7 +82,7 @@ public function testValueGreaterThanMaxNoColor()
8882

8983
$this->assertEquals(
9084
'<tr data-id="1"><td>bar</td><td>ref123</td><td style="">3</td></tr>',
91-
$this->extract($this->table->render())
85+
$this->extractTableRow($this->table)
9286
);
9387
}
9488

@@ -115,7 +109,7 @@ public function testValueLowerThanMin()
115109

116110
$this->assertEquals(
117111
'<tr data-id="1"><td>bar</td><td>ref123</td><td style="background-color:#ff0000;">3</td></tr>',
118-
$this->extract($this->table->render())
112+
$this->extractTableRow($this->table)
119113
);
120114
}
121115

@@ -138,7 +132,7 @@ public function testValueLowerThanMinNoColor()
138132

139133
$this->assertEquals(
140134
'<tr data-id="1"><td>bar</td><td>ref123</td><td style="">3</td></tr>',
141-
$this->extract($this->table->render())
135+
$this->extractTableRow($this->table)
142136
);
143137
}
144138

tests/TableColumnLinkTest.php

+22-28
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
class TableColumnLinkTest extends \atk4\core\PHPUnit_AgileTestCase
66
{
7+
use Concerns\HandlesTable;
8+
79
public $db;
810
public $table;
911
public $column;
@@ -27,7 +29,7 @@ public function testgetDataRowHTML()
2729

2830
$this->assertEquals(
2931
'<tr data-id="1"><td>bar</td><td>ref123</td></tr>',
30-
$this->extract($this->table->render())
32+
$this->extractTableRow($this->table)
3133
);
3234
}
3335

@@ -39,7 +41,7 @@ public function testMultipleFormatters()
3941

4042
$this->assertEquals(
4143
'<tr data-id="1"><td><b>bar</b></td><td>ref123</td></tr>',
42-
$this->extract($this->table->render())
44+
$this->extractTableRow($this->table)
4345
);
4446
}
4547

@@ -54,7 +56,7 @@ public function testTDLast()
5456

5557
$this->assertEquals(
5658
'<tr data-id="1"><td>bar</td><td>ref123</td><td class="negative right aligned single line">-123</td></tr>',
57-
$this->extract($this->table->render())
59+
$this->extractTableRow($this->table)
5860
);
5961
}
6062

@@ -70,7 +72,7 @@ public function testTDNotLast()
7072

7173
$this->assertEquals(
7274
'<tr data-id="1"><td>bar</td><td>ref123</td><td class="negative right aligned single line"><b>-123</b></td></tr>',
73-
$this->extract($this->table->render())
75+
$this->extractTableRow($this->table)
7476
);
7577
}
7678

@@ -87,7 +89,7 @@ public function testTwoMoneys()
8789

8890
$this->assertEquals(
8991
'<tr data-id="1"><td class=" right aligned single line">bar</td><td>ref123</td><td class="negative right aligned single line"><b>-123</b></td></tr>',
90-
$this->extract($this->table->render())
92+
$this->extractTableRow($this->table)
9193
);
9294
}
9395

@@ -105,18 +107,10 @@ public function testTemplateStacking()
105107

106108
$this->assertEquals(
107109
'<tr data-id="1"><td><u><b>bar</b></u></td><td>ref123</td></tr>',
108-
$this->extract($this->table->render())
110+
$this->extractTableRow($this->table)
109111
);
110112
}
111113

112-
public function extract($val)
113-
{
114-
// extract only <tr> out
115-
preg_match('/<.*data-id="1".*/m', $val, $matches);
116-
117-
return $matches[0];
118-
}
119-
120114
public function testRender1()
121115
{
122116

@@ -126,7 +120,7 @@ public function testRender1()
126120

127121
$this->assertEquals(
128122
'<tr data-id="1"><td><u><b>bar</b></u></td><td>ref123</td></tr>',
129-
$this->extract($this->table->render())
123+
$this->extractTableRow($this->table)
130124
);
131125
}
132126

@@ -143,7 +137,7 @@ public function testRender1a()
143137

144138
$this->assertEquals(
145139
'<tr data-id="1"><td>bar</td><td>ref123</td><td>hello<b>world</b></td></tr>',
146-
$this->extract($this->table->render())
140+
$this->extractTableRow($this->table)
147141
);
148142
}
149143

@@ -158,7 +152,7 @@ public function testLink1()
158152

159153
$this->assertEquals(
160154
'<tr data-id="1"><td><a href="example.php?id=1">bar</a></td><td>ref123</td></tr>',
161-
$this->extract($this->table->render())
155+
$this->extractTableRow($this->table)
162156
);
163157
}
164158

@@ -173,7 +167,7 @@ public function testLink1a()
173167

174168
$this->assertEquals(
175169
'<tr data-id="1"><td><a href="example.php?id=1">bar</a></td><td>ref123</td></tr>',
176-
$this->extract($this->table->render())
170+
$this->extractTableRow($this->table)
177171
);
178172
}
179173

@@ -185,7 +179,7 @@ public function testLink2()
185179

186180
$this->assertEquals(
187181
'<tr data-id="1"><td><a href="example.php?id=%7B%24id%7D">bar</a></td><td>ref123</td></tr>',
188-
$this->extract($this->table->render())
182+
$this->extractTableRow($this->table)
189183
);
190184
}
191185

@@ -195,7 +189,7 @@ public function testLink3()
195189

196190
$this->assertEquals(
197191
'<tr data-id="1"><td><a href="example.php?id=1">bar</a></td><td>ref123</td></tr>',
198-
$this->extract($this->table->render())
192+
$this->extractTableRow($this->table)
199193
);
200194
}
201195

@@ -205,7 +199,7 @@ public function testLink4()
205199

206200
$this->assertEquals(
207201
'<tr data-id="1"><td><a href="example.php?test=1">bar</a></td><td>ref123</td></tr>',
208-
$this->extract($this->table->render())
202+
$this->extractTableRow($this->table)
209203
);
210204
}
211205

@@ -215,7 +209,7 @@ public function testLink5()
215209

216210
$this->assertEquals(
217211
'<tr data-id="1"><td><a href="example.php?test=1">bar</a></td><td>ref123</td></tr>',
218-
$this->extract($this->table->render())
212+
$this->extractTableRow($this->table)
219213
);
220214
}
221215

@@ -225,7 +219,7 @@ public function testLink6()
225219

226220
$this->assertEquals(
227221
'<tr data-id="1"><td><a href="example.php?test=1" download="true" >bar</a></td><td>ref123</td></tr>',
228-
$this->extract($this->table->render())
222+
$this->extractTableRow($this->table)
229223
);
230224
}
231225

@@ -235,7 +229,7 @@ public function testLink7()
235229

236230
$this->assertEquals(
237231
'<tr data-id="1"><td><a href="example.php?test=1" target="_blank" >bar</a></td><td>ref123</td></tr>',
238-
$this->extract($this->table->render())
232+
$this->extractTableRow($this->table)
239233
);
240234
}
241235

@@ -245,7 +239,7 @@ public function testLink8()
245239

246240
$this->assertEquals(
247241
'<tr data-id="1"><td><a href="example.php?test=1"><i class="icon info"></i>bar</a></td><td>ref123</td></tr>',
248-
$this->extract($this->table->render())
242+
$this->extractTableRow($this->table)
249243
);
250244
}
251245

@@ -255,7 +249,7 @@ public function testLink9()
255249

256250
$this->assertEquals(
257251
'<tr data-id="1"><td><a href="example.php?test=1"></a></td><td>ref123</td></tr>',
258-
$this->extract($this->table->render())
252+
$this->extractTableRow($this->table)
259253
);
260254
}
261255

@@ -276,7 +270,7 @@ public function testLink10()
276270

277271
$this->assertEquals(
278272
'<tr data-id="1"><td> --- </td><td>ref123</td></tr>',
279-
$this->extract($this->table->render())
273+
$this->extractTableRow($this->table)
280274
);
281275
}
282276

@@ -286,7 +280,7 @@ public function testLink11()
286280

287281
$this->assertEquals(
288282
'<tr data-id="1"><td class=""> bar<span class="ui icon link " data-tooltip="ref123"><i class="ui icon info circle"></span></td><td>ref123</td></tr>',
289-
$this->extract($this->table->render())
283+
$this->extractTableRow($this->table)
290284
);
291285
}
292286

0 commit comments

Comments
 (0)