package ar.rulosoft.mimanganu; import android.support.test.InstrumentationRegistry; import android.support.test.filters.LargeTest; import android.support.test.rule.ActivityTestRule; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.ArrayList; import ar.rulosoft.mimanganu.componentes.Chapter; import ar.rulosoft.mimanganu.componentes.Manga; import ar.rulosoft.mimanganu.servers.ServerBase; import static junit.framework.Assert.assertTrue; /** * Created by Raul on 09/01/2017. */ @RunWith(value = Parameterized.class) @LargeTest public class TestServers { @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class); @Parameterized.Parameter public ServerBase serverBase; private Manga manga; private Chapter chapter; @Parameterized.Parameters(name = "{index}: ServerTest - {0}") public static Object[] data() { return ServerBase.getServers(InstrumentationRegistry.getContext()); } @Test public void testServer() throws Exception { if (serverBase.getServerID() != ServerBase.FROMFOLDER) { if (serverBase.hasFilteredNavigation()) { testGetMangas(); } if (serverBase.hasList()) { testGetMangas2(); } testLoadManga(); if (serverBase.getServerID() == ServerBase.ESMANGAHERE) { Thread.sleep(5000);//to avoid the server kick } testInitAndGetImage(); } } public void testGetMangas() throws Exception { ArrayList<Manga> mangas; mangas = serverBase.getMangasFiltered(serverBase.getBasicFilter(), 1); if (!mangas.isEmpty()) { manga = mangas.get((mangas.size() - 1) / 2); } assertTrue(!mangas.isEmpty()); } public void testGetMangas2() throws Exception { ArrayList<Manga> mangas; mangas = serverBase.getMangas(); if (!mangas.isEmpty()) { if (serverBase.getServerID() == ServerBase.RAWSENMANGA) { manga = mangas.get(0); } else { manga = mangas.get((mangas.size() - 1) / 2); } } assertTrue(!mangas.isEmpty()); } public void testLoadManga() throws Exception { if (manga != null) { serverBase.loadMangaInformation(manga, true); serverBase.loadChapters(manga, true); assertTrue(!manga.getChapters().isEmpty()); chapter = manga.getChapter((manga.getChapters().size() - 1) / 2); } else { assertTrue(false); } } public void testInitAndGetImage() throws Exception { if (chapter != null) { serverBase.chapterInit(chapter); String image = serverBase.getImageFrom(chapter, 1); assertTrue(chapter.getPages() > 0); assertTrue(!image.isEmpty()); } else { assertTrue(false); } } }