Move o.e.dltk.ruby.ui.tests to JUnit4.

Change-Id: I73864f61692c1cf2d6c9b39256db664a047c32c2
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/AllTests.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/AllTests.java
index 39e4a81..f53a148 100644
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/AllTests.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/AllTests.java
@@ -1,7 +1,12 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Red Hat Inc. and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
 import org.eclipse.dltk.ruby.ui.tests.folding.RubyCommentElementTests;
 import org.eclipse.dltk.ruby.ui.tests.folding.RubyFoldingTest;
 import org.eclipse.dltk.ruby.ui.tests.indenting.RubyAutoIndentStrategyTest;
@@ -10,22 +15,15 @@
 import org.eclipse.dltk.ruby.ui.tests.text.PartitioningTest;
 import org.eclipse.dltk.ruby.ui.tests.text.RubyRequireHyperlinkDetectorTest;
 import org.eclipse.dltk.ruby.ui.tests.text.indenting.IndentingTest;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
 
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+		RubyAutoIndentStrategyTest.class, PartitioningTest.class, IndentingTest.class, RubyFoldingTest.class,
+		MixinCompleteTests.class, ThreadedUIMixinTests.class, RubyRequireHyperlinkDetectorTest.class,
+		RubyCommentElementTests.class
+})
 public class AllTests {
 
-	public static Test suite() {
-		TestSuite suite = new TestSuite("org.eclipse.dltk.ruby.ui.tests");
-		// $JUnit-BEGIN$
-		suite.addTestSuite(RubyAutoIndentStrategyTest.class);
-		suite.addTestSuite(PartitioningTest.class);
-		suite.addTestSuite(IndentingTest.class);
-		suite.addTestSuite(RubyFoldingTest.class);
-		suite.addTest(MixinCompleteTests.suite());
-		suite.addTest(ThreadedUIMixinTests.suite());
-		suite.addTestSuite(RubyRequireHyperlinkDetectorTest.class);
-		suite.addTest(RubyCommentElementTests.suite());
-		// $JUnit-END$
-		return suite;
-	}
-
 }
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/folding/RubyFoldingTest.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/folding/RubyFoldingTest.java
index c35130e..398b808 100755
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/folding/RubyFoldingTest.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/folding/RubyFoldingTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2016 IBM Corporation and others.
+ * Copyright (c) 2005, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,6 +8,8 @@
  *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests.folding;
 
+import static org.junit.Assert.assertEquals;
+
 import java.util.Map;
 
 import org.eclipse.dltk.ast.ASTNode;
@@ -22,10 +24,10 @@
 import org.eclipse.jface.text.Position;
 import org.eclipse.jface.text.source.Annotation;
 import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
+import org.junit.Before;
+import org.junit.Test;
 
-import junit.framework.TestCase;
-
-public class RubyFoldingTest extends TestCase {
+public class RubyFoldingTest {
 
 	private class MyRubyASTFoldingStructureProvider extends
 			RubyFoldingStructureProvider {
@@ -79,14 +81,14 @@
 	IPreferenceStore fStore;
 	MyRubyASTFoldingStructureProvider provider;
 
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
+	@Before
+	public void setUp() throws Exception {
 		fStore = RubyUITestsPlugin.getDefault().getPreferenceStore();
 		RubyPreferenceConstants.initializeDefaultValues(fStore);
 		provider = new MyRubyASTFoldingStructureProvider();
 	}
 
+	@Test
 	public void test0() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 2);
 		String content = "#ab\n#dc\n";
@@ -99,6 +101,7 @@
 		assertEquals(1, result.size());
 	}
 
+	@Test
 	public void test177924a() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 2);
 		String content = TestUtils.getData("resources/folding/b177924.rb");
@@ -111,6 +114,7 @@
 		assertEquals(3 + 3, result.size());
 	}
 
+	@Test
 	public void test177924b() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 4);
 		String content = TestUtils.getData("resources/folding/b177924.rb");
@@ -123,6 +127,7 @@
 		assertEquals(2 + 3, result.size());
 	}
 
+	@Test
 	public void test193174a() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 2);
 		String content = TestUtils.getData("resources/folding/b193174.rb");
@@ -136,6 +141,7 @@
 		assertEquals(27, result.size());
 	}
 
+	@Test
 	public void test193174b() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 2);
 		String content = TestUtils.getData("resources/folding/b193174.rb");
@@ -149,6 +155,7 @@
 		assertEquals(73 + 13 + 1, result.size());
 	}
 
