1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- declare(strict_types=1);
- /*
- * This file is part of the league/commonmark package.
- *
- * (c) Colin O'Dell <colinodell@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace League\CommonMark\Tests\Unit\Extension\FrontMatter;
- use League\CommonMark\Extension\FrontMatter\Data\SymfonyYamlFrontMatterParser;
- use League\CommonMark\Extension\FrontMatter\FrontMatterParser;
- use PHPUnit\Framework\TestCase;
- final class FrontMatterParserTest extends TestCase
- {
- public function testWithFrontMatter(): void
- {
- $markdown = <<<EOT
- ---
- title: Hello World!
- published: true
- ---
- Yay
- ---
- EOT;
- $parser = new FrontMatterParser(new SymfonyYamlFrontMatterParser());
- $parsedData = $parser->parse($markdown);
- $this->assertSame(['title' => 'Hello World!', 'published' => true], $parsedData->getFrontMatter());
- $this->assertSame("Yay\n---", $parsedData->getContent());
- }
- public function testWithFrontMatterThatsJustAString(): void
- {
- $markdown = <<<EOT
- ---
- Hello World!
- ---
- Yay
- ---
- EOT;
- $parser = new FrontMatterParser(new SymfonyYamlFrontMatterParser());
- $parsedData = $parser->parse($markdown);
- $this->assertSame('Hello World!', $parsedData->getFrontMatter());
- $this->assertSame("Yay\n---", $parsedData->getContent());
- }
- public function testWithNoFrontMatter(): void
- {
- $markdown = <<<EOT
- # Hello World!
- ---
- This is not front matter
- ---
- EOT;
- $parser = new FrontMatterParser(new SymfonyYamlFrontMatterParser());
- $parsedData = $parser->parse($markdown);
- $this->assertNull($parsedData->getFrontMatter());
- $this->assertSame($markdown, $parsedData->getContent());
- }
- public function testWithInvalidFrontMatterDelimiters(): void
- {
- $markdown = <<<EOT
- ---
- This is a heading
- -----------------
- EOT;
- $parser = new FrontMatterParser(new SymfonyYamlFrontMatterParser());
- $parsedData = $parser->parse($markdown);
- $this->assertNull($parsedData->getFrontMatter());
- $this->assertSame($markdown, $parsedData->getContent());
- }
- }
|