-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCSSValidatorTest.php
96 lines (80 loc) · 3.58 KB
/
CSSValidatorTest.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
namespace CSSValidator\Tests;
use CSSValidator\CSSValidator;
use CSSValidator\Options;
use PHPUnit\Framework\TestCase;
class CSSValidatorTest extends TestCase
{
public function testCssUri(): void
{
$validator = new CSSValidator();
$result = $validator->validateUri('https://raw.githack.com/Gemorroj/CSSValidator/master/tests/fixtures/warnings.css');
self::assertEmpty($result->getErrors());
self::assertNotEmpty($result->getWarnings());
self::assertTrue($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
}
public function testHtmlUri(): void
{
$validator = new CSSValidator();
$result = $validator->validateUri('http://example.com');
self::assertEmpty($result->getErrors());
self::assertNotEmpty($result->getWarnings());
self::assertTrue($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
}
public function testValidCSSFile(): void
{
$validator = new CSSValidator();
$result = $validator->validateFile(__DIR__.'/fixtures/valid.css');
self::assertEmpty($result->getErrors());
self::assertEmpty($result->getWarnings());
self::assertTrue($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
}
public function testValidCSSFragment(): void
{
$css = '#valid-css-test { background: green; }';
$validator = new CSSValidator();
$result = $validator->validateFragment($css);
self::assertEmpty($result->getErrors());
self::assertEmpty($result->getWarnings());
self::assertTrue($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
}
public function testErrorCSSFragment(): void
{
$css = '#error-css-test!!!ing { bac#%^&kground: green; }';
$validator = new CSSValidator();
$result = $validator->validateFragment($css);
self::assertFalse($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
self::assertEmpty($result->getWarnings());
self::assertCount(1, $result->getErrors());
$error1 = $result->getErrors()[0];
self::assertSame('parse-error', $error1->getErrorType());
self::assertNull($error1->getContext());
self::assertSame('unrecognized', $error1->getErrorSubType());
self::assertSame('error-css-test!!!ing {%&kground: green', $error1->getSkippedString());
self::assertSame('file://localhost/TextArea', $error1->getUri());
self::assertSame(1, $error1->getLine());
self::assertSame('Parse Error', $error1->getMessage());
self::assertSame('generator.unrecognize', $error1->getType());
}
public function testWarningCSSFragment(): void
{
$css = '#warning-css-test { color: rgb(256, 1, 1); }';
$validator = new CSSValidator();
$result = $validator->validateFragment($css);
self::assertTrue($result->isValid());
self::assertSame(Options::PROFILE_CSS3, $result->getCssLevel());
self::assertEmpty($result->getErrors());
self::assertCount(1, $result->getWarnings());
$warning = $result->getWarnings()[0];
self::assertSame(0, $warning->getLevel());
self::assertSame('file://localhost/TextArea', $warning->getUri());
self::assertSame(1, $warning->getLine());
self::assertSame('“256” is out of range', $warning->getMessage());
self::assertSame('out-of-range', $warning->getType());
}
}