+	@Test
 	public void test193174c() throws Exception {
 		fStore.setValue(PreferenceConstants.EDITOR_FOLDING_LINES_LIMIT, 2);
 		String content = TestUtils.getData("resources/folding/b193174.rb");
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/indenting/RubyAutoIndentStrategyTest.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/indenting/RubyAutoIndentStrategyTest.java
index 4844bd9..c80fe48 100644
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/indenting/RubyAutoIndentStrategyTest.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/indenting/RubyAutoIndentStrategyTest.java
@@ -1,15 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests.indenting;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
 
 import org.eclipse.dltk.ruby.internal.ui.RubyPreferenceConstants;
 import org.eclipse.dltk.ruby.internal.ui.text.IRubyPartitions;
@@ -21,34 +20,35 @@
 import org.eclipse.jface.text.DocCmd;
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.TextUtilities;
+import org.junit.Before;
+import org.junit.Test;
 
 
-public class RubyAutoIndentStrategyTest extends TestCase {
+public class RubyAutoIndentStrategyTest {
 	/*
 	 * Tests with _ in the beginning relies on features, not
 	 * presented now, and may be will be implemented in future
 	 */
-	
+
 	private static final String TAB = "\t";
-	
+
 	private static final String AUTOINDENT = TAB;
-	
+
 	private static final String DUMMY_POSTFIX = "#comment";
 
 	private static String DELIMITER = TextUtilities.getDefaultLineDelimiter(new Document());
 	private static String BLOCK_END = DELIMITER + "end";
-	
+
 
     private RubyAutoEditStrategy strategy;
 	private String doc;
 	private DocCmd docCmd;
 	private String expected;
 	IPreferenceStore fStore;
-	
 
-    @Override
-	protected void setUp() throws Exception {
-        super.setUp();
+
+	@Before
+	public void setUp() throws Exception {
     	fStore = new PreferenceStore();
     	RubyPreferenceConstants.initializeDefaultValues(fStore);
     	fStore.setValue(CodeFormatterConstants.FORMATTER_TAB_CHAR, CodeFormatterConstants.TAB);
@@ -59,52 +59,46 @@
     	strategy = new RubyAutoEditStrategy(fPartitioning, fStore);
     }
 
-    @Override
-	protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    
     public void __testTab() { System.out.println("Tab\n");
 
-        String str = 
-            "        args = [ '-1', '-2',\n"+ 
+        String str =
+            "        args = [ '-1', '-2',\n"+
             "                ";
         DocCmd docCmd = new DocCmd(str.length(), 0, "\t");
         strategy.customizeDocumentCommand(new Document(str), docCmd);
         assertEquals("    ", docCmd.text);
     }
-    
+
     public void _testSpaces() { System.out.println("Spaces\n");
 
         DocCmd docCmd = new DocCmd(0, 0, "\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("    ", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\t\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("        ", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\tabc");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("    abc", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\tabc\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("    abc    ", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, " ");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals(" ", docCmd.text);
     }
-    
+
     public void doTestInsertion(String prefix, String postfix, String inserted, String expected) {
 	    Document doc = new Document(prefix + postfix);
 	    DocCmd docCmd = new DocCmd(prefix.length(), 0, inserted);
 	    strategy.customizeDocumentCommand(doc, docCmd);
 	    assertEquals(expected, docCmd.text);
     }
-    
+
     public void doTestLineReindent(String prefix, String line, String appended, String postfix, String expected) throws Exception {
     	Document doc = new Document(prefix + line + postfix);
     	DocCmd cmd = new DocCmd(prefix.length() + line.length(), 0, appended);
@@ -112,68 +106,77 @@
     	doc.replace(cmd.offset, cmd.length, cmd.text);
     	assertEquals(expected, doc.get());
     }
-    
+
     public void doTestNewLineIndent(String prefix, String postfix, String indent) {
 		doTestInsertion(prefix, postfix, "\n", "\n" + indent);
     }
-    
+
+	@Test
     public void testSimpleNewLine() {
     	String stat1 = "def foo";
     	String stat2 = "puts 'Ruby is cool'";
     	doTestNewLineIndent(stat1 + "\n" + TAB + stat2, DUMMY_POSTFIX, TAB);
     }
-    
+
+	@Test
     public void testIndentedNewLineAfterDef() {
     	String stat1 = "def foo";
     	doTestNewLineIndent(stat1, DUMMY_POSTFIX, AUTOINDENT + DUMMY_POSTFIX + BLOCK_END);
     }
-        
+
+	@Test
     public void testIndentedNewLineAfterIf() {
     	String stat1 = "if a==0";
     	doTestNewLineIndent(stat1, DUMMY_POSTFIX, AUTOINDENT + DUMMY_POSTFIX + BLOCK_END);
     	String stat2 = "def foo" + DELIMITER + "end" + DELIMITER + "if a==0";
     	doTestNewLineIndent(stat2, DUMMY_POSTFIX, AUTOINDENT + DUMMY_POSTFIX + BLOCK_END);
     }
-    
+
     private void doTestBraceDeindent(String opening, String closing) throws Exception {
     	String s1 = "\tputs " + opening + "\n";
     	String s2 = "\t        2+2\n";
-    	doTestLineReindent(s1 + s2, "\t        ", closing, "", 
+    	doTestLineReindent(s1 + s2, "\t        ", closing, "",
     			s1 + s2 + "\t        " + closing);
     }
-    
+
+	@Test
     public void testIndentingOfClosingParenToOpeningOne() throws Exception {
     	doTestBraceDeindent("(", ")");
     }
-    
+
+	@Test
     public void testIndentingOfClosingSquareBraceToOpeningOne() throws Exception {
     	doTestBraceDeindent("[", "]");
     }
-    
+
+	@Test
     public void testIndentingOfClosingCurlyBrace() throws Exception {
     	String s1 = "\t puts {\n";
     	String s2 = "\t\t\t     2+2\n";
-    	doTestLineReindent(s1 + s2, "\t        ", "}", "", 
+    	doTestLineReindent(s1 + s2, "\t        ", "}", "",
     			s1 + s2 + "\t }");
     }
-    
+
+	@Test
     public void testDeindentingOfRdocBegin() throws Exception {
     	String s1 = "\t puts {\n";
     	doTestLineReindent(s1, "\t\t\t=begi", "n", "", s1 + "=begin");
     }
-    
+
+	@Test
     public void testDeindentingOfRdocEnd() throws Exception {
     	String s1 = "\t puts {\n";
     	doTestLineReindent(s1, "\t\t\t=en", "d", "", s1 + "=end");
     }
-    
+
+	@Test
     public void testDeindentOnEnd() throws Exception {
     	String s1 = "\tdef foo\n";
 		String s2 = "\t\tputs\n";
-		doTestLineReindent(s1 + s2, "\t\ten", "d", "", 
+		doTestLineReindent(s1 + s2, "\t\ten", "d", "",
 				s1 + s2 + "\tend");
     }
-    
+
     public void __testNewLineAfterReturn() { System.out.println("NewLineAfterReturn\n");
 
     	String str = "dfdsfd" +
@@ -183,10 +186,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-"#ffo".length(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void __testIgnoreComment() { System.out.println("IgnoreComment\n");
 
     	String str = "" +
@@ -195,10 +198,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void __testIgnoreComment2() { System.out.println("IgnoreComment2\n");
 
     	String str = "" +
@@ -208,10 +211,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void _testNewLineAfterOpeningParWithOtherContents() { System.out.println("NewLineAfterOpeningParWithOtherContents\n");
 
     	String str = "" +
@@ -220,24 +223,24 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n         ", docCmd.text); 
+    	assertEquals("\n         ", docCmd.text);
     }
-    
+
     public void _testNewLineAfterReturn2() { System.out.println("NewLineAfterReturn2\n");
 
         String str = "" +
         "def m1(self):\n" +
         "    return ('foo',";
-                     
-                         
+
+
         final Document doc = new Document(str);
         DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
         strategy.customizeDocumentCommand(doc, docCmd);
-        assertEquals("\n            ", docCmd.text); 
-        
+        assertEquals("\n            ", docCmd.text);
+
     }
-    
-    
+
+
     public void __testMaintainIndent() { System.out.println("MaintainIndent\n");
 
         String str = "" +
@@ -246,15 +249,15 @@
         "        print 'foo'\n" +
         "    print 'bla'"+
         "";
-        
-        
+
+
         final Document doc = new Document(str);
         DocCmd docCmd = new DocCmd(doc.getLength()-"print 'bla'".length(), 0, "\n");
         strategy.customizeDocumentCommand(doc, docCmd);
-        assertEquals("\n    ", docCmd.text); 
-        
+        assertEquals("\n    ", docCmd.text);
+
     }
-    
+
     public void _testMaintainIndent2() { System.out.println("MaintainIndent2\n");
 
     	String str = "" +
@@ -263,18 +266,18 @@
     	"        print 'foo'\n" +
     	"    print 'bla'"+
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
     	int offset = doc.getLength()-"  print 'bla'".length();
 		DocCmd docCmd = new DocCmd(offset, 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n  ", docCmd.text); 
-    	assertEquals(offset+2, docCmd.caretOffset); 
-    	
+    	assertEquals("\n  ", docCmd.text);
+    	assertEquals(offset+2, docCmd.caretOffset);
+
     }
-    
-    
+
+
     public void __testDontChangeCursorOffset() { System.out.println("DontChangeCursorOffset\n");
 
     	String str = "" +
@@ -282,18 +285,18 @@
     	"    if not 1:\n" +
     	"        print    'foo'" +
     	"";
-    	
-    			
+
+
     	final Document doc = new Document(str);
     	int offset = doc.getLength()-"    'foo'".length();
     	DocCmd docCmd = new DocCmd(offset, 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n        ", docCmd.text); 
-    	assertEquals(-1, docCmd.caretOffset); //don't change it 
-    	
+    	assertEquals("\n        ", docCmd.text);
+    	assertEquals(-1, docCmd.caretOffset); //don't change it
+
     }
-    
-    
+
+
     public void __testTabIndentToLevel() { System.out.println("TabIndentToLevel\n");
 
     	String str = "" +
@@ -304,18 +307,18 @@
     	"                  b,\n" +
     	")" +
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
     	int offset = doc.getLength()-"\n                  b,\n)".length();
     	DocCmd docCmd = new DocCmd(offset, 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("                  ", docCmd.text); 
-    	
+    	assertEquals("                  ", docCmd.text);
+
     }
-    
-    
-    
+
+
+
     public void _testTabIndentToLevel2() { System.out.println("TabIndentToLevel2\n");
 
     	String str = "" +
@@ -330,18 +333,18 @@
     	"                          \n" +
     	"" + //we're here (indent to the first level)
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
     	int offset = doc.getLength();
     	DocCmd docCmd = new DocCmd(offset, 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("    ", docCmd.text); 
-    	
+    	assertEquals("    ", docCmd.text);
+
     }
-    
-    
-    
+
+
+
     public void __testTabIndentToLevel3() { System.out.println("TabIndentToLevel3\n");
 
     	String str = "" +
@@ -356,18 +359,18 @@
     	"                          \n" +
     	"    " + //now that we're already in the first level, indent to the current level
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
     	int offset = doc.getLength();
     	DocCmd docCmd = new DocCmd(offset, 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("                          ", docCmd.text);
     	assertEquals(offset - 4, docCmd.offset);
-    	assertEquals(4, docCmd.length);    	
+    	assertEquals(4, docCmd.length);
     }
-    
-    
+
+
     public void __testNoAutoIndentClosingPar() { System.out.println("NoAutoIndentClosingPar\n");
 
     	String str = "" +
@@ -375,38 +378,38 @@
     	"              what(),\n" + //the next line should be indented to this one, and not to the start of the indent
     	"            )\n" +
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
-    	String s = 
+    	String s =
     		"\n"+
     		"            )\n";
     	DocCmd docCmd = new DocCmd(doc.getLength()-s.length(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n              ", docCmd.text); 
-    	
+    	assertEquals("\n              ", docCmd.text);
+
     }
-    
+
     public void __testNoAutoIndentClosingPar2() { System.out.println("NoAutoIndentClosingPar2\n");
 
     	String str = "" +
     	"newTuple = (\n" +
-    	"              what(),\n" + 
+    	"              what(),\n" +
     	"\n" + //pressing tab in the start of this line will bring us to the 'what()' level.
     	"            )\n" +
     	"";
-    	
-    	
+
+
     	final Document doc = new Document(str);
-    	String s = 
+    	String s =
     		"\n"+
     		"            )\n";
     	DocCmd docCmd = new DocCmd(doc.getLength()-s.length(), 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("              ", docCmd.text); 
-    	
+    	assertEquals("              ", docCmd.text);
+
     }
-    
+
     public void __testNewLineAfterLineWithComment() { System.out.println("NewLineAfterLineWithComment\n");
 
     	String str = "" +
@@ -415,10 +418,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void __testNewLine10() { System.out.println("NewLine10\n");
 
     	String str = "" +
@@ -429,10 +432,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
-    	
+    	assertEquals("\n    ", docCmd.text);
+
     }
-    
+
     public void __testNewLine11() { System.out.println("NewLine11\n");
 
     	String str = "" +
@@ -443,11 +446,11 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-"if False: 'foo'".length(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
-    	
+    	assertEquals("\n    ", docCmd.text);
+
     }
-    
-    
+
+
     public void __testNewLine12() { System.out.println("NewLine12\n");
 
     	String str = "" +
@@ -456,9 +459,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-"print 'done'".length(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
+    	assertEquals("\n    ", docCmd.text);
     }
-    
+
 
     public void __testNewLine3() { System.out.println("NewLine3\n");
 
@@ -467,12 +470,12 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-4, 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
-    	
+    	assertEquals("\n    ", docCmd.text);
+
     	String expected = "for a in b:    ";
     	assertEquals(expected, doc.get());
     }
-    
+
     public void __testNewLine6() { System.out.println("NewLine6\n");
 
     	String str = "" +
@@ -482,9 +485,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
+    	assertEquals("\n", docCmd.text);
     }
-    
+
     public void __testNewLine6a() { System.out.println("NewLine6a\n");
 
     	String str = "" +
@@ -494,9 +497,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
+    	assertEquals("\n", docCmd.text);
     }
-    
+
     public void __testNewLine7() { System.out.println("NewLine7\n");
 
         String str = "" +
@@ -508,9 +511,9 @@
         final Document doc = new Document(str);
         DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
         strategy.customizeDocumentCommand(doc, docCmd);
-        assertEquals("\n", docCmd.text); 
+        assertEquals("\n", docCmd.text);
     }
-    
+
     public void __testNewLine8() { System.out.println("NewLine8\n");
 
         String str = "" +
@@ -522,9 +525,9 @@
         final Document doc = new Document(str);
         DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
         strategy.customizeDocumentCommand(doc, docCmd);
-        assertEquals("\n    ", docCmd.text); 
+        assertEquals("\n    ", docCmd.text);
     }
-    
+
     public void __testIndent() { System.out.println("Indent\n");
 
     	String str = "" +
@@ -534,9 +537,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-"if foo:".length(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
+    	assertEquals("\n    ", docCmd.text);
     }
-    
+
     public void __testIndentAfterRet() { System.out.println("IndentAfterRet\n");
 
     	String str = "" +
@@ -551,9 +554,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n    ", docCmd.text); 
+    	assertEquals("\n    ", docCmd.text);
     }
-    
+
     public void __testIndentAfterRet2() { System.out.println("IndentAfterRet2\n");
 
     	String str = "" +
@@ -568,9 +571,9 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("    ", docCmd.text); 
+    	assertEquals("    ", docCmd.text);
     }
-    
+
     public void __testNewLine9() { System.out.println("NewLine9\n");
 
         String str = "" +
@@ -580,9 +583,9 @@
         final Document doc = new Document(str);
         DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
         strategy.customizeDocumentCommand(doc, docCmd);
-        assertEquals("\n        ", docCmd.text); 
+        assertEquals("\n        ", docCmd.text);
     }
-    
+
     public void __testNewLine4() { System.out.println("NewLine4\n");
 
     	String str = "" +
@@ -596,11 +599,11 @@
     	"def a():\n" +
     	"    print a" +
     	"";
-    	assertEquals(expected, doc.get()); 
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals(expected, doc.get());
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void _testNewLine5() { System.out.println("NewLine5\n");
 
     	String str = "" +
@@ -614,10 +617,10 @@
     	"def a():\n" +
     	"    " +
     	"";
-    	assertEquals(expected, doc.get()); 
-    	assertEquals("\n", docCmd.text); 
+    	assertEquals(expected, doc.get());
+    	assertEquals("\n", docCmd.text);
     }
-    
+
     public void __testNewLine() { System.out.println("NewLine\n");
 
     	String str = "createintervention() #create " +
@@ -625,10 +628,10 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
+
     public void __testNewLine2() { System.out.println("NewLine2\n");
 
     	String str = "err)" +
@@ -636,11 +639,11 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\n");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("\n", docCmd.text); 
-    	
+    	assertEquals("\n", docCmd.text);
+
     }
-    
-    
+
+
     public void __testTabInComment() { System.out.println("TabInComment\n");
 
     	String str = "#comment" +
@@ -649,9 +652,9 @@
     	DocCmd docCmd = new DocCmd(doc.getLength(), 0, "\t");
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("    ", docCmd.text); // a single tab should go to the correct indent
-    	
+
     }
-    
+
     public void __testIndentingWithTab() { System.out.println("IndentingWithTab\n");
 
     	String str = "class C:\n" +
@@ -662,7 +665,7 @@
 		strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("        ", docCmd.text); // a single tab should go to the correct indent
     }
-    
+
     public void __testIndentingWithTab2() { System.out.println("IndentingWithTab2\n");
 
     	String str = "" +
@@ -674,7 +677,7 @@
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("    ", docCmd.text); // a single tab should go to the correct indent
     }
-    
+
     public void __testIndentingWithTab3() { System.out.println("IndentingWithTab3\n");
 
     	String str = "" +
@@ -687,7 +690,7 @@
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("        ", docCmd.text); // a single tab should go to the correct indent
     }
-    
+
 //    public void __testWithoutSmartIndent() { System.out.println("WithoutSmartIndent\n");
 //    	final TestIndentPrefs prefs = new TestIndentPrefs(true, 4);
 //    	prefs.smartIndentAfterPar = false;
@@ -701,7 +704,7 @@
 //    	strategy.customizeDocumentCommand(doc, docCmd);
 //    	assertEquals("\n        ", docCmd.text); // a single tab should go to the correct indent
 //    }
-    
+
     public void __testIndentingWithTab4() { System.out.println("IndentingWithTab4\n");
 
     	String str = "" +
@@ -715,7 +718,7 @@
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("    ", docCmd.text); // a single tab should go to the correct indent
     }
-    
+
     public void __testIndentingWithTab5() { System.out.println("IndentingWithTab5\n");
 
     	String str = "" +
@@ -729,10 +732,10 @@
     	strategy.customizeDocumentCommand(doc, docCmd);
     	//assertEquals(" ", docCmd.text); // a single tab should go to the correct indent
     	assertEquals ("        ", docCmd.text);
-    	assertEquals ("       ".length(), docCmd.length);    	
+    	assertEquals ("       ".length(), docCmd.length);
     	assertEquals (doc.getLength() - "       ".length(), docCmd.offset);
     }
-    
+
     public void __testIndentingWithTab6() { System.out.println("IndentingWithTab6\n");
 
     	String str = "" +
@@ -745,7 +748,7 @@
     	strategy.customizeDocumentCommand(doc, docCmd);
     	assertEquals("        ", docCmd.text); // a single tab should go to the correct indent
     }
-    
+
     public void __testIndentingWithTab7() { System.out.println("IndentingWithTab7\n");
 
     	String str = "" +
@@ -759,25 +762,25 @@
     	assertEquals("        ", docCmd.text); // a single tab should go to the correct indent
     	assertEquals(2, docCmd.length); // the spaces after the indent should be removed
     }
-    
+
     public void _testTabs() { System.out.println("Tabs\n");
 
         DocCmd docCmd = new DocCmd(0, 0, "\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("\t", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\t\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("\t\t", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\tabc");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("\tabc", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "\tabc\t");
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("\tabc\t", docCmd.text);
-        
+
         docCmd = new DocCmd(0, 0, "    abc"); //paste
         strategy.customizeDocumentCommand(new Document(""), docCmd);
         assertEquals("\tabc", docCmd.text);
@@ -793,7 +796,7 @@
                    "    ";
         assertEquals(expected, docCmd.text);
     }
-    
+
     public void _testCommentsIndent2() { System.out.println("CommentsIndent2\n");
 
         //__test not indent more
@@ -803,7 +806,7 @@
         expected = "\n" +
         "    ";
         assertEquals(expected, docCmd.text);
-        
+
         //test indent more
         doc = "    if False:";
         docCmd = new DocCmd(doc.length(), 0, "\n");
@@ -812,10 +815,10 @@
         "        ";
         assertEquals(expected, docCmd.text);
     }
-    
+
     public void __testIndentLevel3() { System.out.println("IndentLevel3\n");
 
-    	
+
     	String doc = "" +
 		"a = (1, \n" +
 		"  2,"; //should keep this indent, and not go to the opening bracket indent.
@@ -824,10 +827,10 @@
     	String expected = "\n  ";
     	assertEquals(expected, docCmd.text);
     }
-    
+
     public void __testIndentLevel() { System.out.println("IndentLevel\n");
 
-        
+
         String doc = "" +
                 "def m1(): #some comment\n" +
                 "    print foo(a,\n" +
@@ -837,10 +840,10 @@
         String expected = "\n    ";
         assertEquals(expected, docCmd.text);
     }
-    
+
     public void __testIndentLevel2() { System.out.println("IndentLevel2\n");
 
-        
+
         String doc = "" +
         "def m1(): #some comment\n" +
         "    def metfoo(a,\n" +
@@ -850,7 +853,7 @@
         String expected = "\n        ";
         assertEquals(expected, docCmd.text);
     }
-    
+
     public void __testDedent() { System.out.println("Dedent\n");
 
 
@@ -860,7 +863,7 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         String expected = "\n";
         assertEquals(expected, docCmd.text);
-        
+
         //test ending with
         doc = "def m1(): #some comment\n" +
               "    return";
@@ -868,7 +871,7 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "\n";
         assertEquals(expected, docCmd.text);
-        
+
         //test not dedenting
         doc = "def m1(): #some comment\n" +
         "    returnIs10 = 10";
@@ -877,9 +880,9 @@
         expected = "\n"+
         "    ";
         assertEquals(expected, docCmd.text);
-        
+
     }
-    
+
     public void __testIndentSpaces() { System.out.println("IndentSpaces\n");
         //test after class xxx:\n
 
@@ -889,7 +892,7 @@
         String expected = "\n" +
         		          "    ";
         assertEquals(expected, docCmd.text);
-        
+
         //test regular
         doc = "    a = 2";
         docCmd = new DocCmd(doc.length(), 0, "\n");
@@ -907,8 +910,8 @@
                    "     ";
         assertEquals(expected, docCmd.text);
         */
-    }        
-    
+    }
+
     public void _testAfterClosePar1() { System.out.println("AfterClosePar1\n");
 
         String doc = "m = [a,";
@@ -917,9 +920,9 @@
         String expected = "\n" +
         "     ";
         assertEquals(expected, docCmd.text);
-        
+
     }
-    
+
 //    public void __testAfterCloseParOnlyIndent() { System.out.println("AfterCloseParOnlyIndent\n");
 //    	final TestIndentPrefs prefs = new TestIndentPrefs(true, 4);
 //
@@ -930,9 +933,9 @@
 //    	String expected = "\n" +
 //    	"    ";
 //    	assertEquals(expected, docCmd.text);
-//    	
+//
 //    }
-    
+
 //    public void __testAfterCloseParOnlyIndent2() { System.out.println("AfterCloseParOnlyIndent2\n");
 //    	final TestIndentPrefs prefs = new TestIndentPrefs(true, 4);
 //
@@ -945,9 +948,9 @@
 //    	String expected = "\n" +
 //    	"        ";
 //    	assertEquals(expected, docCmd.text);
-//    	
+//
 //    }
-    
+
     public void __testAfterClosePar2() { System.out.println("AfterClosePar2\n");
 
         String doc = "m = [a,\n" +
@@ -957,7 +960,7 @@
         String expected = "\n" +
         "     ";
         assertEquals(expected, docCmd.text);
-        
+
     }
     public void _testAfterClosePar() { System.out.println("AfterClosePar\n");
 
@@ -967,7 +970,7 @@
         String expected = "\n" +
         "         ";
         assertEquals(expected, docCmd.text);
-        
+
 //        doc = "m = [a, otherCall(), ]";
 //        docCmd = new DocCmd(doc.length()-1, 0, "\n"); //right before the last ']'
 //        strategy.customizeDocumentCommand(new Document(doc), docCmd);
@@ -975,7 +978,7 @@
 //        "      ";
 //        assertEquals(expected, docCmd.text);
     }
-    
+
     public void _testIndent2() { System.out.println("Indent2\n");
 
         String doc = "m = [a, otherCall(), ";
@@ -991,7 +994,7 @@
 //        expected = "\n" +
 //        "      ";
 //        assertEquals(expected, docCmd.text);
-        
+
         doc = "def m2(self):\n"+
               "    m1(a, b(), )";
         docCmd = new DocCmd(doc.length()-1, 0, "\n"); //right before the last ')'
@@ -999,20 +1002,20 @@
         expected = "\n" +
               "       ";
         assertEquals(expected, docCmd.text);
-        
+
     }
-    
+
     public void _testIndent3() { System.out.println("Indent3\n");
-        
+
 
         String doc = ""+
-        "properties.create(a = newClass(),"; 
+        "properties.create(a = newClass(),";
         DocCmd docCmd = new DocCmd(doc.length(), 0, "\n");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         String expected = "\n"+
         "                  ";
         assertEquals(expected, docCmd.text);
-        
+
     }
     public void __testIndent3a() { System.out.println("Indent3a\n");
 
@@ -1025,7 +1028,7 @@
     	"                  ";
     	assertEquals(expected, docCmd.text);
     }
-    
+
     public void _testIndent4() { System.out.println("Indent4\n"); //even if it does not end with ',' we should indent in parenthesis
 
     	String doc = ""+
@@ -1037,8 +1040,8 @@
     	"                               ";
     	assertEquals(expected, docCmd.text);
     }
-    
-    public void __testDedent5() { System.out.println("Dedent5\n"); 
+
+    public void __testDedent5() { System.out.println("Dedent5\n");
 
     	String doc = ""+
     	"properties.create(a = newClass(),\n" +
@@ -1050,9 +1053,9 @@
     	"                  ";
     	assertEquals(expected, docCmd.text);
     }
-    
+
 //    public void __testNoSmartIndent() { System.out.println("NoSmartIndent\n");
-//    	
+//
 //    	TestIndentPrefs prefs = new TestIndentPrefs(false, 4, true);
 //    	prefs.smartIndentAfterPar = false;
 //
@@ -1104,16 +1107,16 @@
 //    	String doc = null;
 //    	DocCmd docCmd = null;
 //    	String expected = null;
-//    	
+//
 //    	doc = "class c:\n" +
 //    	"    def met";
 //    	docCmd = new DocCmd(doc.length(), 0, "(");
 //    	strategy.customizeDocumentCommand(new Document(doc), docCmd);
 //    	expected = "():";
 //    	assertEquals(expected, docCmd.text);
-//    	
+//
 //    }
-    
+
     /**
      * Tests automatically adding/replacing brackets, colons, and parentheses.
      * @see PyAutoIndentStrategy
@@ -1125,14 +1128,14 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         String expected = "():";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "class c:\n" +
     		  "    def met";
         docCmd = new DocCmd(doc.length(), 0, "(");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "(self):";
         assertEquals(expected, docCmd.text);
-        
+
         //same as above, but with tabs
         doc = "class c:\n" +
         "\tdef met";
@@ -1140,31 +1143,31 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "(self):";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "class c(object): #";
         docCmd = new DocCmd(doc.length(), 0, "(");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "("; //in comment
         assertEquals(expected, docCmd.text);
-        
+
         doc = "def a";
         docCmd = new DocCmd(doc.length(), 0, "(");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "():";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "a";
         docCmd = new DocCmd(doc.length(), 0, "(");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "()";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "a()";
         docCmd = new DocCmd(doc.length()-1, 0, "(");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = "(";
         assertEquals(expected, docCmd.text);
-		
+
 		// test very simple ':' detection
 		doc = "def something():";
 		docCmd = new DocCmd(doc.length() - 1, 0, ":");
@@ -1181,7 +1184,7 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(32, docCmd.caretOffset);
-		
+
 		// test inputting ':' at the end of a document
 		doc = "class c:\n" +
 				"    def __init__(self)";
@@ -1190,7 +1193,7 @@
 		expected = ":";
 		assertEquals(expected, docCmd.text);
 		assertEquals(31, docCmd.offset);
-		
+
 		// test same as above, but with a comment
 		doc = "class c:\n" +
 				"    def __init__(self): # comment";
@@ -1199,7 +1202,7 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(32, docCmd.caretOffset);
-		
+
 		// test inputting ')' at the end of a document
 		doc = "class c:\n" +
 				"    def __init__(self)";
@@ -1208,7 +1211,7 @@
 		expected = ")";
 		assertEquals(expected, docCmd.text);
 		assertEquals(0, docCmd.caretOffset);
-		
+
 		// test inputting ')' at the end of a document when it should replace a ')'
 		doc = "class c:\n" +
 				"    def __init__(self)";
@@ -1217,16 +1220,16 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(31, docCmd.caretOffset);
-		
+
 		// test inputting ')' in the middle of the document
-		doc = "def __init__(self):\n" + 
+		doc = "def __init__(self):\n" +
 			  "   pass";
 		docCmd = new DocCmd(17, 0, ")");
 		strategy.customizeDocumentCommand(new Document(doc), docCmd);
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(18, docCmd.caretOffset);
-		
+
 		// check very simple braces insertion
 		doc = "()";
 		docCmd = new DocCmd(1, 0, ")");
@@ -1234,7 +1237,7 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(2, docCmd.caretOffset);
-		
+
 		// check simple braces insertion not at end of document
 		doc = "() ";
 		docCmd = new DocCmd(1, 0, ")");
@@ -1242,7 +1245,7 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(2, docCmd.caretOffset);
-		
+
 		// check insertion that should happen even being just before a ')'
 		doc = "(() ";
 		docCmd = new DocCmd(2, 0, ")");
@@ -1250,7 +1253,7 @@
 		expected = ")";
 		assertEquals(expected, docCmd.text);
 		assertEquals(0, docCmd.caretOffset);
-		
+
 		// check same stuff for brackets
 		// check simple braces insertion not at end of document
 		doc = "[] ";
@@ -1259,7 +1262,7 @@
 		expected = "";
 		assertEquals(expected, docCmd.text);
 		assertEquals(2, docCmd.caretOffset);
-		
+
 		// two different kinds of braces next to each other
 		doc = "([)";
 		docCmd = new DocCmd(2, 0, "]");
@@ -1268,7 +1271,7 @@
 		assertEquals(expected, docCmd.text);
 		assertEquals(0, docCmd.caretOffset);
     }
-    
+
     public void __testParens() { System.out.println("Parens\n");
 
     	String str = "isShown() #suite()" +
@@ -1276,11 +1279,11 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-") #suite()".length(), 0, ")");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("", docCmd.text); 
+    	assertEquals("", docCmd.text);
     	assertEquals(9, docCmd.caretOffset);
-    	
+
     }
-    
+
     public void __testParens2() { System.out.println("Parens2\n");
 
     	String str = "isShown() #suite()'" +
@@ -1288,12 +1291,12 @@
     	final Document doc = new Document(str);
     	DocCmd docCmd = new DocCmd(doc.getLength()-") #suite()'".length(), 0, ")");
     	strategy.customizeDocumentCommand(doc, docCmd);
-    	assertEquals("", docCmd.text); 
+    	assertEquals("", docCmd.text);
     	assertEquals(9, docCmd.caretOffset);
-    	
+
     }
 
-    
+
     public void __testElse() { System.out.println("Else\n");
         //first part of test - simple case
 
@@ -1312,10 +1315,10 @@
                 "    print a\n" +
                 "else",
                 doc.get());
-        
+
         //second part of test - should not dedent
 
-        strDoc = 
+        strDoc =
         "if foo:\n" +
         "    if somethingElse:" +
         "        print a\n" +
@@ -1333,9 +1336,9 @@
                 "        print a\n" +
                 "    else",
                 doc.get());
-        
+
     }
-    
+
     public void _testElif() { System.out.println("Elif\n");
     	//first part of test - simple case
 
@@ -1354,10 +1357,10 @@
     			"    print a\n" +
     			"elif",
     			doc.get());
-    	
+
     	//second part of test - should not dedent
 
-    	strDoc = 
+    	strDoc =
     		"if foo:\n" +
     		"    if somethingElse:" +
     		"        print a\n" +
@@ -1375,14 +1378,14 @@
     			"        print a\n" +
     			"    elif",
     			doc.get());
-    	
+
     }
-    
-    
+
+
     public void __testElseInFor() { System.out.println("ElseInFor\n");
         //first part of test - simple case
 
-        String strDoc = 
+        String strDoc =
         "for i in []:\n" +
         "    msg=\"success at %s\" % i\n" +
         "    else" +
@@ -1401,11 +1404,11 @@
                 "",
                 doc.get());
     }
-    
+
     public void __testElseInTry() { System.out.println("ElseInTry\n");
         //first part of test - simple case
 
-        String strDoc = 
+        String strDoc =
             "try:\n" +
             "    print a\n" +
             "except:\n" +
@@ -1426,7 +1429,7 @@
                 "else",
                 doc.get());
     }
-    
+
     public void _testElifWithPar() { System.out.println("ElifWithPar\n");
     	//first part of test - simple case
 
@@ -1445,10 +1448,10 @@
     			"    print a\n" +
     			"elif",
     			doc.get());
-    	
+
     	//second part of test - should not dedent
 
-    	strDoc = 
+    	strDoc =
     		"if foo:\n" +
     		"    if somethingElse:" +
     		"        print a\n" +
@@ -1466,9 +1469,9 @@
     			"        print a\n" +
     			"    elif",
     			doc.get());
-    	
+
     }
-    
+
     public void _testAutoImportStr() { System.out.println("AutoImportStr\n");
 
         String doc = "from xxx";
@@ -1476,31 +1479,31 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         String expected = " import ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "from xxx import";
         docCmd = new DocCmd(doc.length(), 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "no from xxx";
         docCmd = new DocCmd(doc.length(), 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "From xxx";
         docCmd = new DocCmd(doc.length(), 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "from this space";
         docCmd = new DocCmd(doc.length(), 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "from";
         docCmd = new DocCmd(doc.length(), 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
@@ -1512,22 +1515,23 @@
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " ";
         assertEquals(expected, docCmd.text);
-        
+
         doc = "from xxx #import yyy";
         docCmd = new DocCmd(8, 0, " ");
         strategy.customizeDocumentCommand(new Document(doc), docCmd);
         expected = " import ";
         assertEquals(expected, docCmd.text);
-        
+
     }
 
+	@Test
     public void testBug186514() throws Exception {
     	String prefix = "class A\n\tdef b\n\tend\n\t";
 		String postfix = "\nend";
 		String inserted = "def test1\nend\n|";
 		String expected = "\tdef test1\n\tend\n\t|";
 		doTestInsertion(prefix, postfix, inserted, expected);
-    }    
-    
+    }
+
 
 }
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/PartitioningTest.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/PartitioningTest.java
index 942bd3d..0e7f45d 100644
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/PartitioningTest.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/PartitioningTest.java
@@ -1,15 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
+
  *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests.text;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
 
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.dltk.ruby.internal.ui.text.IRubyPartitions;
@@ -18,12 +18,9 @@
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.ITypedRegion;
 import org.eclipse.jface.text.TextUtilities;
+import org.junit.Test;
 
-public class PartitioningTest extends TestCase {
-
-	public PartitioningTest(String name) {
-		super(name);
-	}
+public class PartitioningTest {
 
 	public void doTest(String data, String partition) throws Exception {
 		final String DELIMITER = "#$#";
@@ -57,24 +54,29 @@
 				expected.toString(), actual.toString());
 	}
 
+	@Test
 	public void testCode() throws Exception {
 		doTest("#$#class Foo; end#$#", IDocument.DEFAULT_CONTENT_TYPE);
 	}
 
+	@Test
 	public void testString() throws Exception {
 		doTest("puts #$#\"Hello, world\"#$#, a", IRubyPartitions.RUBY_STRING);
 	}
 
+	@Test
 	public void testPercentStringAfterPuts() throws Exception {
 		doTest("puts #$#%s/foo bar boz/#$# / 2", IRubyPartitions.RUBY_PERCENT_STRING);
 	}
 
+	@Test
 	public void testPercentStringAfterMethodCall() throws Exception {
 		doTest(
 				"def foo(*args); puts(*args); end\nfoo #$#%s/foo bar boz/#$# / 2",
 				IRubyPartitions.RUBY_PERCENT_STRING);
 	}
 
+	@Test
 	public void testPercentOperatorAfterVariable() throws Exception {
 		// XXX: this does not start a string in Ruby, but will be treated as a
 		// string in IDE
@@ -82,11 +84,13 @@
 				IRubyPartitions.RUBY_PERCENT_STRING);
 	}
 
+	@Test
 	public void testPercentDoesStartString() throws Exception {
 		doTest("if a == #$#%s/2/#$# then puts 1 else puts 2 end",
 				IRubyPartitions.RUBY_PERCENT_STRING);
 	}
 
+	@Test
 	public void testPercentDoesNotStartString() throws Exception {
 		// XXX: this does not start a string in Ruby, but will be treated as a
 		// string in IDE
@@ -135,6 +139,7 @@
 				IDocument.DEFAULT_CONTENT_TYPE);
 	}
 
+	@Test
 	public void testBug179488() throws Exception {
 		doTest("class Test\ndef test(x)\nobj = f($'#$#, x)\n"
 				+ "if (obj.class.name == #$#\"Array\") then\n#...\n"
@@ -164,6 +169,7 @@
 				IDocument.DEFAULT_CONTENT_TYPE);
 	}
 
+	@Test
 	public void testBug180370() throws Exception {
 		doTest(
 				"#$## Some metaprogramming to make it rock\n#$#"
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/RubyRequireHyperlinkDetectorTest.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/RubyRequireHyperlinkDetectorTest.java
index 0bcefc5..c8c32ea 100644
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/RubyRequireHyperlinkDetectorTest.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/RubyRequireHyperlinkDetectorTest.java
@@ -11,18 +11,17 @@
  *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests.text;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
 import org.eclipse.dltk.ruby.internal.ui.text.hyperlink.RubyRequireHyperlinkDetector;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.Region;
 import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.junit.Test;
 
-import junit.framework.TestCase;
-
-public class RubyRequireHyperlinkDetectorTest extends TestCase {
-
-	public RubyRequireHyperlinkDetectorTest(String name) {
-		super(name);
-	}
+public class RubyRequireHyperlinkDetectorTest {
 
 	/**
 	 * @author Alexey
@@ -86,30 +85,37 @@
 				.getHyperlinkText());
 	}
 
+	@Test
 	public void testSingleQuotes() {
 		detect("require 'abc'", 9, 3);
 	}
 
+	@Test
 	public void testDoubleQuotes() {
 		detect("require \"abc\"", 9, 3);
 	}
 
+	@Test
 	public void testManySpaces() {
 		detect(" require  \"abc\"", 11, 3);
 	}
 
+	@Test
 	public void testBracketsSingleQuotes() {
 		detect("require('abc')", 9, 3);
 	}
 
+	@Test
 	public void testBracketsDoubleQuotes() {
 		detect("require(\"abc\")", 9, 3);
 	}
 
+	@Test
 	public void testBracketsAndSpaces() {
 		detect("require( 'abc' )", 10, 3);
 	}
 
+	@Test
 	public void testNoHyperlink() {
 		assertNull(detector.checkLine("require abc"));
 		assertNull(detector.checkLine("require 'abc\""));
diff --git a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/indenting/IndentingTest.java b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/indenting/IndentingTest.java
index 1eb69f4..fad6599 100644
--- a/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/indenting/IndentingTest.java
+++ b/tests/org.eclipse.dltk.ruby.ui.tests/src/org/eclipse/dltk/ruby/ui/tests/text/indenting/IndentingTest.java
@@ -5,11 +5,11 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
+
  *******************************************************************************/
 package org.eclipse.dltk.ruby.ui.tests.text.indenting;
 
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
 
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.dltk.ruby.internal.ui.RubyPreferenceConstants;
@@ -23,13 +23,19 @@
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.TextUtilities;
 import org.eclipse.ui.PlatformUI;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
 
-public class IndentingTest extends TestCase {
+public class IndentingTest {
 
 	private static final String PATH = "resources/indenting/";
 	private static final String DELIMITER = TextUtilities
 			.getDefaultLineDelimiter(new Document());
 	private RubyAutoEditStrategy tabStrategy, spaceStrategy;
+	@Rule
+	public TestName testName = new TestName();
 
 	private void waitWorkbenchCreated() throws InterruptedException {
 		for (int i = 0; i < 40; i++) {
@@ -42,9 +48,8 @@
 				"Workbench did not intitialized during a minute.");
 	}
 
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
+	@Before
+	public void setUp() throws Exception {
 		waitWorkbenchCreated();
 		tabStrategy = createStrategy(true);
 		spaceStrategy = createStrategy(false);
@@ -70,7 +75,7 @@
 		final String NEW_LINE_TAG = "#n#";
 		final String REPLACE_TAG = "#r#";
 		String EXPECTED_TAG = "###";
-		
+
 		String delim = TextUtilities.determineLineDelimiter(data, DELIMITER);
 		data = data.replaceAll(NEW_LINE_TAG, START_TAG + delim + END_TAG);
 
@@ -127,7 +132,7 @@
 	}
 
 	private void magic() throws Exception {
-		String name = getName();
+		String name = testName.getMethodName();
 		String fileName = name.substring(4, 5).toLowerCase()
 				+ name.substring(5) + ".rb";
 		String data = TestUtils.getData(PATH + fileName);
@@ -137,75 +142,93 @@
 		doTest(data, tabStrategy);
 	}
 
+	@Test
 	public void testNewLineInDef() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testEnterBeforeClass() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testEnterOpensClass() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIfStatement() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIfModifier() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testMovingEndToNewLine() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testMovingEndWithWhitespaceToNewLine() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testDeindentingEnd() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testClassNotKeyword() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testNewLineAfterEmptyIndentedLine() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testNewLineInRegularFunction() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIndentAfterNewLineBeforeParen() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIndentOnUnclosedParen() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIndentOnFirstExplicitContinuation() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testIndentOnFirstImplicitContinuation() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testNoIndentOnSubsequentExplicitContinuation() throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testNoIndentOnSubsequentImplicitContinuationAfterExplicitOne()
 			throws Exception {
 		magic();
 	}
 
+	@Test
 	public void testNoIndentOnSubsequentImplicitContinuationAfterImplicitOne()
 			throws Exception {
 		magic();