assertInternalType('array', $result);
$this->assertCount(3, $result);
$this->assertArrayHasKey("settings", $result);
$this->assertArrayHasKey("code", $result);
$this->assertArrayHasKey("markup", $result);
$this->assertEmpty($result["settings"]);
$this->assertNull($result["code"]);
$this->assertNotNull($result["markup"]);
$this->assertEquals("this is a twig content", $result["markup"]);
// Test two sections
$result = SectionParser::parse("url = \"/blog/post/\" \n==\n this is a twig content");
$this->assertInternalType('array', $result);
$this->assertCount(3, $result);
$this->assertArrayHasKey("settings", $result);
$this->assertArrayHasKey("code", $result);
$this->assertArrayHasKey("markup", $result);
$this->assertNotNull($result["markup"]);
$this->assertNotNull($result["settings"]);
$this->assertNull($result["code"]);
$this->assertEquals("this is a twig content", $result["markup"]);
$this->assertInternalType("array", $result["settings"]);
$this->assertArrayHasKey("url", $result["settings"]);
$this->assertEquals("/blog/post/", $result["settings"]["url"]);
// Test three sections
$result = SectionParser::parse("url = \"/blog/post/\"\n[section]\nindex = value \n===\n \$var = 23; \n phpinfo(); \n===\n this is a twig content");
$this->assertInternalType('array', $result);
$this->assertCount(3, $result);
$this->assertArrayHasKey("settings", $result);
$this->assertArrayHasKey("code", $result);
$this->assertArrayHasKey("markup", $result);
$this->assertNotNull($result["settings"]);
$this->assertNotNull($result["markup"]);
$this->assertNotNull($result["code"]);
$this->assertEquals("this is a twig content", $result["markup"]);
$this->assertInternalType("array", $result["settings"]);
$this->assertArrayHasKey("url", $result["settings"]);
$this->assertEquals("/blog/post/", $result["settings"]["url"]);
$this->assertContains("\$var = 23;", $result["code"]);
$this->assertContains("phpinfo();", $result["code"]);
$this->assertArrayHasKey("section", $result["settings"]);
$this->assertInternalType("array", $result["settings"]["section"]);
$this->assertArrayHasKey("index", $result["settings"]["section"]);
$this->assertEquals("value", $result["settings"]["section"]["index"]);
// Test zero sections
$result = SectionParser::parse("");
$this->assertCount(3, $result);
$this->assertArrayHasKey("settings", $result);
$this->assertArrayHasKey("code", $result);
$this->assertArrayHasKey("markup", $result);
$this->assertEmpty($result["settings"]);
$this->assertNotNull($result["markup"]);
$this->assertNull($result["code"]);
$this->assertEquals("", $result["markup"]);
}
public function testParseOffset()
{
// Test three sections
$content = <<
Line 2
Line 3
ESC; $result = SectionParser::parseOffset($content); $this->assertArrayHasKey("settings", $result); $this->assertArrayHasKey("code", $result); $this->assertArrayHasKey("markup", $result); $this->assertNotNull($result["markup"]); $this->assertNull($result["settings"]); $this->assertNull($result["code"]); $this->assertEquals(1, $result["markup"]); // Test empty PHP $content = <<Line 10
ESC; $result = SectionParser::parseOffset($content); $this->assertArrayHasKey("settings", $result); $this->assertArrayHasKey("code", $result); $this->assertArrayHasKey("markup", $result); $this->assertNotNull($result["settings"]); $this->assertNotNull($result["code"]); $this->assertNotNull($result["markup"]); $this->assertEquals(1, $result["settings"]); $this->assertEquals(5, $result["code"]); $this->assertEquals(10, $result["markup"]); // Test with PHP tags and whitespace $content = <<Line 18
ESC; $result = SectionParser::parseOffset($content); $this->assertArrayHasKey("settings", $result); $this->assertArrayHasKey("code", $result); $this->assertArrayHasKey("markup", $result); $this->assertNotNull($result["settings"]); $this->assertNotNull($result["code"]); $this->assertNotNull($result["markup"]); $this->assertEquals(1, $result["settings"]); $this->assertEquals(13, $result["code"]); $this->assertEquals(18, $result["markup"]); // Test with PHP tags and whitespace both sides $content = <<Line 25
ESC; $result = SectionParser::parseOffset($content); $this->assertArrayHasKey("settings", $result); $this->assertArrayHasKey("code", $result); $this->assertArrayHasKey("markup", $result); $this->assertNotNull($result["settings"]); $this->assertNotNull($result["code"]); $this->assertNotNull($result["markup"]); $this->assertEquals(1, $result["settings"]); $this->assertEquals(20, $result["code"]); $this->assertEquals(25, $result["markup"]); // Test with whitespace on PHP and Twig $content = <<