forked from AngleSharp/AngleSharp.Css
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAsyncParsing.cs
More file actions
48 lines (42 loc) · 1.6 KB
/
AsyncParsing.cs
File metadata and controls
48 lines (42 loc) · 1.6 KB
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
#nullable disable
namespace AngleSharp.Css.Tests.Extensions
{
using AngleSharp.Css.Parser;
using AngleSharp.Css.Tests.Mocks;
using NUnit.Framework;
using System.Text;
using System.Threading.Tasks;
[TestFixture]
public class AsyncParsingTests
{
[Test]
public async Task TestAsyncCssParsingFromStream()
{
var text = "h1 { color: red; } h2 { color: blue; } p { font-family: Arial; } div { margin: 10 }";
var source = new DelayedStream(Encoding.UTF8.GetBytes(text));
var context = BrowsingContext.New(Configuration.Default.WithCss());
var parser = context.GetService<ICssParser>();
using (var task = parser.ParseStyleSheetAsync(source))
{
Assert.IsFalse(task.IsCompleted);
var result = await task;
Assert.IsTrue(task.IsCompleted);
Assert.AreEqual(4, result.Rules.Length);
}
}
[Test]
public async Task TestAsyncCssParsingFromString()
{
var source = "h1 { color: red; } h2 { color: blue; } p { font-family: Arial; } div { margin: 10 }";
var context = BrowsingContext.New(Configuration.Default.WithCss());
var parser = context.GetService<ICssParser>();
using (var task = parser.ParseStyleSheetAsync(source))
{
Assert.IsTrue(task.IsCompleted);
var result = await task;
Assert.AreEqual(result, result);
Assert.AreEqual(4, result.Rules.Length);
}
}
}
}