-
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathIgnoreChildrenElementComparerTest.cs
More file actions
70 lines (59 loc) · 4.06 KB
/
IgnoreChildrenElementComparerTest.cs
File metadata and controls
70 lines (59 loc) · 4.06 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
namespace AngleSharp.Diffing.Strategies.ElementStrategies;
public class IgnoreChildrenElementComparerTest : DiffingTestBase
{
public IgnoreChildrenElementComparerTest(DiffingTestFixture fixture) : base(fixture)
{
}
[Theory(DisplayName = "When a control element does not contain the 'diff:ignoreChildren' attribute or it is 'diff:ignoreChildren=false', the current decision is returned")]
[InlineData(@"<p></p>")]
[InlineData(@"<p diff:ignoreChildren=""false""></p>")]
[InlineData(@"<p diff:ignoreChildren=""FALSE""></p>")]
[InlineData(@"<p diff:ignoreChildren=""faLsE""></p>")]
public void Test001(string controlHtml)
{
var comparison = ToComparison(controlHtml, "<p></p>");
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Same).ShouldBe(CompareResult.Same);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Skip).ShouldBe(CompareResult.Skip);
}
[Theory(DisplayName = "When a control element has 'diff:ignoreChildren' attribute, CompareResult.SkipChildren flag is returned")]
[InlineData(@"<p diff:ignoreChildren></p>")]
[InlineData(@"<p diff:ignoreChildren=""true""></p>")]
[InlineData(@"<p diff:ignoreChildren=""TRUE""></p>")]
[InlineData(@"<p diff:ignoreChildren=""TrUe""></p>")]
public void Test002(string controlHtml)
{
var comparison = ToComparison(controlHtml, "<p></p>");
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipChildren);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipChildren);
}
[Theory(DisplayName = "When a control element has both 'diff:ignoreChildren' and a 'diff:ignoreAttributes'")]
[InlineData("<button diff:ignoreAttributes diff:ignoreChildren></button>", @"<button id=""buttonid"" class=""somecss"">Not Ignored</button>")]
[InlineData("<button diff:ignoreAttributes diff:ignoreChildren></button>", @"<button id=""buttonid"" class=""somecss""><span>Not Ignored</span></button>")]
public void Test003(string controlHtml, string testHtml)
{
var comparison = ToComparison(controlHtml, testHtml);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Same).ShouldBe(CompareResult.SkipChildren);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipChildren);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Skip).ShouldBe(CompareResult.Skip);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.SkipChildrenAndAttributes).ShouldBe(CompareResult.SkipChildrenAndAttributes);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.SkipAttributes).ShouldBe(CompareResult.SkipChildrenAndAttributes);
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.SkipChildren).ShouldBe(CompareResult.SkipChildren);
}
[Theory(DisplayName = "When control has 'diff:ignoreChildren' and current decision is Different, returns DifferentAndSkipChildren")]
[InlineData(@"<p diff:ignoreChildren></p>")]
[InlineData(@"<p diff:ignoreChildren=""true""></p>")]
public void Test004(string controlHtml)
{
var comparison = ToComparison(controlHtml, "<p></p>");
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.DifferentAndSkipChildren);
}
[Theory(DisplayName = "When control has 'diff:ignoreChildren' and current decision is DifferentAndSkipAttributes, returns DifferentAndSkipChildrenAndSkipAttributes")]
[InlineData(@"<p diff:ignoreChildren></p>")]
[InlineData(@"<p diff:ignoreChildren=""true""></p>")]
public void Test005(string controlHtml)
{
var comparison = ToComparison(controlHtml, "<p></p>");
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.DifferentAndSkipAttributes).ShouldBe(CompareResult.DifferentAndSkipChildrenAndSkipAttributes);
}
}