diff options
author | Keisuke Kuroyanagi <ksk@google.com> | 2016-01-13 15:47:34 +0900 |
---|---|---|
committer | Raph Levien <raph@google.com> | 2016-01-13 18:50:43 +0000 |
commit | a5c53291a8123fa0296c849fe153a7dcf79b4dda (patch) | |
tree | 85593a12644b4a69e6cd8422275cca5a1ad6cc16 /core/tests | |
parent | f2cc98bc967c1b14d779198046137bf13aeb219c (diff) | |
download | frameworks_base-a5c53291a8123fa0296c849fe153a7dcf79b4dda.zip frameworks_base-a5c53291a8123fa0296c849fe153a7dcf79b4dda.tar.gz frameworks_base-a5c53291a8123fa0296c849fe153a7dcf79b4dda.tar.bz2 |
Tests for getPrimaryHorizontal with grapheme boundaries
Bug: 25375561
Change-Id: I022473627499d7f18105e3a300754fae5be7da8e
Diffstat (limited to 'core/tests')
-rw-r--r-- | core/tests/coretests/src/android/text/StaticLayoutTextMeasuringTest.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/core/tests/coretests/src/android/text/StaticLayoutTextMeasuringTest.java b/core/tests/coretests/src/android/text/StaticLayoutTextMeasuringTest.java new file mode 100644 index 0000000..2e0e6dc --- /dev/null +++ b/core/tests/coretests/src/android/text/StaticLayoutTextMeasuringTest.java @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package android.text; + +import android.text.Layout.Alignment; +import junit.framework.TestCase; + +/** + * Tests for text measuring methods of StaticLayout. + */ +public class StaticLayoutTextMeasuringTest extends TestCase { + private static final float SPACE_MULTI = 1.0f; + private static final float SPACE_ADD = 0.0f; + private static final int DEFAULT_OUTER_WIDTH = 150; + private static final Alignment DEFAULT_ALIGN = Alignment.ALIGN_LEFT; + + private TextPaint mDefaultPaint; + + @Override + protected void setUp() throws Exception { + super.setUp(); + if (mDefaultPaint == null) { + mDefaultPaint = new TextPaint(); + } + } + + public void testGetPrimaryHorizontal_zwnbsp() { + // a, ZERO WIDTH NO-BREAK SPACE + String testString = "a\uFEFF"; + StaticLayout layout = new StaticLayout(testString, mDefaultPaint, + DEFAULT_OUTER_WIDTH, DEFAULT_ALIGN, SPACE_MULTI, SPACE_ADD, true); + + assertEquals(0.0f, layout.getPrimaryHorizontal(0)); + assertEquals(layout.getPrimaryHorizontal(2), layout.getPrimaryHorizontal(1)); + } + + public void testGetPrimaryHorizontal_devanagari() { + // DEVANAGARI LETTER KA, DEVANAGARI VOWEL SIGN AA + String testString = "\u0915\u093E"; + StaticLayout layout = new StaticLayout(testString, mDefaultPaint, + DEFAULT_OUTER_WIDTH, DEFAULT_ALIGN, SPACE_MULTI, SPACE_ADD, true); + + assertEquals(0.0f, layout.getPrimaryHorizontal(0)); + assertEquals(layout.getPrimaryHorizontal(2), layout.getPrimaryHorizontal(1)); + } + + public void testGetPrimaryHorizontal_flagEmoji() { + // REGIONAL INDICATOR SYMBOL LETTER U, REGIONAL INDICATOR SYMBOL LETTER S, REGIONAL + // INDICATOR SYMBOL LETTER Z + // First two code points (U and S) forms a US flag. + String testString = "\uD83C\uDDFA\uD83C\uDDF8\uD83C\uDDFF"; + StaticLayout layout = new StaticLayout(testString, mDefaultPaint, + DEFAULT_OUTER_WIDTH, DEFAULT_ALIGN, SPACE_MULTI, SPACE_ADD, true); + + assertEquals(0.0f, layout.getPrimaryHorizontal(0)); + assertEquals(layout.getPrimaryHorizontal(4), layout.getPrimaryHorizontal(1)); + assertEquals(layout.getPrimaryHorizontal(4), layout.getPrimaryHorizontal(2)); + assertEquals(layout.getPrimaryHorizontal(4), layout.getPrimaryHorizontal(3)); + + assertTrue(layout.getPrimaryHorizontal(6) > layout.getPrimaryHorizontal(4)); + assertEquals(layout.getPrimaryHorizontal(6), layout.getPrimaryHorizontal(5)); + } +} |