Skip to content

Commit 7898ccf

Browse files
committed
Added tests for Length.To
1 parent 8b0133a commit 7898ccf

File tree

2 files changed

+89
-17
lines changed

2 files changed

+89
-17
lines changed

src/AngleSharp.Css.Tests/Values/UnitConversion.cs

+87-15
Original file line numberDiff line numberDiff line change
@@ -38,55 +38,55 @@ public void LengthParseCorrectVwValue()
3838
}
3939

4040
[Test]
41-
public void LengthToPixlesCorrectPercentWidth()
41+
public void LengthToPixelsCorrectPercentWidth()
4242
{
4343
var l = new Length(50, Length.Unit.Percent);
44-
var renderDevice = new DefaultRenderDevice{ ViewPortWidth = 500};
44+
var renderDevice = new DefaultRenderDevice {ViewPortWidth = 500};
4545
Assert.AreEqual(250, l.ToPixel(renderDevice, true));
4646
}
4747

4848
[Test]
49-
public void LengthToPixlesCorrectPercentHeight()
49+
public void LengthToPixelsCorrectPercentHeight()
5050
{
5151
var l = new Length(25, Length.Unit.Percent);
52-
var renderDevice = new DefaultRenderDevice{ ViewPortHeight = 600};
52+
var renderDevice = new DefaultRenderDevice {ViewPortHeight = 600};
5353
Assert.AreEqual(150, l.ToPixel(renderDevice, false));
5454
}
5555

5656
[Test]
57-
public void LengthToPixlesCorrectRem()
57+
public void LengthToPixelsCorrectRem()
5858
{
5959
var l = new Length(25, Length.Unit.Rem);
60-
var renderDevice = new DefaultRenderDevice{ FontSize = 10};
60+
var renderDevice = new DefaultRenderDevice {FontSize = 10};
6161
Assert.AreEqual(250, l.ToPixel(renderDevice));
6262
}
6363

6464
[Test]
65-
public void LengthToPixlesCorrectEm()
65+
public void LengthToPixelsCorrectEm()
6666
{
6767
var l = new Length(10, Length.Unit.Em);
68-
var renderDevice = new DefaultRenderDevice{ FontSize = 10};
68+
var renderDevice = new DefaultRenderDevice {FontSize = 10};
6969
Assert.AreEqual(100, l.ToPixel(renderDevice));
7070
}
7171

7272
[Test]
73-
public void LengthToPixlesCorrectVh()
73+
public void LengthToPixelsCorrectVh()
7474
{
7575
var l = new Length(10, Length.Unit.Vh);
76-
var renderDevice = new DefaultRenderDevice{ ViewPortHeight = 1000};
76+
var renderDevice = new DefaultRenderDevice {ViewPortHeight = 1000};
7777
Assert.AreEqual(100, l.ToPixel(renderDevice));
7878
}
7979

8080
[Test]
81-
public void LengthToPixlesCorrectVw()
81+
public void LengthToPixelsCorrectVw()
8282
{
8383
var l = new Length(20, Length.Unit.Vw);
84-
var renderDevice = new DefaultRenderDevice{ ViewPortHeight = 1000};
84+
var renderDevice = new DefaultRenderDevice {ViewPortHeight = 1000};
8585
Assert.AreEqual(200, l.ToPixel(renderDevice));
8686
}
8787

8888
[Test]
89-
public void LengthToPixlesCorrectVmax()
89+
public void LengthToPixelsCorrectVmax()
9090
{
9191
var l = new Length(20, Length.Unit.Vmax);
9292
var renderDevice = new DefaultRenderDevice
@@ -98,7 +98,7 @@ public void LengthToPixlesCorrectVmax()
9898
}
9999

100100
[Test]
101-
public void LengthToPixlesCorrectVmin()
101+
public void LengthToPixelsCorrectVmin()
102102
{
103103
var l = new Length(20, Length.Unit.Vmin);
104104
var renderDevice = new DefaultRenderDevice
@@ -109,6 +109,78 @@ public void LengthToPixlesCorrectVmin()
109109
Assert.AreEqual(100, l.ToPixel(renderDevice));
110110
}
111111

