/** * 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.ExampleWiki.ExamplePage; import com.bitplan.mediawiki.japi.api.Api; import com.bitplan.mediawiki.japi.api.Ii; import com.bitplan.mediawiki.japi.api.P; import com.bitplan.mediawiki.japi.api.Page; import com.bitplan.mediawiki.japi.api.Rev; /** * test some of the Mediawiki API calls at * http://www.mediawiki.org/wiki/API:Query * * @author wf * */ public class TestAPI_Query extends APITestbase { /** * test the Allpages API call http://www.mediawiki.org/wiki/API:Allpages * * @throws Exception */ @Test public void testGetAllPages() throws Exception { for (ExampleWiki lwiki : getWikis()) { Api api = getQueryResult(lwiki, "&list=allpages&apfrom=Kre&aplimit=3"); List<P> pageRefList = api.getQuery().getAllpages(); assertEquals(lwiki.wiki.getSiteurl(), 3, pageRefList.size()); } } @Test public void testGetPages() throws Exception { for (ExampleWiki lwiki : getWikis()) { List<ExamplePage> examplePages = lwiki.getExamplePages("testGetPages"); List<String> titles = lwiki.getTitleList(examplePages); List<Page> pages = lwiki.getMediaWikiJapi().getPages(titles); assertEquals(2, pages.size()); int index = 0; for (Page page : pages) { ExamplePage expected = examplePages.get(index++); if (debug) { LOGGER.log(Level.INFO, page.getTitle()); } assertEquals(lwiki.wiki.getSiteurl(), expected.getTitle(), page.getTitle()); // FIXME add to interface assertTrue( lwiki.wiki.getSiteurl() + "/" + lwiki.getMediaWikiJapi().getScriptPath() + ":" + expected.getTitle(), page.getRevisions().size() > 0); Rev rev = page.getRevisions().get(0); if (debug) { LOGGER.log(Level.INFO, rev.getValue()); } assertTrue(rev.getValue().contains(expected.getContentPart())); } } } @Test public void testImageInfo() throws Exception { /// choose the 1.23 targetWiki since it has proper imageinfo implementation ExampleWiki imageWiki = ewm.get("targetWiki"); //debug=true; if (debug) imageWiki.getMediaWikiJapi().setDebug(debug); Ii ii=imageWiki.getImageInfo("File:Index.png"); if (debug) { System.out.println(ii.getUrl()); // System.out.println(ii.getCanonicaltitle()); System.out.println(ii.getWidth()+"x"+ii.getHeight()); } assertEquals("http://mediawiki-japi.bitplan.com/mw1_23/images/a/ae/Index.png",ii.getUrl()); int expectedWidth=32; int expectedHeight=32; assertTrue(expectedHeight==ii.getHeight()); assertTrue(expectedWidth==ii.getWidth()); } }