Skip to content

Commit 24b406f

Browse files
committed
restore all tests
1 parent bfee151 commit 24b406f

File tree

4 files changed

+199
-132
lines changed

4 files changed

+199
-132
lines changed

src/shapes/Text.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,12 @@ export class Text extends Shape<TextConfig> {
250250
const metrics = this.measureSize('M'); // Use a sample character to get the ascent
251251

252252
baseline = 'alphabetic';
253-
translateY =
254-
(metrics.fontBoundingBoxAscent - metrics.fontBoundingBoxDescent) / 2 +
255-
lineHeightPx / 2;
253+
const ascent =
254+
metrics.fontBoundingBoxAscent ?? metrics.actualBoundingBoxAscent;
255+
const descent =
256+
metrics.fontBoundingBoxDescent ?? metrics.actualBoundingBoxDescent;
257+
258+
translateY = (ascent - descent) / 2 + lineHeightPx / 2;
256259
}
257260

258261
if (direction === RTL) {

test/unit/Label-test.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,10 @@ describe('Label', function () {
8181

8282
var trace = layer.getContext().getTrace(false, true);
8383

84-
if (isBrowser) {
85-
assert.equal(
86-
trace,
87-
'clearRect(0,0,578,200);save();lineJoin=round;transform(1,0,0,1,-64,120);shadowColor=rgba(0,0,0,0.2);shadowBlur=10;shadowOffsetX=10;shadowOffsetY=10;beginPath();moveTo(5,0);lineTo(153,0);lineTo(163,-20);lineTo(173,0);lineTo(322,0);arc(322,5,5,4,0,false);lineTo(327,55);arc(322,55,5,0,1,false);lineTo(5,60);arc(5,55,5,1,3,false);lineTo(0,5);arc(5,5,5,3,4,false);closePath();fillStyle=#bbb;fill();restore();save();transform(1,0,0,1,-64,120);font=normal normal 50px Arial;textBaseline=middle;textAlign=left;translate(0,0);save();fillStyle=green;fillText(Hello big world,0,30);restore();restore();'
88-
);
89-
} else {
90-
assert.equal(
91-
trace,
92-
'clearRect(0,0,578,200);save();lineJoin=round;transform(1,0,0,1,-64,120);shadowColor=rgba(0,0,0,0.2);shadowBlur=10;shadowOffsetX=10;shadowOffsetY=10;beginPath();moveTo(5,0);lineTo(153,0);lineTo(163,-20);lineTo(173,0);lineTo(322,0);arc(322,5,5,4,0,false);lineTo(327,55);arc(322,55,5,0,1,false);lineTo(5,60);arc(5,55,5,1,3,false);lineTo(0,5);arc(5,5,5,3,4,false);closePath();fillStyle=#bbb;fill();restore();save();transform(1,0,0,1,-64,120);font=normal normal 50px Arial;textBaseline=middle;textAlign=left;translate(0,0);save();fillStyle=green;fillText(Hello big world,0,30);restore();restore();'
93-
);
94-
}
84+
assert.equal(
85+
trace,
86+
'clearRect(0,0,578,200);save();lineJoin=round;transform(1,0,0,1,-64,120);shadowColor=rgba(0,0,0,0.2);shadowBlur=10;shadowOffsetX=10;shadowOffsetY=10;beginPath();moveTo(5,0);lineTo(153,0);lineTo(163,-20);lineTo(173,0);lineTo(322,0);arc(322,5,5,4,0,false);lineTo(327,55);arc(322,55,5,0,1,false);lineTo(5,60);arc(5,55,5,1,3,false);lineTo(0,5);arc(5,5,5,3,4,false);closePath();fillStyle=#bbb;fill();restore();save();transform(1,0,0,1,-64,120);font=normal normal 50px Arial;textBaseline=alphabetic;textAlign=left;translate(0,0);save();fillStyle=green;fillText(Hello big world,0,47);restore();restore();'
87+
);
9588
});
9689

9790
it('find label class', function () {

test/unit/Shape-test.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import {
1515
compareCanvases,
1616
} from './test-utils';
1717

18+
import { getOffsetY } from './Text-test';
19+
1820
describe('Shape', function () {
1921
// ======================================================
2022
it('test intersects()', function () {
@@ -861,29 +863,29 @@ describe('Shape', function () {
861863
context.shadowOffsetX = 20 * Konva.pixelRatio;
862864
context.shadowOffsetY = 20 * Konva.pixelRatio;
863865
context.font = 'normal 50px Arial';
864-
context.textBaseline = 'middle';
866+
context.textBaseline = 'alphabetic';
865867

866868
context.fillStyle = 'green';
867-
context.fillText('Test TEXT', 50, 75);
869+
context.fillText('Test TEXT', 50, 50 + getOffsetY(context));
868870

869871
context.lineWidth = 2;
870872
context.strokeStyle = 'black';
871-
context.strokeText('Test TEXT', 50, 75);
873+
context.strokeText('Test TEXT', 50, 50 + getOffsetY(context));
872874

873875
context.stroke();
874876
context.fill();
875877
context.restore();
876878

877879
// draw text again to remove shadow under stroke
878880
context.font = 'normal 50px Arial';
879-
context.textBaseline = 'middle';
880-
context.fillText('Test TEXT', 50, 75);
881+
context.textBaseline = 'alphabetic';
882+
context.fillText('Test TEXT', 50, 50 + getOffsetY(context));
881883
context.fillStyle = 'green';
882-
context.fillText('Test TEXT', 50, 75);
884+
context.fillText('Test TEXT', 50, 50 + getOffsetY(context));
883885

884886
context.lineWidth = 2;
885887
context.strokeStyle = 'black';
886-
context.strokeText('Test TEXT', 50, 75);
888+
context.strokeText('Test TEXT', 50, 50 + getOffsetY(context));
887889

888890
compareLayerAndCanvas(layer, canvas, 254, 10);
889891
});

0 commit comments

Comments
 (0)