diff options
Diffstat (limited to 'org.eclipse.jface.text.tests')
-rw-r--r-- | org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/HTML2TextReaderTester.java | 119 |
1 files changed, 107 insertions, 12 deletions
diff --git a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/HTML2TextReaderTester.java b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/HTML2TextReaderTester.java index cdac1acad1b..981a1400889 100644 --- a/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/HTML2TextReaderTester.java +++ b/org.eclipse.jface.text.tests/src/org/eclipse/jface/text/tests/HTML2TextReaderTester.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2008 IBM Corporation and others. + * Copyright (c) 2006, 2011 IBM Corporation and others. * 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 @@ -13,13 +13,22 @@ package org.eclipse.jface.text.tests; import java.io.IOException; import java.io.Reader; import java.io.StringReader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; +import org.eclipse.swt.custom.StyleRange; + import org.eclipse.jface.internal.text.html.HTML2TextReader; +import org.eclipse.jface.text.TextPresentation; + public class HTML2TextReaderTester extends TestCase { @@ -35,63 +44,149 @@ public class HTML2TextReaderTester extends TestCase { return new TestSuite(HTML2TextReaderTester.class); } - private void verify(String input, String expectedOutput) throws IOException{ + private void verify(String input, String expectedOutput, int styleRangeCount) throws IOException { Reader reader= new StringReader(input); - HTML2TextReader htmlReader= new HTML2TextReader(reader, null); + TextPresentation textPresentation= new TextPresentation(); + HTML2TextReader htmlReader= new HTML2TextReader(reader, textPresentation); String result= htmlReader.getString(); if (DEBUG) - System.out.println("<"+ result +"/>"); + System.out.println("<" + result + "/>"); assertEquals(expectedOutput, result); + + Iterator styleRangeIterator= textPresentation.getAllStyleRangeIterator(); + List ranges= new ArrayList(); + while (styleRangeIterator.hasNext()) { + ranges.add(styleRangeIterator.next()); + } + + assertEquals("Incorrect number of style ranges", styleRangeCount, ranges.size()); + + Collections.sort(ranges, new Comparator() { + public int compare(Object o1, Object o2) { + StyleRange range1= (StyleRange)o1; + StyleRange range2= (StyleRange)o2; + return range1.start - range2.start; + } + }); + + for (int i= 0; i < ranges.size() - 1; i++) { + StyleRange range1= (StyleRange)ranges.get(i); + StyleRange range2= (StyleRange)ranges.get(i + 1); + + if (range1.start + range1.length > range2.start) { + assertTrue("StyleRanges overlap", false); + } + } + } public void test0() throws IOException{ String string= "<code>3<5<code>"; String expected= "3<5"; - verify(string, expected); + verify(string, expected, 0); } public void test1() throws IOException{ String string= "<dl><dt>@author</dt><dd>Foo Bar</dd></dl>"; String expected= LD+ "@author"+LD+"\tFoo Bar"+LD; - verify(string, expected); + verify(string, expected, 1); } public void test2() throws IOException{ String string= "<code>3>5<code>"; String expected= "3>5"; - verify(string, expected); + verify(string, expected, 0); } public void test3() throws IOException{ String string= "<a href= \"<p>this is only a string - not a tag<p>\">text</a>"; String expected= "text"; - verify(string, expected); + verify(string, expected, 0); } public void test4() throws IOException{ String string= "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1><h5>void p.Bb.fes()</h5><p><dl><dt>Parameters:</dt><dd><b>i</b> fred or <code>null</code></dd></dl></font></body></html>"; String expected= "void p.Bb.fes()"+ LD + LD + LD+ "Parameters:"+ LD + "\ti fred or null"+LD; - verify(string, expected); + verify(string, expected, 3); } public void test5() throws IOException{ String string= "<code>1<2<3<4</code>"; String expected= "1<2<3<4"; - verify(string, expected); + verify(string, expected, 0); } public void test6() throws IOException{ //test for bug 19070 String string= "<p>Something.<p>Something more."; String expected= LD + "Something." + LD + "Something more."; - verify(string, expected); + verify(string, expected, 0); } public void testComments() throws Exception { String string= "<!-- begin-user-doc -->no comment<!-- end-user-doc -->"; String expected= "no comment"; - verify(string,expected); + verify(string, expected, 0); + } + + public void testStyles1() throws IOException { + String string= "<b>Hello World</b>"; + String expected= "Hello World"; + verify(string, expected, 1); + } + + public void testStyles2() throws IOException { + String string= "<del>Hello World</del>"; + String expected= "Hello World"; + verify(string, expected, 1); + } + + public void testStyles3() throws IOException { + String string= "<b><del>Hello World</del></b>"; + String expected= "Hello World"; + verify(string, expected, 1); } + public void testStyles4() throws IOException { + String string= "<del><b>Hello World</b></del>"; + String expected= "Hello World"; + verify(string, expected, 1); + } + + public void testStyles5() throws IOException { + String string= "<b>This <del> is a </del> test</b>"; + String expected= "This is a test"; + verify(string, expected, 3); + } + + public void testStyles6() throws IOException { + String string= "<del>This <b> is a </b> test</del>"; + String expected= "This is a test"; + verify(string, expected, 3); + } + + public void testStyles7() throws IOException { + String string= "<b>This<del>is a</del>test</b>"; + String expected= "Thisis atest"; + verify(string, expected, 3); + } + + public void testStyles8() throws IOException { + String string= "<del>This<b>is a</b>test</del>"; + String expected= "Thisis atest"; + verify(string, expected, 3); + } + + public void testStyles9() throws IOException { + String string= "<b>This <del>is <b>yet</b> another</del> test</b>"; + String expected= "This is yet another test"; + verify(string, expected, 3); + } + + public void testStyles10() throws IOException { + String string= "<del>This <b>is <del>yet</del> another </b>test</del>"; + String expected= "This is yet another test"; + verify(string, expected, 3); + } } |