Commit 2768a1ca authored by yihua.huang's avatar yihua.huang

add test for cycleTriedTimes and fix cycleTriedTimes inc error #60

parent bbd0d7e6
...@@ -106,6 +106,11 @@ ...@@ -106,6 +106,11 @@
<artifactId>log4j</artifactId> <artifactId>log4j</artifactId>
<version>1.2.17</version> <version>1.2.17</version>
</dependency> </dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>1.5.0</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
......
...@@ -12,7 +12,7 @@ import org.springframework.web.servlet.ModelAndView; ...@@ -12,7 +12,7 @@ import org.springframework.web.servlet.ModelAndView;
public class DashBoardController { public class DashBoardController {
@RequestMapping @RequestMapping
public ModelAndView create() { public ModelAndView index() {
ModelAndView map = new ModelAndView("dashboard"); ModelAndView map = new ModelAndView("dashboard");
return map; return map;
} }
......
...@@ -55,6 +55,11 @@ ...@@ -55,6 +55,11 @@
<artifactId>htmlcleaner</artifactId> <artifactId>htmlcleaner</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.jsoup</groupId> <groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId> <artifactId>jsoup</artifactId>
......
...@@ -156,7 +156,7 @@ public class HttpClientDownloader implements Downloader { ...@@ -156,7 +156,7 @@ public class HttpClientDownloader implements Downloader {
if (cycleTriedTimes >= site.getCycleRetryTimes()) { if (cycleTriedTimes >= site.getCycleRetryTimes()) {
return null; return null;
} }
page.addTargetRequest(request.setPriority(0).putExtra(Request.CYCLE_TRIED_TIMES, 1)); page.addTargetRequest(request.setPriority(0).putExtra(Request.CYCLE_TRIED_TIMES, cycleTriedTimes));
} }
return page; return page;
} }
......
package us.codecraft.webmagic.downloader; package us.codecraft.webmagic.downloader;
import org.junit.Assert;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Request; import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.selector.Html; import us.codecraft.webmagic.selector.Html;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertTrue;
/** /**
* Author: code4crafer@gmail.com * @author code4crafer@gmail.com
* Date: 13-6-18
* Time: 上午8:22
*/ */
public class HttpClientDownloaderTest { public class HttpClientDownloaderTest {
...@@ -21,14 +22,26 @@ public class HttpClientDownloaderTest { ...@@ -21,14 +22,26 @@ public class HttpClientDownloaderTest {
Site site = Site.me().setDomain("www.diandian.com").addCookie("t", "43ztv9srfszl99yxv2aumx3zr7el7ybb"); Site site = Site.me().setDomain("www.diandian.com").addCookie("t", "43ztv9srfszl99yxv2aumx3zr7el7ybb");
HttpClientDownloader httpClientDownloader = new HttpClientDownloader(); HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
Page download = httpClientDownloader.download(new Request("http://www.diandian.com"), site.toTask()); Page download = httpClientDownloader.download(new Request("http://www.diandian.com"), site.toTask());
Assert.assertTrue(download.getHtml().toString().contains("flashsword30")); assertTrue(download.getHtml().toString().contains("flashsword30"));
} }
@Test @Test
public void testDownloader() { public void testDownloader() {
HttpClientDownloader httpClientDownloader = new HttpClientDownloader(); HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
Html html = httpClientDownloader.download("http://www.oschina.net"); Html html = httpClientDownloader.download("http://www.oschina.net");
Assert.assertTrue(!html.getText().isEmpty()); assertTrue(!html.getText().isEmpty());
}
@Test
public void testCycleTriedTimes() {
HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
Task task = Site.me().setDomain("localhost").setCycleRetryTimes(5).toTask();
Request request = new Request("http://localhost/404");
Page page = httpClientDownloader.download(request, task);
assertThat(page.getTargetRequests().size() > 0);
assertThat((Integer) page.getTargetRequests().get(0).getExtra(Request.CYCLE_TRIED_TIMES)).isEqualTo(1);
page = httpClientDownloader.download(page.getTargetRequests().get(0), task);
assertThat((Integer) page.getTargetRequests().get(0).getExtra(Request.CYCLE_TRIED_TIMES)).isEqualTo(2);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment