Moved the code in the "tests" plugin (plural) to the "test" fragment (singular)....
[phpeclipse.git] / net.sourceforge.phpeclipse.test / src / net / sourceforge / phpeclipse / phpeditor / php / test / DualParseSyntaxErrorTest.java
diff --git a/net.sourceforge.phpeclipse.test/src/net/sourceforge/phpeclipse/phpeditor/php/test/DualParseSyntaxErrorTest.java b/net.sourceforge.phpeclipse.test/src/net/sourceforge/phpeclipse/phpeditor/php/test/DualParseSyntaxErrorTest.java
new file mode 100644 (file)
index 0000000..15b4590
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Created on 29.02.2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package net.sourceforge.phpeclipse.phpeditor.php.test;
+
+import net.sourceforge.phpdt.core.tests.util.AbstractCompilerTest;
+
+public class DualParseSyntaxErrorTest extends AbstractCompilerTest {
+       public static boolean optimizeStringLiterals = false;
+
+       public DualParseSyntaxErrorTest(String testName) {
+               super(testName);
+       }
+
+       public void test01() {
+               String s = "$login =1; " + "final class test {\n" + "\n"
+                               + "private function f1() {\n" + "\n" + "}\n"
+                               + "public function f2() {\n" + "\n" + "  \n" + "}  \n" + "}";
+
+               String expectedSyntaxErrorDiagnosis = "";
+
+               String testName = "<test01>";
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test02() {
+               String s = "class test {                                                            \n" + "     function f0() \n"
+                               + "     {                                                               \n" + " }                                                                               \n"
+                               + "}                                                                                    \n";
+
+               String expectedSyntaxErrorDiagnosis = "";
+
+               String testName = "<test02>";
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test03() {
+               String s = "$chars = ( isset($HTTP_GET_VARS['chars']) ) ? intval($HTTP_GET_VARS['chars']) : 200;";
+               String expectedSyntaxErrorDiagnosis = "";
+
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test96() {
+               String s = "$str = <<<EOD\n" + "Example of string\n"
+                               + "spanning multiple lines\n" + "using heredoc syntax.\n"
+                               + "EOD;\n" + "\n"
+                               + "/* More complex example, with variables. */\n"
+                               + "class foo\n" + "{\n" + "    var $foo;\n" + "    var $bar;\n"
+                               + "\n" + "    function foo()\n" + "    {\n"
+                               + "        $this->foo = 'Foo';\n"
+                               + "        $this->bar = array('Bar1', 'Bar2', 'Bar3');\n"
+                               + "    }\n" + "}\n" + "\n" + "$foo = new foo();\n"
+                               + "$name = 'MyName';\n" + "\n" + "echo <<<EOT\n"
+                               + "My name is \"$name\". I am printing some $foo->foo.\n"
+                               + "Now, I am printing some {$foo->bar[1]}.\n"
+                               + "This should print a capital 'A': \\x41\n" + "EOT;\n";
+               String expectedSyntaxErrorDiagnosis = "";
+
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test97() {
+               String s = "class momo {                                                            \n"
+                               + "     function &fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=null) \n"
+                               + "     {                                                               \n" + " }                                                                               \n"
+                               + "}                                                                                    \n";
+
+               String expectedSyntaxErrorDiagnosis = "";
+
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test98() {
+               String s = "return(array());"
+                               + "if(!$result = mysql_query($sql)) return(array());\n";
+
+               String expectedSyntaxErrorDiagnosis = "";
+
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+
+       public void test99() {
+               String s = "class test {                                                            \n"
+                               + "   murks;                                        \n"
+                               + "     function &fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum=null) \n"
+                               + "     {                                                               \n" + " }                                                                               \n"
+                               + "}                                                                                    \n";
+
+               String expectedSyntaxErrorDiagnosis = "----------\n"
+                               + "1. ERROR in  (at line 1)\n"
+                               + "     murks;                                        \n"
+                               + "     ^^^^^^\n"
+                               + "Parser error \"\'public\' \'private\' or \'protected\' modifier expected for field declarations.\"\n"
+                               + "----------\n"
+               // + "2. ERROR in (at line 1)\n"
+               // + " } \n"
+               // + " ^\n"
+               // + "Parser error \"Too many closing \'}\'; end-of-file not
+               // reached.\"\n"
+               // + "----------\n"
+               ;
+
+               checkParsePHP(s.toCharArray(), expectedSyntaxErrorDiagnosis);
+               // testName);
+       }
+}