/**
* Copyright (C) 2015 BITPlan GmbH
*
* Pater-Delp-Str. 1
* D-47877 Willich-Schiefbahn
*
* http://www.bitplan.com
*
*/
package com.bitplan.mediawiki.japi;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.List;
import java.util.logging.Level;
import org.junit.Test;
import com.bitplan.mediawiki.japi.api.Bl;
import com.bitplan.mediawiki.japi.api.Ii;
import com.bitplan.mediawiki.japi.api.Im;
import com.bitplan.mediawiki.japi.api.Img;
import com.bitplan.mediawiki.japi.api.Iu;
import com.bitplan.mediawiki.japi.api.P;
/**
* test https://www.mediawiki.org/wiki/API:Allpages
*
* @author wf
*
*/
public class TestAPI_Allpages extends APITestbase {
@Test
public void testAllpages() throws Exception {
ExampleWiki lWiki = ewm.get("mediawiki-japi-test1_24");
lWiki.login();
String apfrom = null;
int aplimit = 25000;
List<P> pages = lWiki.wiki.getAllPages(apfrom, aplimit);
if (debug) {
LOGGER.log(Level.INFO, "page #=" + pages.size());
}
assertTrue(pages.size() >= 7);
}
@Test
public void testAllImages() throws Exception {
ExampleWiki lWiki = ewm.get("mediawiki-japi-test1_24");
lWiki.login();
String aistart = "20080823180546";
String aiend = "20990101235959";
int ailimit = 500;
// lWiki.wiki.setDebug(true);
List<Img> images = lWiki.wiki.getAllImagesByTimeStamp(aistart, aiend,
ailimit);
if (debug)
System.out.println(images.size());
assertEquals(2, images.size());
String[] expected = {
"Wuthering_Heights_NT.pdf" , "Radcliffe_Chastenay_-_Les_Mysteres_d_Udolphe_frontispice_T6.jpg",
};
for (int i = 0; i < expected.length; i++) {
assertEquals(expected[i], images.get(i).getName());
}
// lWiki.wiki.setDebug(true);
String[] expectedUsage = { "PDF Example","Picture Example" };
int i = 0;
for (Img img : images) {
List<Iu> ius = lWiki.wiki.getImageUsage("File:" + img.getName(), "", 50);
assertTrue(ius.size() > 1);
assertEquals(expectedUsage[i], ius.get(0).getTitle());
i++;
}
}
@Test
public void testBacklink() throws Exception {
ExampleWiki lWiki = ewm.get("mediawiki-japi-test1_24");
lWiki.login();
// lWiki.wiki.setDebug(true);
String pageTitle = "Picture Example";
List<Bl> bls = lWiki.wiki.getBacklinks(pageTitle, "", 50);
assertTrue(bls.size() > 0);
assertEquals("PDF Example", bls.get(0).getTitle());
}
@Test
public void testImagesOnPage() throws Exception {
ExampleWiki lWiki = ewm.get("mediawiki-japi-test1_24");
lWiki.login();
// lWiki.wiki.setDebug(true);
String pageTitles[] = { "Picture Example", "PDF Example", "Image Example" };
String[][] expected = {
{ "File:Radcliffe Chastenay - Les Mysteres d Udolphe frontispice T6.jpg" },
{ "File:Wuthering Heights NT.pdf" },
{
"File:Radcliffe Chastenay - Les Mysteres d Udolphe frontispice T6.jpg",
"File:Wuthering Heights NT.pdf" } };
int i = 0;
for (String pageTitle : pageTitles) {
List<Im> images = lWiki.wiki.getImagesOnPage(pageTitle, 100);
assertEquals(expected[i].length, images.size());
for (int j = 0; j < images.size(); j++) {
assertEquals(expected[i][j], images.get(j).getTitle());
}
i++;
}
}
@Test
public void testImagesInfosForPage() throws Exception {
ExampleWiki lWiki = ewm.get("mediawiki-japi-test1_24");
lWiki.login();
// lWiki.wiki.setDebug(true);
String[][] expected = { { "images/0/0c/" }, { "images/a/a0" },
{ "images/0/0c/", "images/a/a0" } };
String pageTitles[] = { "Picture Example", "PDF Example", "Image Example" };
int i = 0;
for (String pageTitle : pageTitles) {
List<Ii> imageInfos = lWiki.wiki.getImageInfosForPage(pageTitle, 100);
assertEquals(expected[i].length, imageInfos.size());
for (int j = 0; j < imageInfos.size(); j++) {
Ii imageInfo=imageInfos.get(j);
assertTrue(imageInfo.getUrl(), imageInfo.getUrl()
.contains(expected[i][j]));
System.out.println(imageInfo.getCanonicaltitle());
}
i++;
}
}
}