Add tests: Paint#measureText for bidirectional text.

Bug: 22408712
Change-Id: Idff949fcabf360c994a0e3397cf6ec90d3a31162
This commit is contained in:
Keisuke Kuroyanagi
2015-09-23 13:34:17 -07:00
parent 2779b5978f
commit 05de8fb29a

View File

@@ -162,4 +162,60 @@ public class PaintTest extends AndroidTestCase {
} catch (IndexOutOfBoundsException e) {
}
}
public void testMeasureTextBidi() {
Paint p = new Paint();
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_LTR);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_DEFAULT_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "abc \u0644\u063A\u0629 def";
p.setBidiFlags(Paint.BIDI_FORCE_LTR);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_RTL);
float width = p.measureText(bidiText, 0, 4);
p.setBidiFlags(Paint.BIDI_LTR);
width += p.measureText(bidiText, 4, 7);
p.setBidiFlags(Paint.BIDI_RTL);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_DEFAULT_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
{
String bidiText = "\u0644\u063A\u0629 abc \u0644\u063A\u0629";
p.setBidiFlags(Paint.BIDI_FORCE_RTL);
float width = p.measureText(bidiText, 0, 4);
width += p.measureText(bidiText, 4, 7);
width += p.measureText(bidiText, 7, bidiText.length());
assertEquals(width, p.measureText(bidiText), 1.0f);
}
}
}