X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/junit/sourceforge/phpeclipse/PHPParserTestCase.java b/net.sourceforge.phpeclipse/src/junit/sourceforge/phpeclipse/PHPParserTestCase.java index 94f940e..adf4c17 100644 --- a/net.sourceforge.phpeclipse/src/junit/sourceforge/phpeclipse/PHPParserTestCase.java +++ b/net.sourceforge.phpeclipse/src/junit/sourceforge/phpeclipse/PHPParserTestCase.java @@ -7,18 +7,18 @@ which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html **********************************************************************/ -import org.eclipse.core.runtime.CoreException; +import net.sourceforge.phpdt.internal.compiler.parser.Parser; +import net.sourceforge.phpdt.internal.compiler.parser.Scanner; +import org.eclipse.core.runtime.CoreException; import junit.framework.TestCase; -import net.sourceforge.phpeclipse.phpeditor.PHPParser; - /** * Tests the php parser */ public class PHPParserTestCase extends TestCase { - PHPParser parser; + Parser parser; public PHPParserTestCase(String name) { super(name); @@ -28,14 +28,72 @@ public class PHPParserTestCase extends TestCase { * Test the PHP Parser with different PHP snippets */ public void testPHPParser() { - checkHTML(""); - checkHTML(""); - checkHTML(" foo "); + // Bugs item #690938 + checkPHP( + "$ebus_sql['sel_url_list'] = <<>\n" + + "and appl_sect_deftn_sk = <>\n" + + "order by url_ord\n" + + "EOS;\n"); + + checkPHP("foreach ($HTTP_GET_VARS as $secvalue) { }"); + checkPHP("\"\\\"\";"); + checkPHP("\"\\[addsig]\""); + checkPHP("$v->read();"); + checkPHP("$add = 'a'.$i;$val = $$add;"); + checkPHP("($a==\"b\") || (c($this->x)==\"d\");"); + checkPHP("(substr($this->file, 0, 2) == \"MM\");"); + checkPHP("(substr($this->file, 0, 2) == \"MM\") || substr($this->file, 0, 2) == \"II\";"); + checkPHP("return (substr($this->file, 0, 2) == \"MM\") || substr($this->file, 0, 2) == \"II\";"); + checkPHP("$this->highlightfile->linkscripts{$category}"); + checkPHP("$code = call_user_method($this->highlightfile->linkscripts{$category}, $this->highlightfile, $oldword, $this->output_module)"); + checkPHP("$this->startmap[$startcurrtag]();"); + checkPHP("new $this->startmap[$startcurrtag]();"); + checkPHP("$this->highlightfile = new $this->startmap[$startcurrtag]();"); + checkPHP("echo \"Test\", \"me\";"); + checkPHP("print (\"Test me\");"); + checkPHP("$s = <<blockvariables[$block][$varname]);"); + checkPHP("new IT_Error(\"The block '$block' was not found in the template.\", __FILE__, __LINE__);"); + checkPHP("for ($i=156, $j=0; $i<512; $i++, $j++) $v_checksum += ord(substr($v_binary_data_last,$j,1));"); + checkPHP("define('MAIL_MIME_CRLF', $crlf, true);"); + checkPHP("static $last_run = 0;"); + checkPHP("unset($headers['Subject']);"); + checkPHP("switch($func) {\n case \"f0\":\n case \"f1\":\n f1();\n break; \n case \"tt\": \n default: \n f0(); \n break;\n }"); + checkPHP("function validateAndParseResponse($code, &$arguments) { }"); + checkPHP("$options = Console_Getopt::getopt($argv, \"h?v:e:p:d:\");"); + checkPHP("$this->container = new $container_class($container_options);"); + checkPHP("class Cmd extends PEAR { var $arrSetting = array(); }"); + checkPHP("class Cmd extends PEAR { var $arrSetting = array(), $i=10; }"); checkPHP("if (isset($test)) { } elseif (isset($lang)) { }"); checkPHP("require_once(\"mainfile.php\"); "); - checkPHP("if (eregi(\"footer.php\",$PHP_SELF)) {\n" + "Header(\"Location: index.php\");\n" + "die();\n" + "}\n"); - checkPHP("while (eregi(\"footer.php\",$PHP_SELF)) {\n" + "Header(\"Location: index.php\");\n" + "die();\n" + "}\n"); - checkPHP("while (eregi(\"footer.php\",$PHP_SELF)) :\n" + "Header(\"Location: index.php\");\n" + "die();\n" + "endwhile;\n"); + checkPHP( + "if (eregi(\"footer.php\",$PHP_SELF)) {\n" + + "Header(\"Location: index.php\");\n" + + "die();\n" + + "}\n"); + checkPHP( + "while (eregi(\"footer.php\",$PHP_SELF)) {\n" + + "Header(\"Location: index.php\");\n" + + "die();\n" + + "}\n"); + checkPHP( + "while (eregi(\"footer.php\",$PHP_SELF)) :\n" + + "Header(\"Location: index.php\");\n" + + "die();\n" + + "endwhile;\n"); checkPHP("$tipath = \"images/topics/\";"); checkPHP("$reasons = array(\"1\", \"2\",\"test\");"); checkPHP("if ($home == 1) { message_box(); blocks(Center);}"); @@ -44,8 +102,6 @@ public class PHPParserTestCase extends TestCase { checkPHP("list ($catid) = sql_fetch_row($result, $dbi);"); checkPHP("if (!$name) { \n }"); checkPHP("mt_srand((double)microtime()*1000000);"); - checkPHP("\"\\\"\";"); - checkPHP("$v->read();"); checkPHP("$alttext = ereg_replace(\"\\\"\", \"\", $alttext);"); checkPHP("$message .= \"\"._THISISAUTOMATED.\"\\n\\n\";"); checkPHP("if (!empty($pass) AND $pass==$passwd) { }"); @@ -68,24 +124,42 @@ public class PHPParserTestCase extends TestCase { checkPHP("do {$array[] = array(\"$myrow[uid]\" => \"$myrow[uname]\"); } while($myrow = mysql_fetch_array($result));"); checkPHP("$ol = new Overlib();"); checkPHP("$risultato = mysql_query($sql) or\n die(mysql_error());"); + + checkHTML("\n\n\n\n "); + checkHTML(""); + checkHTML(""); + checkHTML(" foo "); + checkHTML(" "); + checkHTML(""); } private void checkPHP(String strEval) { try { - parser.phpParse(strEval, 1); + if (Scanner.DEBUG) { + System.out.println("\n------------------------------------"); + System.out.println(strEval); + } + parser.phpParserTester(strEval, 1); } catch (CoreException e) { } } private void checkHTML(String strEval) { - parser.htmlParse(strEval); + try { + if (Scanner.DEBUG) { + System.out.println("\n------------------------------------"); + System.out.println(strEval); + } + parser.parse(strEval); + } catch (CoreException e) { + } } /** * The JUnit setup method */ protected void setUp() { - parser = new PHPParser(null); + parser = new Parser(null); } }