diff options
Diffstat (limited to 'tests/org.eclipse.swt.tests')
-rw-r--r-- | tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java index c5fceeec25..7ed2c0c66c 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_custom_StyledText.java @@ -48,6 +48,7 @@ import org.eclipse.swt.events.VerifyListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.GlyphMetrics; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.graphics.Rectangle; @@ -4887,6 +4888,44 @@ public void test_clickUpdatesCaretPosition() { } @Test +public void test_caretSizeAndPositionVariableGlyphMetrics() { + text.setText("abcd"); + text.setMargins(2, 0, 0, 0); // keep leftMargin as it affects behavior + text.setLineSpacing(0); + StyleRange range = new StyleRange(2, 1, null, null); + range.metrics = new GlyphMetrics(100, 0, 10); + text.setStyleRange(range); + text.setCaretOffset(0); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + // +5: caret takes 5 more pixels + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(1); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(2); + assertEquals(text.getLineHeight(0), text.getCaret().getSize().y); + assertEquals(0, text.getCaret().getBounds().y); + text.setCaretOffset(3); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(4); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(3); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(2); + assertEquals(text.getLineHeight(0), text.getCaret().getSize().y); + assertEquals(0, text.getCaret().getBounds().y); + text.setCaretOffset(1); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); + text.setCaretOffset(0); + assertEquals(text.getLineHeight(), text.getCaret().getSize().y); + assertEquals(text.getLineHeight(0) - text.getCaret().getSize().y, text.getCaret().getBounds().y); +} + +@Test public void test_doubleClickSelectsWord() { text.setText("Test1 Test2"); |