-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathPartialContentTest.php
68 lines (59 loc) · 2.05 KB
/
PartialContentTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
namespace Gt\DomTemplate\Test;
use Gt\Dom\HTMLDocument;
use Gt\DomTemplate\PartialContent;
use Gt\DomTemplate\PartialContentDirectoryNotFoundException;
use Gt\DomTemplate\PartialContentFileNotFoundException;
use Gt\DomTemplate\Test\TestFactory\DocumentTestFactory;
use PHPUnit\Framework\TestCase;
class PartialContentTest extends TestCase {
private string $baseDir;
protected function setUp():void {
$this->baseDir = tempnam(sys_get_temp_dir(), "phpgt-domtemplate-test");
$this->removeTempDir();
mkdir($this->baseDir, 0775, true);
}
protected function tearDown():void {
$this->removeTempDir();
}
public function testConstruct_throwsIfDirectoryNotExist():void {
$dir = $this->baseDir . "/" . uniqid("random-");
self::expectException(PartialContentDirectoryNotFoundException::class);
self::expectExceptionMessage("The partial content path does not exist: $dir");
new PartialContent($dir);
}
public function testGetContent_notExists():void {
$dir = $this->baseDir . "/" . uniqid("_partial");
mkdir($dir);
$sut = new PartialContent($dir);
self::expectException(PartialContentFileNotFoundException::class);
self::expectExceptionMessage("The partial content file does not exist: $dir/nothing.html");
$sut->getContent("nothing");
}
public function testGetContent():void {
$expectedContent = "Test file contents";
$dir = $this->baseDir . "/" . uniqid("_partial");
mkdir($dir);
file_put_contents("$dir/test.html", $expectedContent);
$sut = new PartialContent($dir);
self::assertSame(
$expectedContent,
$sut->getContent("test")
);
}
public function testGetHTMLDocument():void {
$expectedContent = "<!doctype html><h1>Test file contents</h1>";
$dir = $this->baseDir . "/" . uniqid("_partial");
mkdir($dir);
file_put_contents("$dir/test.html", $expectedContent);
$sut = new PartialContent($dir);
$document = $sut->getHTMLDocument("test");
self::assertSame(
"Test file contents",
$document->querySelector("h1")->textContent
);
}
protected function removeTempDir():void {
exec("rm -rf " . $this->baseDir);
}
}