From 05de8fb29af618b0b3446fe81caca7402c6da666 Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Wed, 23 Sep 2015 13:34:17 -0700 Subject: [PATCH] Add tests: Paint#measureText for bidirectional text. Bug: 22408712 Change-Id: Idff949fcabf360c994a0e3397cf6ec90d3a31162 --- .../src/android/graphics/PaintTest.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/graphics/tests/graphicstests/src/android/graphics/PaintTest.java b/graphics/tests/graphicstests/src/android/graphics/PaintTest.java index b67aa7dca17b8..6763dd1970aea 100644 --- a/graphics/tests/graphicstests/src/android/graphics/PaintTest.java +++ b/graphics/tests/graphicstests/src/android/graphics/PaintTest.java @@ -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); + } + } }