scripted test class extracted to dltk.formatter.tests
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.dltk.ruby.formatter.tests/META-INF/MANIFEST.MF
index 6d208fc..f5caf96 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/META-INF/MANIFEST.MF
@@ -13,8 +13,10 @@
org.eclipse.dltk.ruby.formatter,
org.eclipse.core.resources,
org.eclipse.ui,
- org.eclipse.dltk.formatter
+ org.eclipse.dltk.formatter,
+ org.eclipse.dltk.formatter.tests
Eclipse-LazyStart: true
Bundle-RequiredExecutionEnvironment: J2SE-1.4
Export-Package: org.eclipse.dltk.ruby.formatter.tests
Bundle-Activator: org.eclipse.dltk.ruby.formatter.tests.RubyFormatterTestsPlugin
+Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs1.rb b/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs1.rb
index d2964d0..1ca88ae 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs1.rb
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs1.rb
@@ -1,3 +1,5 @@
+==> line.first.before = 1
+==> line.method.before = 1
==== method rubydocs
#Hello class
class Hello
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs2.rb b/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs2.rb
index 1c0441d..2931d5c 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs2.rb
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/scripts/rubydocs2.rb
@@ -1,3 +1,5 @@
+==> line.first.before = 1
+==> line.method.before = 2
==== method rubydocs
#Hello class
class Hello
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractFormatterTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractFormatterTest.java
deleted file mode 100644
index f480248..0000000
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractFormatterTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 xored software, Inc.
- *
- * 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
- *
- * Contributors:
- * xored software, Inc. - initial API and Implementation (Alex Panchenko)
- *******************************************************************************/
-package org.eclipse.dltk.ruby.formatter.tests;
-
-import java.io.IOException;
-import java.io.LineNumberReader;
-import java.io.Reader;
-import java.util.Collection;
-
-import junit.framework.Assert;
-import junit.framework.ComparisonFailure;
-import junit.framework.TestCase;
-
-import org.eclipse.dltk.compiler.util.Util;
-import org.eclipse.dltk.internal.corext.util.Strings;
-import org.eclipse.dltk.ruby.formatter.RubyFormatter;
-import org.eclipse.dltk.ui.formatter.FormatterException;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.text.edits.TextEdit;
-
-public abstract class AbstractFormatterTest extends TestCase {
-
- /**
- * @param input
- * @return
- * @throws FormatterException
- */
- protected String format(String input) throws FormatterException {
- RubyFormatter f = createFormatter();
- final TextEdit edit = f.format(input, 0, input.length(), 0);
- Assert.assertNotNull(edit);
- final IDocument document = new Document(input);
- try {
- edit.apply(document);
- } catch (BadLocationException e) {
- throw new RuntimeException(e);
- }
- return document.get();
- }
-
- protected RubyFormatter createFormatter() {
- return new TestRubyFormatter();
- }
-
- protected static String joinLines(Collection lines) {
- return joinLines((String[]) lines.toArray(new String[lines.size()]));
- }
-
- protected static String joinLines(String[] lines) {
- return Strings.concatenate(lines, Util.LINE_SEPARATOR)
- + Util.LINE_SEPARATOR;
- }
-
- /**
- * @param lines
- * @param beginIndex
- * @param endIndex
- * @return
- */
- protected static String joinLines(String[] lines, int beginIndex,
- int endIndex) {
- final StringBuffer sb = new StringBuffer();
- for (int i = beginIndex; i < endIndex; ++i) {
- sb.append(lines[i]);
- sb.append(Util.LINE_SEPARATOR);
- }
- return sb.toString();
- }
-
- protected boolean compareIgnoreBlanks(String entryName, Reader inputReader,
- Reader outputReader) throws IOException {
- LineNumberReader input = new LineNumberReader(inputReader);
- LineNumberReader output = new LineNumberReader(outputReader);
- for (;;) {
- String inputLine;
- do {
- inputLine = input.readLine();
- if (inputLine != null) {
- inputLine = inputLine.trim();
- }
- } while (inputLine != null && inputLine.length() == 0);
- String outputLine;
- do {
- outputLine = output.readLine();
- if (outputLine != null) {
- outputLine = outputLine.trim();
- }
- } while (outputLine != null && outputLine.length() == 0);
- if (inputLine == null) {
- if (outputLine == null) {
- return true;
- } else {
- fail(entryName + ": Extra output " + output.getLineNumber()
- + ":" + outputLine);
- }
- } else if (outputLine == null) {
- fail(entryName + ": Missing output " + input.getLineNumber()
- + ":" + inputLine);
- } else if (!inputLine.equals(outputLine)) {
- throw new ComparisonFailure(entryName + ": Comparison failed",
- input.getLineNumber() + ":" + inputLine, output
- .getLineNumber()
- + ":" + outputLine);
- }
- }
- }
-
-}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractRubyFormatterTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractRubyFormatterTest.java
new file mode 100644
index 0000000..dbe0857
--- /dev/null
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/AbstractRubyFormatterTest.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc.
+ *
+ * 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
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+package org.eclipse.dltk.ruby.formatter.tests;
+
+import java.util.Map;
+
+import org.eclipse.dltk.compiler.util.Util;
+import org.eclipse.dltk.formatter.tests.AbstractFormatterTest;
+import org.eclipse.dltk.ui.formatter.IScriptFormatter;
+
+public abstract class AbstractRubyFormatterTest extends AbstractFormatterTest {
+
+ protected IScriptFormatter createFormatter(Map preferences) {
+ return preferences != null ? new TestRubyFormatter(Util.LINE_SEPARATOR,
+ preferences) : new TestRubyFormatter();
+ }
+}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BeginTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BeginTest.java
index e5a2992..a276e7a 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BeginTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BeginTest.java
@@ -11,11 +11,14 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class BeginTest extends ScriptedTest {
public static TestSuite suite() {
- return new BeginTest().createScriptedSuite("scripts/begin.rb");
+ return new BeginTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/begin.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BlocksTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BlocksTest.java
index 8a21bb4..bc0e53e 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BlocksTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/BlocksTest.java
@@ -11,12 +11,15 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class BlocksTest extends ScriptedTest {
public static TestSuite suite() {
- return new BlocksTest().createScriptedSuite("scripts/blocks.rb");
+ return new BlocksTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/blocks.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ClassesAndMethodsTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ClassesAndMethodsTest.java
index 94b7690..011e297 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ClassesAndMethodsTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ClassesAndMethodsTest.java
@@ -11,13 +11,16 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class ClassesAndMethodsTest extends ScriptedTest {
public static TestSuite suite() {
- return new ClassesAndMethodsTest()
- .createScriptedSuite("scripts/classes-n-methods.rb");
+ return new ClassesAndMethodsTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT,
+ "scripts/classes-n-methods.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentWrapTests.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentWrapTests.java
index 0d9c312..ad4ecdc 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentWrapTests.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentWrapTests.java
@@ -13,12 +13,10 @@
import java.util.Map;
-import org.eclipse.dltk.compiler.util.Util;
-import org.eclipse.dltk.ruby.formatter.RubyFormatter;
import org.eclipse.dltk.ruby.formatter.RubyFormatterConstants;
import org.eclipse.dltk.ui.formatter.FormatterException;
-public class CommentWrapTests extends AbstractFormatterTest {
+public class CommentWrapTests extends AbstractRubyFormatterTest {
public void testWrapping1() throws FormatterException {
String input = joinLines(new String[] { "# 01234567890 01234567890",
@@ -37,12 +35,12 @@
assertEquals(output, format(input));
}
- protected RubyFormatter createFormatter() {
+ protected Map getDefaultPreferences() {
Map preferences = TestRubyFormatter.createTestingPreferences();
preferences.put(RubyFormatterConstants.WRAP_COMMENTS, Boolean.TRUE
.toString());
preferences.put(RubyFormatterConstants.WRAP_COMMENTS_LENGTH, "20");
- return new TestRubyFormatter(Util.LINE_SEPARATOR, preferences);
+ return preferences;
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentsTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentsTest.java
index 0dcef86..5d2096b 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentsTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/CommentsTest.java
@@ -1,11 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class CommentsTest extends ScriptedTest {
public static TestSuite suite() {
- return new CommentsTest().createScriptedSuite("scripts/comments.rb");
+ return new CommentsTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/comments.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/DoTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/DoTest.java
index e625d60..d1bc979 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/DoTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/DoTest.java
@@ -1,11 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class DoTest extends ScriptedTest {
public static TestSuite suite() {
- return new DoTest().createScriptedSuite("scripts/do.rb");
+ return new DoTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/do.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/FormatRubyLibTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/FormatRubyLibTest.java
index c711a48..795b677 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/FormatRubyLibTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/FormatRubyLibTest.java
@@ -31,7 +31,7 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.TextEdit;
-public class FormatRubyLibTest extends AbstractFormatterTest {
+public class FormatRubyLibTest extends AbstractRubyFormatterTest {
private static final String FILENAME = "/home/dltk/apps/ruby-lib.zip";
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/HereDocumentTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/HereDocumentTest.java
index ba7011e..cc02fb2 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/HereDocumentTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/HereDocumentTest.java
@@ -1,12 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class HereDocumentTest extends ScriptedTest {
public static TestSuite suite() {
- return new HereDocumentTest()
- .createScriptedSuite("scripts/heredocument.rb");
+ return new HereDocumentTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/heredocument.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/IfTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/IfTest.java
index cc8d329..7ca05fb 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/IfTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/IfTest.java
@@ -11,12 +11,15 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class IfTest extends ScriptedTest {
public static TestSuite suite() {
- return new IfTest().createScriptedSuite("scripts/if.rb");
+ return new IfTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/if.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ModulesTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ModulesTest.java
index 2a560ca..979326a 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ModulesTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ModulesTest.java
@@ -11,12 +11,15 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class ModulesTest extends ScriptedTest {
public static TestSuite suite() {
- return new ModulesTest().createScriptedSuite("scripts/modules.rb");
+ return new ModulesTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/modules.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ParserTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ParserTest.java
index 2b229d0..0412937 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ParserTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ParserTest.java
@@ -34,7 +34,7 @@
import org.jruby.lexer.yacc.ISourcePosition;
import org.jruby.parser.RubyParserResult;
-public class ParserTest extends AbstractFormatterTest {
+public class ParserTest extends AbstractRubyFormatterTest {
public void testEndKeyword() throws FormatterException {
final String input = "class Test" + Util.LINE_SEPARATOR + "end"
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RDocTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RDocTest.java
index baee246..1f7153e 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RDocTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RDocTest.java
@@ -1,10 +1,13 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class RDocTest extends ScriptedTest {
public static TestSuite suite() {
- return new RDocTest().createScriptedSuite("scripts/rdoc.rb");
+ return new RDocTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/rdoc.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RegexpTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RegexpTest.java
index 50e7900..e0ec006 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RegexpTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RegexpTest.java
@@ -1,11 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class RegexpTest extends ScriptedTest {
public static TestSuite suite() {
- return new RegexpTest().createScriptedSuite("scripts/regexp.rb");
+ return new RegexpTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/regexp.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc1Test.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc1Test.java
index ae26b60..35cac27 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc1Test.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc1Test.java
@@ -11,25 +11,15 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
-import java.util.Map;
-
import junit.framework.TestSuite;
-import org.eclipse.dltk.compiler.util.Util;
-import org.eclipse.dltk.ruby.formatter.RubyFormatter;
-import org.eclipse.dltk.ruby.formatter.RubyFormatterConstants;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
public class RubyDoc1Test extends ScriptedTest {
public static TestSuite suite() {
- return new RubyDoc1Test().createScriptedSuite("scripts/rubydocs1.rb");
- }
-
- protected RubyFormatter createFormatter() {
- Map preferences = TestRubyFormatter.createTestingPreferences();
- preferences.put(RubyFormatterConstants.LINES_BEFORE_FIRST, "1");
- preferences.put(RubyFormatterConstants.LINES_BEFORE_METHOD, "1");
- return new TestRubyFormatter(Util.LINE_SEPARATOR, preferences);
+ return new RubyDoc1Test().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/rubydocs1.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc2Test.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc2Test.java
index f8fd07a..afab553 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc2Test.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyDoc2Test.java
@@ -11,25 +11,15 @@
*******************************************************************************/
package org.eclipse.dltk.ruby.formatter.tests;
-import java.util.Map;
-
import junit.framework.TestSuite;
-import org.eclipse.dltk.compiler.util.Util;
-import org.eclipse.dltk.ruby.formatter.RubyFormatter;
-import org.eclipse.dltk.ruby.formatter.RubyFormatterConstants;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
public class RubyDoc2Test extends ScriptedTest {
public static TestSuite suite() {
- return new RubyDoc2Test().createScriptedSuite("scripts/rubydocs2.rb");
- }
-
- protected RubyFormatter createFormatter() {
- Map preferences = TestRubyFormatter.createTestingPreferences();
- preferences.put(RubyFormatterConstants.LINES_BEFORE_FIRST, "1");
- preferences.put(RubyFormatterConstants.LINES_BEFORE_METHOD, "2");
- return new TestRubyFormatter(Util.LINE_SEPARATOR, preferences);
+ return new RubyDoc2Test().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/rubydocs2.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyFormatterTestsPlugin.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyFormatterTestsPlugin.java
index 7ddc8fa..bcc2cc2 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyFormatterTestsPlugin.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/RubyFormatterTestsPlugin.java
@@ -1,8 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import java.util.Map;
+
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.dltk.compiler.util.Util;
+import org.eclipse.dltk.formatter.tests.ScriptedTest.IScriptedTestContext;
+import org.eclipse.dltk.ui.formatter.IScriptFormatter;
import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
/**
@@ -61,4 +67,25 @@
getDefault().getLog().log(status);
}
+ public static final IScriptedTestContext CONTEXT = new IScriptedTestContext() {
+
+ public Bundle getResourceBundle() {
+ return getDefault().getBundle();
+ }
+
+ public String getCharset() {
+ return AllTests.CHARSET;
+ }
+
+ public IScriptFormatter createFormatter(Map preferences) {
+ if (preferences != null) {
+ final Map prefs = TestRubyFormatter.createTestingPreferences();
+ prefs.putAll(preferences);
+ return new TestRubyFormatter(Util.LINE_SEPARATOR, prefs);
+ } else {
+ return new TestRubyFormatter();
+ }
+ }
+ };
+
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ScriptedTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ScriptedTest.java
deleted file mode 100644
index 72f8f9d..0000000
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/ScriptedTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 xored software, Inc.
- *
- * 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
- *
- * Contributors:
- * xored software, Inc. - initial API and Implementation (Alex Panchenko)
- *******************************************************************************/
-package org.eclipse.dltk.ruby.formatter.tests;
-
-import java.io.IOException;
-import java.net.URL;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.dltk.compiler.util.Util;
-import org.eclipse.dltk.utils.TextUtils;
-import org.osgi.framework.Bundle;
-
-public class ScriptedTest extends AbstractFormatterTest {
-
- private String input;
- private String expected;
-
- protected void runTest() throws Throwable {
- final String output = format(input);
- assertEquals(expected, output);
- }
-
- protected static Bundle getResourceBundle() {
- return RubyFormatterTestsPlugin.getDefault().getBundle();
- }
-
- protected static char[] readResource(String resourceName)
- throws IOException {
- final URL resource = getResourceBundle().getResource(resourceName);
- assertNotNull(resourceName + " is not found", resource); //$NON-NLS-1$
- return Util.getInputStreamAsCharArray(resource.openStream(), -1,
- AllTests.CHARSET);
- }
-
- private static final String TEST_MARKER = "====";
- private static final String RESPONSE_MARKER = "==";
-
- public TestSuite createScriptedSuite(String resourceName) {
- return createScriptedSuite(getClass().getName(), resourceName, 0);
- }
-
- /**
- * @param resourceName
- * @return
- */
- public TestSuite createScriptedSuite(String suiteName, String resourceName,
- int beginTestIndex) {
- final TestSuite suite = new TestSuite(suiteName);
- try {
- final String content = new String(readResource(resourceName));
- final String[] lines = TextUtils.splitLines(content);
- String testName = "START";
- int testIndex = 0;
- int testBegin = 0;
- int responseBegin = -1;
- int i = 0;
- while (i < lines.length) {
- final String line = lines[i++];
- if (line.startsWith(TEST_MARKER)) {
- final int testEnd = i - 1;
- if (testEnd > testBegin) {
- if (responseBegin < 0) {
- throw new IllegalArgumentException(
- "No response marker - next test started on line "
- + testEnd);
- }
- if (testIndex >= beginTestIndex) {
- suite.addTest(createTest(testName, lines,
- testBegin, responseBegin, testEnd));
- }
- ++testIndex;
- }
- testBegin = i;
- responseBegin = -1;
- testName = line.substring(TEST_MARKER.length()).trim();
- } else if (line.startsWith(RESPONSE_MARKER)) {
- if (responseBegin >= 0) {
- throw new IllegalArgumentException(
- "Multiple response markers: line " + (i - 1)
- + ", previous on line " + responseBegin);
- }
- responseBegin = i;
- }
- }
- if (lines.length > testBegin) {
- if (responseBegin < 0) {
- throw new IllegalArgumentException(
- "No response marker in last test");
- }
- if (testIndex >= beginTestIndex) {
- suite.addTest(createTest(testName, lines, testBegin,
- responseBegin, lines.length));
- }
- }
- } catch (final Throwable e) {
- suite.addTest(new TestCase(e.getClass().getName()) { //$NON-NLS-1$
- protected void runTest() throws Throwable {
- throw e;
- }
- });
- }
- return suite;
- }
-
- private ScriptedTest createTest(String testName, String[] lines,
- int testBegin, int responseBegin, final int testEnd)
- throws Exception {
- final String input = joinLines(lines, testBegin, responseBegin - 1);
- final String expected = joinLines(lines, responseBegin, testEnd);
- ScriptedTest test = (ScriptedTest) getClass().newInstance();
- test.setName(testName);
- test.input = input;
- test.expected = expected;
- return test;
- }
-
-}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/SimpleTests.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/SimpleTests.java
index 633c9d6..4dcbe70 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/SimpleTests.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/SimpleTests.java
@@ -13,7 +13,7 @@
import org.eclipse.dltk.ui.formatter.FormatterException;
-public class SimpleTests extends AbstractFormatterTest {
+public class SimpleTests extends AbstractRubyFormatterTest {
public void test1() throws FormatterException {
String input = joinLines(new String[] { "class Hello",
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/StringsTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/StringsTest.java
index f661989..979a35b 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/StringsTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/StringsTest.java
@@ -1,11 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class StringsTest extends ScriptedTest {
public static TestSuite suite() {
- return new StringsTest().createScriptedSuite("scripts/strings.rb");
+ return new StringsTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/strings.rb");
}
}
diff --git a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/UnaryPlusTest.java b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/UnaryPlusTest.java
index 24fcbf2..6495a3a 100644
--- a/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/UnaryPlusTest.java
+++ b/tests/org.eclipse.dltk.ruby.formatter.tests/src/org/eclipse/dltk/ruby/formatter/tests/UnaryPlusTest.java
@@ -1,11 +1,14 @@
package org.eclipse.dltk.ruby.formatter.tests;
+import org.eclipse.dltk.formatter.tests.ScriptedTest;
+
import junit.framework.TestSuite;
public class UnaryPlusTest extends ScriptedTest {
public static TestSuite suite() {
- return new UnaryPlusTest().createScriptedSuite("scripts/unaryplus.rb");
+ return new UnaryPlusTest().createScriptedSuite(
+ RubyFormatterTestsPlugin.CONTEXT, "scripts/unaryplus.rb");
}
}