Bug 563464 - Add test suite for DefaultTextDoubleClickStrategy
Add initial set of tests regarding underscore handling in typical
programming language kind of words.
Change-Id: I25eb171c0bcf7af1a02b0aa70b0965d7fc2cd39d
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/DefaultTextDoubleClickStrategyTest.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/DefaultTextDoubleClickStrategyTest.java
new file mode 100644
index 0000000..94e9966
--- /dev/null
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/DefaultTextDoubleClickStrategyTest.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2020 SAP SE and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * SAP SE - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jface.text.tests;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import org.eclipse.jface.text.DefaultTextDoubleClickStrategy;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+
+public class DefaultTextDoubleClickStrategyTest {
+
+ @Test
+ public void testUnderscoreHandling() throws Exception {
+ String content= "foo_bar foo__bar foo_1 foo1_bar foo_bar__baz___1 __aaaa a_aa___a _asdf_ _____1";
+ IDocument document= new Document(content);
+ TestSpecificDefaultTextDoubleClickStrategy doubleClickStrategy= new TestSpecificDefaultTextDoubleClickStrategy();
+
+ for (String word : content.split(" ")) {
+ int offsetWordStart= content.indexOf(word);
+ for (int offset= offsetWordStart; offset < offsetWordStart + word.length(); offset++) {
+ IRegion selection= doubleClickStrategy.findWord(document, offset);
+ String actualWord= document.get(selection.getOffset(), selection.getLength());
+
+ assertEquals(word, actualWord);
+ }
+ }
+ }
+
+ private static final class TestSpecificDefaultTextDoubleClickStrategy extends DefaultTextDoubleClickStrategy {
+
+ @Override
+ public IRegion findWord(IDocument document, int offset) { // make visible
+ return super.findWord(document, offset);
+ }
+ }
+}
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/JFaceTextTestSuite.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/JFaceTextTestSuite.java
index 08104d5..05f39a7 100644
--- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/JFaceTextTestSuite.java
+++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/JFaceTextTestSuite.java
@@ -71,6 +71,8 @@
CodeMiningProjectionViewerTest.class,
TabsToSpacesConverterTest.class,
+
+ DefaultTextDoubleClickStrategyTest.class,
})
public class JFaceTextTestSuite {
// see @SuiteClasses