* Mockobject for Testing.
*
* @author Stefan Langer
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class DummyDocument implements IDocument
+public class DummyDocument extends Document // implements IDocument
{
private char[] fTextBuffer;
/* (non-Javadoc)
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#addPositionCategory(java.lang.String)
*/
- public void addPositionCategory(String category)
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public void addPositionCategory(String category)
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#removePositionCategory(java.lang.String)
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#containsPositionCategory(java.lang.String)
*/
- public boolean containsPositionCategory(String category)
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public boolean containsPositionCategory(String category)
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#addPosition(org.eclipse.jface.text.Position)
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#addPositionUpdater(org.eclipse.jface.text.IPositionUpdater)
*/
- public void addPositionUpdater(IPositionUpdater updater)
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public void addPositionUpdater(IPositionUpdater updater)
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#removePositionUpdater(org.eclipse.jface.text.IPositionUpdater)
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#insertPositionUpdater(org.eclipse.jface.text.IPositionUpdater, int)
*/
- public void insertPositionUpdater(IPositionUpdater updater, int index)
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public void insertPositionUpdater(IPositionUpdater updater, int index)
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#getPositionUpdaters()
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#getLegalLineDelimiters()
*/
- public String[] getLegalLineDelimiters()
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public String[] getLegalLineDelimiters()
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#getLineDelimiter(int)
*/
- public String getLineDelimiter(int line) throws BadLocationException
- {
- throw new UnsupportedOperationException("Not implemented!");
- }
+// public String getLineDelimiter(int line) throws BadLocationException
+// {
+// throw new UnsupportedOperationException("Not implemented!");
+// }
/* (non-Javadoc)
* @see org.eclipse.jface.text.IDocument#search(int, java.lang.String, boolean, boolean, boolean)
--- /dev/null
+/*
+ * Created on 28.04.2003
+ *
+ */
+package net.sourceforge.phpeclipse.phpeditor.php.test;
+
+import java.util.Map;
+
+import junit.framework.TestCase;
+import net.sourceforge.phpdt.internal.corext.codemanipulation.StubUtility;
+import net.sourceforge.phpdt.internal.corext.util.Strings;
+import net.sourceforge.phpdt.internal.formatter.CodeFormatter;
+import net.sourceforge.phpdt.internal.ui.preferences.CodeFormatterPreferencePage;
+import net.sourceforge.phpeclipse.PHPCore;
+
+import org.eclipse.jface.text.IDocument;
+
+/**
+ * Testcase for the PHP CodeFormatter
+ * @author Stefan Langer
+ * @version $Revision: 1.1 $
+ */
+public class PHPFormatterTest extends TestCase {
+ private CodeFormatter fFormatter;
+ private IDocument fDocument;
+ private String fInitialIndentation;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ Map options = PHPCore.getOptions();
+ fFormatter = new CodeFormatter(options);
+ fDocument = new DummyDocument();
+ }
+
+ public void testFormatter1() {
+ System.out.println("----- testFormatter1 -----");
+
+ String text = "<?php\n" + "function test()\n" + "{echo 'Test!';}\n" + "?>";
+ fDocument.set(text);
+
+ String lineDelimiter = StubUtility.getLineDelimiterFor(fDocument);
+
+ int indent = 0;
+ if (fInitialIndentation != null) {
+ indent = Strings.computeIndent(fInitialIndentation, CodeFormatterPreferencePage.getTabSize());
+ }
+ String formatedString = fFormatter.format(text, indent, null, lineDelimiter);
+
+ String testResult = "<?php function test() {" + lineDelimiter + "\techo 'Test!';" + lineDelimiter + "}" + lineDelimiter + "?>";
+
+ junit.framework.Assert.assertEquals(formatedString, testResult);
+ }
+
+ public void testFormatter2() {
+ // bug 741752
+ System.out.println("----- testFormatter2 -----");
+ String text = "<?php\n" + "if ( ${ $feldname }== $modellvar) $i=0;\n" + "?>";
+ fDocument.set(text);
+
+ String lineDelimiter = StubUtility.getLineDelimiterFor(fDocument);
+
+ int indent = 0;
+ if (fInitialIndentation != null) {
+ indent = Strings.computeIndent(fInitialIndentation, CodeFormatterPreferencePage.getTabSize());
+ }
+ String formatedString = fFormatter.format(text, indent, null, lineDelimiter);
+
+ String testResult = "<?php " + "if (${ $feldname } == $modellvar)" + lineDelimiter + "\t$i = 0;" + lineDelimiter + "?>";
+
+ junit.framework.Assert.assertEquals(formatedString, testResult);
+ }
+}