|
@@ -1,6 +1,6 @@
|
|
|
{
|
|
|
This file is part of the Free Pascal Run time library.
|
|
|
- Copyright (c) 2022- by Michael Van Canneyt ([email protected])
|
|
|
+ Copyright (c) 2022 by Michael Van Canneyt ([email protected])
|
|
|
|
|
|
This file contains the tests for the CSS parser
|
|
|
|
|
@@ -19,7 +19,7 @@ unit tcCSSParser;
|
|
|
interface
|
|
|
|
|
|
uses
|
|
|
- Classes, SysUtils, fpcunit, testutils, testregistry, fpcssparser, fpcsstree;
|
|
|
+ Classes, SysUtils, fpcunit, testregistry, fpcssparser, fpcsstree;
|
|
|
|
|
|
type
|
|
|
|
|
@@ -31,7 +31,7 @@ type
|
|
|
FSource : TStringStream;
|
|
|
FParser : TCSSParser;
|
|
|
FToFree: TCSSElement;
|
|
|
- procedure clear;
|
|
|
+ procedure Clear;
|
|
|
function GetRule: TCSSRuleElement;
|
|
|
protected
|
|
|
procedure SetUp; override;
|
|
@@ -39,7 +39,7 @@ type
|
|
|
Procedure CreateParser(Const ASource : string);
|
|
|
procedure Parse;
|
|
|
procedure Parse(Const aSource : String);
|
|
|
- function ParseRule(Const aSource : String) : TCSSRuleElement;
|
|
|
+ function ParseRule(Const aSource : String) : TCSSRuleElement;
|
|
|
procedure AssertEquals(AMessage: String; AExpected, AActual: TCSSUnits); overload;
|
|
|
procedure AssertEquals(AMessage: String; AExpected, AActual: TCSSBinaryOperation); overload;
|
|
|
Function CheckClass(Const aMsg : String; aExpectedClass : TCSSElementClass; aActual : TCSSElement) : TCSSElement;
|
|
@@ -465,19 +465,13 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestQueryPrefixedEmptyRule;
|
|
|
-var
|
|
|
- R : TCSSRuleElement;
|
|
|
begin
|
|
|
- R:=ParseRule('@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 3) { }');
|
|
|
+ ParseRule('@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 3) { }');
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestCommaPrefixedEmptyRule;
|
|
|
-var
|
|
|
- R : TCSSRuleElement;
|
|
|
- sel: TCSSArrayElement;
|
|
|
-
|
|
|
begin
|
|
|
- R:=ParseRule('#facebox .tl,#facebox .tl { }');
|
|
|
+ ParseRule('#facebox .tl,#facebox .tl { }');
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestOneDeclarationIDValue;
|
|
@@ -631,20 +625,13 @@ begin
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestOneDeclarationNoColon;
|
|
|
-
|
|
|
-Var
|
|
|
- R : TCSSRuleElement;
|
|
|
-
|
|
|
begin
|
|
|
- R:=ParseRule('@a b { 0% { d: e; } }');
|
|
|
+ ParseRule('@a b { 0% { d: e; } }');
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestTwoDeclarationNoColon;
|
|
|
-Var
|
|
|
- R : TCSSRuleElement;
|
|
|
-
|
|
|
begin
|
|
|
- R:=ParseRule('@a b { 0% { d: e; } 100% { f : g; } }');
|
|
|
+ ParseRule('@a b { 0% { d: e; } 100% { f : g; } }');
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestOneEmptyDeclaration;
|
|
@@ -654,18 +641,15 @@ begin
|
|
|
R:=ParseRule('{ ; }');
|
|
|
AssertEquals('selector count',0,R.SelectorCount);
|
|
|
AssertEquals('declaration count',0,R.ChildCount);
|
|
|
-
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestImportAtKeyWord;
|
|
|
var
|
|
|
R : TCSSAtRuleElement;
|
|
|
-// D : TCSSDeclarationElement;
|
|
|
begin
|
|
|
R:=TCSSAtRuleElement(CheckClass('at',TCSSAtRuleElement,ParseRule('@import url("abc.css");')));
|
|
|
AssertEquals('selector count',1,R.SelectorCount);
|
|
|
AssertEquals('declaration count',0,R.ChildCount);
|
|
|
-
|
|
|
end;
|
|
|
|
|
|
procedure TTestCSSParser.TestMediaPrint;
|
|
@@ -676,14 +660,14 @@ end;
|
|
|
procedure TTestCSSParser.TestSupportsFunction;
|
|
|
begin
|
|
|
ParseRule('@supports ((position: -webkit-sticky) or (position: sticky)) {'+ sLineBreak+
|
|
|
-' .sticky-top { '+ sLineBreak+
|
|
|
-' position: -webkit-sticky; '+ sLineBreak+
|
|
|
-' position: sticky; '+ sLineBreak+
|
|
|
-' top: 0; '+ sLineBreak+
|
|
|
-' z-index: 1020; '+ sLineBreak+
|
|
|
-' } '+ sLineBreak+
|
|
|
-'} '
|
|
|
-);
|
|
|
+ ' .sticky-top { '+ sLineBreak+
|
|
|
+ ' position: -webkit-sticky; '+ sLineBreak+
|
|
|
+ ' position: sticky; '+ sLineBreak+
|
|
|
+ ' top: 0; '+ sLineBreak+
|
|
|
+ ' z-index: 1020; '+ sLineBreak+
|
|
|
+ ' } '+ sLineBreak+
|
|
|
+ '} '
|
|
|
+ );
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -708,7 +692,7 @@ begin
|
|
|
FSource:=Nil;
|
|
|
end;
|
|
|
|
|
|
-procedure TTestBaseCSSParser.clear;
|
|
|
+procedure TTestBaseCSSParser.Clear;
|
|
|
|
|
|
begin
|
|
|
if FParseResult<>FToFree then
|