X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java index 5813d6e..53e1d48 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/test/PHPPartitionScannerTest.java @@ -13,7 +13,7 @@ import junit.framework.*; /** * Testcase for the PHPPartitionScanner * @author Stefan Langer - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ public class PHPPartitionScannerTest extends TestCase { @@ -49,6 +49,337 @@ public class PHPPartitionScannerTest extends TestCase junit.framework.Assert.assertEquals(0, fScanner.getTokenOffset()); } + public void testBrokenPHPPartition() + { + String text = + ";\n" + + "function test()\n" + + "{echo 'Tes"; + fDocument.set(text); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + fDocument.getLength(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals(0, fScanner.getTokenOffset()); + } + + public void testPHP_PHPCOMMENT_HTML_Partition() + { + String php1 = " */"; + String php2 = "echo \" short tags enabled!\"; ?>"; + String html1 = ""; + String php3 = + "<? echo \"/** this is no comment */The ?> <?php Title\"?>"; + String html2 = ""; + String php4 = "\"\n\r"; + String phpcomment2 = + "/** This is another comment @param test @return test*/"; + String php5 = " echo \" just to fill up another php partition\"?>"; + String html3 = "

Copyright 2003 by PHPEclipse"; + + fDocument.set( + php1 + + phpcomment1 + + php2 + + html1 + + php3 + + html2 + + php4 + + phpcomment2 + + php5 + + html3); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + // php 1 + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 1 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 1 not correct!", + php1.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 1 not correct!", + 0, + fScanner.getTokenOffset()); + // comment1 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHPComment Partition 1 not recognized!", + IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHPComment Partition 1 not correct!", + phpcomment1.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHPComment Partition 1 not correct!", + php1.length(), + fScanner.getTokenOffset()); + + // php 2 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 2 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 2 not correct!", + php2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 2 not correct!", + php1.length() + phpcomment1.length(), + fScanner.getTokenOffset()); + + // check html 1 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 1 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 1 not correct!", + html1.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 1 not correct!", + php1.length() + phpcomment1.length() + php2.length(), + fScanner.getTokenOffset()); + + // php 3 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 3 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 3 not correct!", + php3.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 3 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length(), + fScanner.getTokenOffset()); + + // check html 2 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 2 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 2 not correct!", + html2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 2 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length() + + php3.length(), + fScanner.getTokenOffset()); + + // php 4 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 4 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 4 not correct!", + php4.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 4 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length() + + php3.length() + + html2.length(), + fScanner.getTokenOffset()); + + // check comment 2 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Multilinecomment 2 not recognized!", + IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Multilinecomment 2 not correct!", + phpcomment2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Multilinecomment 2 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length() + + php3.length() + + html2.length() + + php4.length(), + fScanner.getTokenOffset()); + + // php 5 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 5 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 5 not correct!", + php5.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 5 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length() + + php3.length() + + html2.length() + + php4.length() + + phpcomment2.length(), + fScanner.getTokenOffset()); + // check html 3 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 3 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 3 not correct!", + html3.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 3 not correct!", + php1.length() + + phpcomment1.length() + + php2.length() + + html1.length() + + php3.length() + + html2.length() + + php4.length() + + phpcomment2.length() + + php5.length(), + fScanner.getTokenOffset()); + + } + + public void testPHP_HTML_Partition() + { + String php1 = ""; + String html1 = ""; + String php2 = "<? echo \"The ?> <?php Title\"?>"; + String html2 = ""; + String php3 = + " just to fill up another php partition\"?>"; + String html3 = "

Copyright 2003 by PHPEclipse"; + + fDocument.set(php1 + html1 + php2 + html2 + php3 + html3); + fScanner.setRange(fDocument, 0, fDocument.getLength()); + // php 1 + IToken token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 1 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 1 not correct!", + php1.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 1 not correct!", + 0, + fScanner.getTokenOffset()); + // check html 1 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 1 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 1 not correct!", + html1.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 1 not correct!", + php1.length(), + fScanner.getTokenOffset()); + // php 2 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 2 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 2 not correct!", + php2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 2 not correct!", + html1.length() + php1.length(), + fScanner.getTokenOffset()); + // check html 2 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 2 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 2 not correct!", + html2.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 2 not correct!", + php1.length() + html1.length() + php2.length(), + fScanner.getTokenOffset()); + // php 3 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "PHP Partition 3 not recognized!", + IPHPPartitionScannerConstants.PHP, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of PHP Partition 3 not correct!", + php3.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of PHP Partition 3 not correct!", + html2.length() + php2.length() + html1.length() + php1.length(), + fScanner.getTokenOffset()); + // check html 3 + token = fScanner.nextToken(); + junit.framework.Assert.assertEquals( + "HTML 3 not recognized!", + IPHPPartitionScannerConstants.HTML, + (String) token.getData()); + junit.framework.Assert.assertEquals( + "Length of HTML 3 not correct!", + html3.length(), + fScanner.getTokenLength()); + junit.framework.Assert.assertEquals( + "Offset of HTML 3 not correct!", + php1.length() + + html1.length() + + php2.length() + + html2.length() + + php3.length(), + fScanner.getTokenOffset()); + } + public void testHTMLPartition() { String text = @@ -68,15 +399,15 @@ public class PHPPartitionScannerTest extends TestCase public void testPHPMultiLineCommentPartition() { - String text = " /** */ data\";"; String text2 = - "/** A comment with some data \n" + "/** A comment with some data \n" + " * @param test A test parameter \n" + " */"; String text3 = "\nfunction test($test)\n" + "{\n" - + " echo \"Test \";\n" + + " echo \"Test \";\n" + "}?>"; fDocument.set(text + text2 + text3); fScanner.setRange(fDocument, 0, fDocument.getLength());