2
2
3
3
namespace PreMailer . Net . Tests
4
4
{
5
- [ TestClass ]
6
- public class CssParserTests
7
- {
8
- [ TestMethod ]
9
- public void AddStylesheet_ContainsAtCharsetRule_ShouldStripRuleAndParseStylesheet ( )
10
- {
11
- var stylesheet = "@charset utf-8; div { width: 100% }" ;
5
+ [ TestClass ]
6
+ public class CssParserTests
7
+ {
8
+ [ TestMethod ]
9
+ public void AddStylesheet_ContainsAtCharsetRule_ShouldStripRuleAndParseStylesheet ( )
10
+ {
11
+ var stylesheet = "@charset utf-8; div { width: 100% }" ;
12
12
13
- var parser = new CssParser ( ) ;
14
- parser . AddStyleSheet ( stylesheet ) ;
13
+ var parser = new CssParser ( ) ;
14
+ parser . AddStyleSheet ( stylesheet ) ;
15
15
16
- Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
17
- }
16
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
17
+ }
18
18
19
- [ TestMethod ]
20
- public void AddStylesheet_ContainsAtPageSection_ShouldStripRuleAndParseStylesheet ( )
21
- {
22
- var stylesheet = "@page :first { margin: 2in 3in; } div { width: 100% }" ;
19
+ [ TestMethod ]
20
+ public void AddStylesheet_ContainsAtPageSection_ShouldStripRuleAndParseStylesheet ( )
21
+ {
22
+ var stylesheet = "@page :first { margin: 2in 3in; } div { width: 100% }" ;
23
23
24
- var parser = new CssParser ( ) ;
25
- parser . AddStyleSheet ( stylesheet ) ;
24
+ var parser = new CssParser ( ) ;
25
+ parser . AddStyleSheet ( stylesheet ) ;
26
26
27
- Assert . AreEqual ( 1 , parser . Styles . Count ) ;
28
- Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
29
- }
27
+ Assert . AreEqual ( 1 , parser . Styles . Count ) ;
28
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
29
+ }
30
30
31
- [ TestMethod ]
32
- public void AddStylesheet_ContainsUnsupportedMediaQuery_ShouldStrip ( )
33
- {
34
- var stylesheet = "@media print { div { width: 90%; } }" ;
31
+ [ TestMethod ]
32
+ public void AddStylesheet_ContainsUnsupportedMediaQuery_ShouldStrip ( )
33
+ {
34
+ var stylesheet = "@media print { div { width: 90%; } }" ;
35
35
36
- var parser = new CssParser ( ) ;
37
- parser . AddStyleSheet ( stylesheet ) ;
36
+ var parser = new CssParser ( ) ;
37
+ parser . AddStyleSheet ( stylesheet ) ;
38
38
39
- Assert . AreEqual ( 0 , parser . Styles . Count ) ;
40
- }
39
+ Assert . AreEqual ( 0 , parser . Styles . Count ) ;
40
+ }
41
41
42
- [ TestMethod ]
43
- public void AddStylesheet_ContainsUnsupportedMediaQueryAndNormalRules_ShouldStripMediaQueryAndParseRules ( )
44
- {
45
- var stylesheet = "div { width: 600px; } @media only screen and (max-width:620px) { div { width: 100% } } p { font-family: serif; }" ;
42
+ [ TestMethod ]
43
+ public void AddStylesheet_ContainsUnsupportedMediaQueryAndNormalRules_ShouldStripMediaQueryAndParseRules ( )
44
+ {
45
+ var stylesheet = "div { width: 600px; } @media only screen and (max-width:620px) { div { width: 100% } } p { font-family: serif; }" ;
46
46
47
- var parser = new CssParser ( ) ;
48
- parser . AddStyleSheet ( stylesheet ) ;
47
+ var parser = new CssParser ( ) ;
48
+ parser . AddStyleSheet ( stylesheet ) ;
49
49
50
- Assert . AreEqual ( 2 , parser . Styles . Count ) ;
50
+ Assert . AreEqual ( 2 , parser . Styles . Count ) ;
51
51
52
- Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
53
- Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
52
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
53
+ Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
54
54
55
- Assert . IsTrue ( parser . Styles . ContainsKey ( "p" ) ) ;
56
- Assert . AreEqual ( "serif" , parser . Styles [ "p" ] . Attributes [ "font-family" ] . Value ) ;
57
- }
55
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "p" ) ) ;
56
+ Assert . AreEqual ( "serif" , parser . Styles [ "p" ] . Attributes [ "font-family" ] . Value ) ;
57
+ }
58
58
59
- [ TestMethod ]
60
- public void AddStylesheet_ContainsSupportedMediaQuery_ShouldParseQueryRules ( )
61
- {
62
- var stylesheet = "@media only screen { div { width: 600px; } }" ;
59
+ [ TestMethod ]
60
+ public void AddStylesheet_ContainsSupportedMediaQuery_ShouldParseQueryRules ( )
61
+ {
62
+ var stylesheet = "@media only screen { div { width: 600px; } }" ;
63
63
64
- var parser = new CssParser ( ) ;
65
- parser . AddStyleSheet ( stylesheet ) ;
64
+ var parser = new CssParser ( ) ;
65
+ parser . AddStyleSheet ( stylesheet ) ;
66
66
67
- Assert . AreEqual ( 1 , parser . Styles . Count ) ;
67
+ Assert . AreEqual ( 1 , parser . Styles . Count ) ;
68
68
69
- Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
70
- Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
71
- }
69
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
70
+ Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
71
+ }
72
72
73
- [ TestMethod ]
73
+ [ TestMethod ]
74
74
public void AddStylesheet_ContainsImportStatement_ShouldStripOutImportStatement ( )
75
- {
76
- var stylesheet = "@import url(http://google.com/stylesheet); div { width : 600px; }" ;
77
- var parser = new CssParser ( ) ;
75
+ {
76
+ var stylesheet = "@import url(http://google.com/stylesheet); div { width : 600px; }" ;
77
+ var parser = new CssParser ( ) ;
78
78
parser . AddStyleSheet ( stylesheet ) ;
79
- Assert . AreEqual ( 1 , parser . Styles . Count ) ;
79
+ Assert . AreEqual ( 1 , parser . Styles . Count ) ;
80
80
81
- Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
81
+ Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
82
82
Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
83
- }
83
+ }
84
84
85
85
86
86
[ TestMethod ]
@@ -142,5 +142,19 @@ public void AddStylesheet_ContainsMuiltpleImportStatementWithMediaQuerys_ShouldS
142
142
Assert . IsTrue ( parser . Styles . ContainsKey ( "div" ) ) ;
143
143
Assert . AreEqual ( "600px" , parser . Styles [ "div" ] . Attributes [ "width" ] . Value ) ;
144
144
}
145
- }
145
+
146
+ [ TestMethod ]
147
+ public void AddStylesheet_ContainsEncodedImage ( )
148
+ {
149
+ var stylesheet = @"#logo
150
+ {
151
+ content: url('data:image/jpeg; base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=');
152
+ max-width: 200px;
153
+ height: auto;
154
+ }" ;
155
+ var parser = new CssParser ( ) ;
156
+ parser . AddStyleSheet ( stylesheet ) ;
157
+ var attributes = parser . Styles [ "#logo" ] . Attributes ;
158
+ }
159
+ }
146
160
}
0 commit comments