@Test public void test_getLocation() { if (SwtTestUtil.isCocoa) { // TODO Fix Cocoa failure. if (SwtTestUtil.verbose) { System.out.println( "Excluded test_getLocation(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_graphics_TextLayout)."); } return; } TextLayout layout = new TextLayout(display); String text = "AB\u05E9\u05E0"; layout.setText(text); assertEquals(0, layout.getLocation(0, false).x); assertEquals(layout.getLocation(0, true).x, layout.getLocation(1, false).x); assertEquals(layout.getLocation(2, false).x, layout.getLineBounds(0).width); assertEquals(layout.getLocation(2, true).x, layout.getLocation(3, false).x); assertEquals(layout.getLocation(3, true).x, layout.getLocation(1, true).x); assertEquals(layout.getLocation(4, false).x, layout.getLineBounds(0).width); assertEquals(layout.getLocation(4, true).x, layout.getLineBounds(0).width); layout.dispose(); }
@Test public void test_getOffset() { boolean isCocoa = SwtTestUtil.isCocoa; if (isCocoa) { // TODO Fix Cocoa failure. if (SwtTestUtil.verbose) { System.out.println( "Partially excluded test_getOffset(org.eclipse.swt.tests.junit.Test_org_eclipse_swt_graphics_TextLayout)."); } } TextLayout layout = new TextLayout(display); String text = "AB \u05E9\u05E0 CD\nHello"; layout.setText(text); int[] trailing = new int[1]; assertEquals(0, layout.getOffset(0, 0, trailing)); assertEquals(0, trailing[0]); Point point = layout.getLocation(0, true); assertEquals(1, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(0, trailing[0]); point = layout.getLocation(1, false); assertEquals(0, layout.getOffset(point.x - 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(2, true); assertEquals(4, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(4, true); assertEquals(2, layout.getOffset(point.x - 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(4, false); assertEquals(3, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); Rectangle bounds = layout.getBounds(); layout.setWidth(bounds.width + 100); layout.setAlignment(SWT.CENTER); assertEquals(0, layout.getOffset(0, 0, trailing)); assertEquals(0, trailing[0]); point = layout.getLocation(0, true); assertEquals(1, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(0, trailing[0]); point = layout.getLocation(1, false); assertEquals(0, layout.getOffset(point.x - 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(2, true); assertEquals(4, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(4, true); assertEquals(2, layout.getOffset(point.x - 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(4, false); assertEquals(3, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); layout.setAlignment(SWT.RIGHT); assertEquals(0, layout.getOffset(0, 0, trailing)); assertEquals(0, trailing[0]); point = layout.getLocation(0, true); assertEquals(1, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(0, trailing[0]); point = layout.getLocation(1, false); assertEquals(0, layout.getOffset(point.x - 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(2, true); assertEquals(4, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); point = layout.getLocation(4, true); assertEquals(2, layout.getOffset(point.x - 1, 0, trailing)); if (!isCocoa) assertEquals(1, trailing[0]); point = layout.getLocation(4, false); assertEquals(3, layout.getOffset(point.x + 1, 0, trailing)); assertEquals(1, trailing[0]); text = "Text"; layout.setText(text); int width = layout.getBounds().width; layout.setAlignment(SWT.LEFT); assertEquals(0, layout.getOffset(1, 0, null)); assertEquals(text.length() - 1, layout.getOffset(width - 1, 0, null)); layout.setWidth(width + 100); layout.setAlignment(SWT.CENTER); assertEquals(0, layout.getOffset(1 + 50, 0, null)); assertEquals(text.length() - 1, layout.getOffset(width - 1 + 50, 0, null)); layout.setAlignment(SWT.RIGHT); assertEquals(0, layout.getOffset(1 + 100, 0, null)); assertEquals(text.length() - 1, layout.getOffset(width - 1 + 100, 0, null)); layout.dispose(); }