package wikokit.base.wikipedia.text;
import wikokit.base.wikipedia.text.WikiParser;
import wikokit.base.wikipedia.text.ImageParser;
import wikokit.base.wikipedia.language.LanguageType;
import junit.framework.TestCase;
public class ImageParserTest extends TestCase {
public ImageParserTest(String testName) {
super(testName);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
/*
*
* [[Dosiero:AM156fol_p1.jpg|thumb|right|250px|Unua pagxo de la sagao de Hrafnkell, en la [[manuskripto]] ÁM. 156 ([[17-a jarcento]]).]]
*/
// [[Image:Asimov.jpg|thumb|180px|right|[[Isaac Asimov]] with his [[typewriter]].]]
// -> [[Isaac Asimov]] with his [[typewriter]]. -> Isaac Asimov with his typewriter.
public void testParseImageDescription_en() {
System.out.println("parseImageDescription_en");
StringBuffer wiki_text, expResult, expResult2, result, result2;
// image without desc
wiki_text = new StringBuffer("[[Image:Asimov.jpg]]");
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertEquals(0, result.toString().length());
// image with empty desc
wiki_text = new StringBuffer("[[Image:Asimov.jpg|thumb|180px|right|]]");
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertEquals(0, result.toString().length());
// two images without desc
wiki_text = new StringBuffer("[[Image:Asimov.jpg|thumb|180px|right|]] and [[Image:Asimov.jpg]]");
expResult = new StringBuffer( " and " );
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
// two images
wiki_text = new StringBuffer("[[Image:Asimov.jpg|thumb|180px|right|text1]] and [[Image:Asimov.jpg|thumb]]");
expResult = new StringBuffer( "text1 and thumb" );
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
// description with double bracket
wiki_text = new StringBuffer("[[Image:Asimov.jpg|[[one]] 12 [[two|second]] 3]]");
expResult = new StringBuffer( "[[one]] 12 [[two|second]] 3" );
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
// description with pipeline
wiki_text = new StringBuffer("[[Image:Asimov.jpg|[[Worker|Robot]]]]");
expResult = new StringBuffer( "[[Worker|Robot]]" );
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
// image with description
wiki_text = new StringBuffer("[[Image:Asimov.jpg|thumb|180px|right|[[Isaac Asimov]] with his [[typewriter]].]]");
expResult = new StringBuffer("[[Isaac Asimov]] with his [[typewriter]].");
expResult2= new StringBuffer("Isaac Asimov with his typewriter.");
result = ImageParser.parseImageDescription(wiki_text, LanguageType.en);
result2 = WikiParser.parseDoubleBrackets(result, LanguageType.en, false);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
assertTrue(expResult2.toString().equalsIgnoreCase( result2.toString() ) );
}
// [[Изображение:Через-тернии-к-звёздам 2.jpg|thumb|«[[Через]] [[терний|тернии]] к звёздам»]]
// -> «[[Через]] [[терний|тернии]] к звёздам» -> «Через тернии к звёздам»
public void testParseImageDescription_ru() {
System.out.println("parseImageDescription_ru");
StringBuffer wiki_text, expResult, expResult2, result, result2;
wiki_text = new StringBuffer("[[Изображение:Через-тернии-к-звёздам 2.jpg|thumb|«[[Через]] [[терний|тернии]] к звёздам»]]");
expResult = new StringBuffer("«[[Через]] [[терний|тернии]] к звёздам»");
expResult2= new StringBuffer("«Через тернии к звёздам»");
result = ImageParser.parseImageDescription(wiki_text, LanguageType.ru);
result2 = WikiParser.parseDoubleBrackets(result, LanguageType.ru, false);
assertTrue(expResult.toString().equalsIgnoreCase( result.toString() ) );
assertTrue(expResult2.toString().equalsIgnoreCase( result2.toString() ) );
}
}