XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESystem

【Rust】XFE系统,基于Rust和汇编

公开
关注 0 Fork 0 Star 0
UTF-8
using AngleSharp.Dom;
using AngleSharp.Html.Parser;

namespace XFESystem.Browser.Tests;

public sealed class MinifiedStylesheetTests
{
    [Fact]
    public void OmittedSemicolonsImportPreludesAndQuotedDelimitersKeepTheirMeaning()
    {
        string icons = string.Concat(Enumerable.Range(0, 1600).Select(i => $".icon{i}::before{{content:'{i}'}}"));
        var document = new HtmlParser().ParseDocument("<!doctype html><style>@import url('missing;sheet.css');" + icons +
            "/* { ; } */p[data-x=';{']{color:blue}p{width:120px}p::after{content:';{'}" +
            "</style><p class=icon1599 data-x=';{'>text</p>");
        var engine = new BrowserLayoutEngine(); var list = engine.Layout(document, new(300, 100));
        var element = document.QuerySelector("p")!;
        Assert.Equal(0x0000ffu, list.GetComputedStyle(element)!.Color.Rgb);
        Assert.Equal(120, list.GetBoundingClientRect(element).Width);
        Assert.Contains(list.Commands, c => c.Text == "1599"); Assert.Contains(list.Commands, c => c.Text == ";{");
        Assert.Contains(list.Diagnostics, d => d.Contains("@import", StringComparison.Ordinal));
        engine.Layout(document, new(320, 100)); Assert.Equal(2, engine.CssParseGeneration);
    }
}