112+
[Test]
113+
public void LengthToPercentCorrectWidth()
114+
{
115+
var l = new Length(100, Length.Unit.Px);
116+
var renderDevice = new DefaultRenderDevice {ViewPortWidth = 500};
117+
Assert.AreEqual(20, l.To(Length.Unit.Percent, renderDevice, true));
118+
}
119+
120+
[Test]
121+
public void LengthToPercentCorrectHeight()
122+
{
123+
var l = new Length(100, Length.Unit.Px);
124+
var renderDevice = new DefaultRenderDevice {ViewPortHeight = 1000};
125+
Assert.AreEqual(10, l.To(Length.Unit.Percent, renderDevice, false));
126+
}
127+
128+
[Test]
129+
public void LengthToRemCorrectValue()
130+
{
131+
var l = new Length(100, Length.Unit.Px);
132+
var renderDevice = new DefaultRenderDevice {FontSize = 16};
133+
Assert.AreEqual(6.25d, l.To(Length.Unit.Rem, renderDevice));
134+
}
135+
136+
[Test]
137+
public void LengthToEmCorrectValue()
138+
{
139+
var l = new Length(1600, Length.Unit.Px);
140+
var renderDevice = new DefaultRenderDevice {FontSize = 16};
141+
Assert.AreEqual(100, l.To(Length.Unit.Em, renderDevice));
142+
}
143+
144+
[Test]
145+
public void LengthToVhCorrectValue()
146+
{
147+
var l = new Length(100, Length.Unit.Px);
148+
var renderDevice = new DefaultRenderDevice {ViewPortHeight = 1000};
149+
Assert.AreEqual(10, l.To(Length.Unit.Vh, renderDevice));
150+
}
151+
152+
[Test]
153+
public void LengthToVwCorrectValue()
154+
{
155+
var l = new Length(50, Length.Unit.Px);
156+
var renderDevice = new DefaultRenderDevice {ViewPortWidth = 1000};
157+
Assert.AreEqual(5, l.To(Length.Unit.Vw, renderDevice));
158+
}
159+
160+
[Test]
161+
public void LengthToVmaxCorrectValue()
162+
{
163+
var l = new Length(50, Length.Unit.Px);
164+
var renderDevice = new DefaultRenderDevice
165+
{
166+
ViewPortWidth = 1000,
167+
ViewPortHeight = 500
168+
};
169+
Assert.AreEqual(5, l.To(Length.Unit.Vmax, renderDevice));
170+
}
171+
172+
[Test]
173+
public void LengthToVminCorrectValue()
174+
{
175+
var l = new Length(50, Length.Unit.Px);
176+
var renderDevice = new DefaultRenderDevice
177+
{
178+
ViewPortWidth = 1000,
179+
ViewPortHeight = 500
180+
};
181+
Assert.AreEqual(10, l.To(Length.Unit.Vmin, renderDevice));
182+
}
183+
112184
[Test]
113185
public void AngleParseCorrectDegValue()
114186
{
@@ -162,4 +234,4 @@ public void AngleParseIncorrectValue()
162234
Assert.IsFalse(r);
163235
}
164236
}
165-
}
237+
}

src/AngleSharp.Css/Values/Primitives/Length.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ public Double ToPixel(IRenderDimensions renderDimensions, Boolean isWidth = true
302302
case Unit.Vh:
303303
return _value * 0.01 * renderDimensions.RenderHeight;
304304
case Unit.Vw:
305-
return _value * 0.01 * renderDimensions.RenderHeight;
305+
return _value * 0.01 * renderDimensions.RenderWidth;
306306
case Unit.Vmax:
307307
return _value * 0.01 * Math.Max(renderDimensions.RenderHeight, renderDimensions.RenderWidth);
308308
case Unit.Vmin:
@@ -350,7 +350,7 @@ public Double To(Unit unit, IRenderDimensions renderDimensions, Boolean isWidth
350350
case Unit.Vh:
351351
return value / (0.01 * renderDimensions.RenderHeight);
352352
case Unit.Vw:
353-
return value / ( 0.01 * renderDimensions.RenderHeight);
353+
return value / ( 0.01 * renderDimensions.RenderWidth);
354354
case Unit.Vmax:
355355
return value / ( 0.01 * Math.Max(renderDimensions.RenderHeight, renderDimensions.RenderWidth));
356356
case Unit.Vmin:

0 commit comments

Comments
 (0)