package javax.microedition.lcdui; import gnu.testlet.TestHarness; import gnu.testlet.Testlet; import gnu.testlet.TestUtils; public class TestFont implements Testlet { public int getExpectedPass() { return 6; } public int getExpectedFail() { return 0; } public int getExpectedKnownFail() { return 0; } void testEmojiLength(TestHarness th, String code, int expectedUpper) { String emoji = TestUtils.getEmojiString(code); th.check(Font.getDefaultFont().stringWidth(emoji) <= expectedUpper); th.check(Font.getDefaultFont().substringWidth(emoji, 0, emoji.length()) <= expectedUpper); th.check(Font.getDefaultFont().charsWidth(emoji.toCharArray(), 0, emoji.toCharArray().length) <= expectedUpper); } public void test(TestHarness th) { // Test that an emoji represented with two codepoints is considered as 1 character long. testEmojiLength(th, "1f1ee1f1f9", Font.getDefaultFont().stringWidth("mm")); // Test that an emoji represented with one codepoint is considered as 1 character long. testEmojiLength(th, "1f355", Font.getDefaultFont().stringWidth("mm")); } }