Beispiel #1
0
 public function testVisitTable()
 {
     $writer = new HTMLWriter();
     $id = "t" . (string) rand();
     $classes = [(string) rand(), (string) rand()];
     $data = ['d' . (string) rand() => (string) rand(), 'd' . (string) rand() => (string) rand()];
     $requestURI = (string) rand();
     $field1 = new Field([], [], "text", "Text Field Label", (string) rand());
     $field1Name = "TextField1";
     $row1 = RowBuilder::begin()->addWritable($field1, $field1Name)->setColumnLabel($field1Name, $field1->getLabel())->build();
     $field2 = new Field([], [], "text", "Text Field Label", (string) rand());
     $field2Name = "TextField2";
     $row2 = RowBuilder::begin()->addWritable($field2, $field2Name)->build();
     $table = TableBuilder::begin()->setId($id)->addClass($classes[0])->addClass($classes[1])->addData(array_keys($data)[0], array_values($data)[0])->addData(array_keys($data)[1], array_values($data)[1])->addRow($row1)->addRow($row2)->build();
     $_SERVER["REQUEST_URI"] = $requestURI;
     // Get result and strip quotes, for easier analysis
     $result = $this->stripQuotes($writer->visitTable($table));
     $row1Written = $this->stripQuotes($writer->visitRow($row1));
     $row2Written = $this->stripQuotes($writer->visitRow($row2));
     $this->assertContains("id={$id} class=table-container", $result);
     $this->assertContains("class=table-container " . implode(" ", $classes), $result);
     $this->assertContains("data-" . array_keys($data)[0] . "=" . array_values($data)[0], $result);
     $this->assertContains("data-" . array_keys($data)[1] . "=" . array_values($data)[1], $result);
     $this->assertContains("data-request-uri={$requestURI}", $result);
     $this->assertContains("</table>", $result);
     $this->assertContains("<th data-header-for={$field1Name}>{$field1->getLabel()}</th>", $result);
     $this->assertContains($row1Written, $result);
     $this->assertContains($row2Written, $result);
 }