6
6
using System . IO ;
7
7
using System . Security . Cryptography ;
8
8
using QRCoderTests . Helpers ;
9
+
9
10
#if ! NETCOREAPP1_1
10
11
using System . Drawing ;
11
12
#endif
@@ -67,6 +68,19 @@ public void can_render_svg_qrcode_viewbox_mode()
67
68
result . ShouldBe ( "56719c7db39937c74377855a5dc4af0a" ) ;
68
69
}
69
70
71
+ [ Fact ]
72
+ [ Category ( "QRRenderer/SvgQRCode" ) ]
73
+ public void can_render_svg_qrcode_viewbox_mode_viewboxattr ( )
74
+ {
75
+ //Create QR code
76
+ var gen = new QRCodeGenerator ( ) ;
77
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . H ) ;
78
+ var svg = new SvgQRCode ( data ) . GetGraphic ( new Size ( 128 , 128 ) , sizingMode : SvgQRCode . SizingMode . ViewBoxAttribute ) ;
79
+
80
+ var result = HelperFunctions . StringToHash ( svg ) ;
81
+ result . ShouldBe ( "788afdb693b0b71eed344e495c180b60" ) ;
82
+ }
83
+
70
84
[ Fact ]
71
85
[ Category ( "QRRenderer/SvgQRCode" ) ]
72
86
public void can_render_svg_qrcode_without_quietzones ( )
@@ -80,6 +94,19 @@ public void can_render_svg_qrcode_without_quietzones()
80
94
result . ShouldBe ( "2a582427d86b51504c08ebcbcf0472bd" ) ;
81
95
}
82
96
97
+ [ Fact ]
98
+ [ Category ( "QRRenderer/SvgQRCode" ) ]
99
+ public void can_render_svg_qrcode_without_quietzones_hex ( )
100
+ {
101
+ //Create QR code
102
+ var gen = new QRCodeGenerator ( ) ;
103
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . H ) ;
104
+ var svg = new SvgQRCode ( data ) . GetGraphic ( 10 , "#000000" , "#ffffff" , false ) ;
105
+
106
+ var result = HelperFunctions . StringToHash ( svg ) ;
107
+ result . ShouldBe ( "4ab0417cc6127e347ca1b2322c49ed7d" ) ;
108
+ }
109
+
83
110
[ Fact ]
84
111
[ Category ( "QRRenderer/SvgQRCode" ) ]
85
112
public void can_render_svg_qrcode_with_png_logo ( )
@@ -89,8 +116,9 @@ public void can_render_svg_qrcode_with_png_logo()
89
116
var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . H ) ;
90
117
91
118
//Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909346
92
- var logoBitmap = ( Bitmap ) Bitmap . FromFile ( GetAssemblyPath ( ) + "\\ assets\\ noun_software engineer_2909346.png" ) ;
93
- var logoObj = new SvgQRCode . SvgLogo ( logoBitmap , 15 ) ;
119
+ var logoBitmap = ( Bitmap ) Image . FromFile ( GetAssemblyPath ( ) + "\\ assets\\ noun_software engineer_2909346.png" ) ;
120
+ var logoObj = new SvgQRCode . SvgLogo ( iconRasterized : logoBitmap , 15 ) ;
121
+ logoObj . GetMediaType ( ) . ShouldBe < SvgQRCode . SvgLogo . MediaType > ( SvgQRCode . SvgLogo . MediaType . PNG ) ;
94
122
95
123
var svg = new SvgQRCode ( data ) . GetGraphic ( 10 , Color . DarkGray , Color . White , logo : logoObj ) ;
96
124
@@ -100,20 +128,39 @@ public void can_render_svg_qrcode_with_png_logo()
100
128
101
129
[ Fact ]
102
130
[ Category ( "QRRenderer/SvgQRCode" ) ]
103
- public void can_render_svg_qrcode_with_svg_logo ( )
131
+ public void can_render_svg_qrcode_with_svg_logo_embedded ( )
132
+ {
133
+ //Create QR code
134
+ var gen = new QRCodeGenerator ( ) ;
135
+ var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . H ) ;
136
+
137
+ //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909361
138
+ var logoSvg = File . ReadAllText ( GetAssemblyPath ( ) + "\\ assets\\ noun_Scientist_2909361.svg" ) ;
139
+ var logoObj = new SvgQRCode . SvgLogo ( logoSvg , 20 ) ;
140
+ logoObj . GetMediaType ( ) . ShouldBe < SvgQRCode . SvgLogo . MediaType > ( SvgQRCode . SvgLogo . MediaType . SVG ) ;
141
+
142
+ var svg = new SvgQRCode ( data ) . GetGraphic ( 10 , Color . DarkGray , Color . White , logo : logoObj ) ;
143
+
144
+ var result = HelperFunctions . StringToHash ( svg ) ;
145
+ result . ShouldBe ( "855eb988d3af035abd273ed1629aa952" ) ;
146
+ }
147
+
148
+ [ Fact ]
149
+ [ Category ( "QRRenderer/SvgQRCode" ) ]
150
+ public void can_render_svg_qrcode_with_svg_logo_image_tag ( )
104
151
{
105
152
//Create QR code
106
153
var gen = new QRCodeGenerator ( ) ;
107
154
var data = gen . CreateQrCode ( "This is a quick test! 123#?" , QRCodeGenerator . ECCLevel . H ) ;
108
155
109
156
//Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909361
110
157
var logoSvg = File . ReadAllText ( GetAssemblyPath ( ) + "\\ assets\\ noun_Scientist_2909361.svg" ) ;
111
- var logoObj = new SvgQRCode . SvgLogo ( logoSvg , 30 ) ;
158
+ var logoObj = new SvgQRCode . SvgLogo ( logoSvg , 20 , iconEmbedded : false ) ;
112
159
113
160
var svg = new SvgQRCode ( data ) . GetGraphic ( 10 , Color . DarkGray , Color . White , logo : logoObj ) ;
114
161
115
162
var result = HelperFunctions . StringToHash ( svg ) ;
116
- result . ShouldBe ( "592271ef77406c0074a3005f78130906 " ) ;
163
+ result . ShouldBe ( "bd442ea77d45a41a4f490b8d41591e04 " ) ;
117
164
}
118
165
119
166
[ Fact ]
0 commit comments