Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java39
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");

Back to the top