public function testBuilder() { $type = "type"; $classes = ["class1", "class2"]; $contents = "example contents"; $script = ScriptBuilder::begin()->setType($type)->addClass($classes[0])->addClass($classes[1])->setContents($contents)->build(); $this->assertEquals($type, $script->getType()); $this->assertEquals($contents, $script->getContents()); $this->assertContains($classes[0], $script->getClasses()); $this->assertContains($classes[1], $script->getClasses()); }
/** * @param string $contents * @return WritableBearerBuilder */ public function addScript($contents) { $script = ScriptBuilder::begin()->setContents($contents)->build(); $this->addWritable($script); return $this; }
public function testVisitScript() { $writer = new HTMLWriter(); $contents = 'c' . (string) rand(); $classes = ["class1", "class2"]; $data = ['d' . (string) rand() => (string) rand(), 'd' . (string) rand() => (string) rand()]; $script = ScriptBuilder::begin()->addClass($classes[0])->addClass($classes[1])->addData(array_keys($data)[0], array_values($data)[0])->addData(array_keys($data)[1], array_values($data)[1])->setContents($contents)->build(); // Get result and strip quotes, for easier analysis $result = $this->stripQuotes($writer->visitScript($script)); $this->assertContains("<script", $result); $this->assertContains("{$contents}\n</script>", $result); $this->assertContains("class=script " . 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); }