@@ -9,25 +9,92 @@ namespace AngleSharp.Css.Tests.Extensions
9
9
public class NestingTests
10
10
{
11
11
[ Test ]
12
- public void SimpleSelectorNesting ( )
12
+ public void SimpleSelectorNestingImplicit ( )
13
13
{
14
14
var source = @"<!doctype html><head><style>.foo {
15
15
color: green;
16
- .bar {
16
+ .bar {
17
17
font-size: 1.4rem;
18
18
}
19
19
}</style></head><body class='foo'><div class='bar'>Larger and green" ;
20
20
var document = ParseDocument ( source ) ;
21
21
var window = document . DefaultView ;
22
- Assert . IsNotNull ( document ) ;
22
+ var element = document . QuerySelector ( ".bar" ) ;
23
+ var style = window . GetComputedStyle ( element ) ;
23
24
25
+ Assert . AreEqual ( "1.4rem" , style . GetFontSize ( ) ) ;
26
+ }
27
+
28
+ [ Test ]
29
+ public void SimpleSelectorNestingExplicit ( )
30
+ {
31
+ var source = @"<!doctype html><head><style>.foo {
32
+ color: green;
33
+ & .bar {
34
+ font-size: 1.4rem;
35
+ }
36
+ }</style></head><body class='foo'><div class='bar'>Larger and green" ;
37
+ var document = ParseDocument ( source ) ;
38
+ var window = document . DefaultView ;
24
39
var element = document . QuerySelector ( ".bar" ) ;
25
- Assert . IsNotNull ( element ) ;
40
+ var style = window . GetComputedStyle ( element ) ;
41
+
42
+ Assert . AreEqual ( "1.4rem" , style . GetFontSize ( ) ) ;
43
+ }
44
+
45
+ [ Test ]
46
+ public void SimpleSelectorNestingOverwritten ( )
47
+ {
48
+ var source = @"<!doctype html><head><style>.foo .bar {
49
+ font-size: 1rem;
50
+ }
26
51
52
+ .foo {
53
+ color: green;
54
+ .bar {
55
+ font-size: 1.4rem;
56
+ }
57
+ }</style></head><body class='foo'><div class='bar'>Larger and green" ;
58
+ var document = ParseDocument ( source ) ;
59
+ var window = document . DefaultView ;
60
+ var element = document . QuerySelector ( ".bar" ) ;
27
61
var style = window . GetComputedStyle ( element ) ;
28
- Assert . IsNotNull ( style ) ;
29
62
30
63
Assert . AreEqual ( "1.4rem" , style . GetFontSize ( ) ) ;
31
64
}
65
+
66
+ [ Test ]
67
+ public void CombinedSelectorNesting ( )
68
+ {
69
+ var source = @"<!doctype html><head><style>.foo {
70
+ color: red;
71
+ &.bar {
72
+ color: green;
73
+ }
74
+ }</style></head><body><div class='foo bar'>green" ;
75
+ var document = ParseDocument ( source ) ;
76
+ var window = document . DefaultView ;
77
+ var element = document . QuerySelector ( ".bar" ) ;
78
+ var style = window . GetComputedStyle ( element ) ;
79
+
80
+ Assert . AreEqual ( "rgba(0, 128, 0, 1)" , style . GetColor ( ) ) ;
81
+ }
82
+
83
+ [ Test ]
84
+ public void ReversedSelectorNesting ( )
85
+ {
86
+ var source = @"<!doctype html><head><style>li {
87
+ color: red;
88
+ .list & {
89
+ color: green;
90
+ }
91
+ }</style></head><body><ul class='list'><li>green" ;
92
+ var document = ParseDocument ( source ) ;
93
+ var window = document . DefaultView ;
94
+ var element = document . QuerySelector ( "li" ) ;
95
+ var style = window . GetComputedStyle ( element ) ;
96
+
97
+ Assert . AreEqual ( "rgba(0, 128, 0, 1)" , style . GetColor ( ) ) ;
98
+ }
32
99
}
33
100
}
0 commit comments