diff --git a/pom.xml b/pom.xml
index 1741aca..96b27fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,6 +106,11 @@
log4j
1.2.17
+
+ org.assertj
+ assertj-core
+ 1.5.0
+
org.apache.commons
commons-lang3
diff --git a/webmagic-avalon/src/main/java/us/codecraft/webmagic/avalon/web/DashBoardController.java b/webmagic-avalon/src/main/java/us/codecraft/webmagic/avalon/web/DashBoardController.java
index 9c92428..3ef2a86 100644
--- a/webmagic-avalon/src/main/java/us/codecraft/webmagic/avalon/web/DashBoardController.java
+++ b/webmagic-avalon/src/main/java/us/codecraft/webmagic/avalon/web/DashBoardController.java
@@ -12,7 +12,7 @@ import org.springframework.web.servlet.ModelAndView;
public class DashBoardController {
@RequestMapping
- public ModelAndView create() {
+ public ModelAndView index() {
ModelAndView map = new ModelAndView("dashboard");
return map;
}
diff --git a/webmagic-core/pom.xml b/webmagic-core/pom.xml
index e64b865..6f7a02f 100644
--- a/webmagic-core/pom.xml
+++ b/webmagic-core/pom.xml
@@ -55,6 +55,11 @@
htmlcleaner
+
+ org.assertj
+ assertj-core
+
+
org.jsoup
jsoup
diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java
index d60ab5c..c036e34 100644
--- a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java
+++ b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java
@@ -156,7 +156,7 @@ public class HttpClientDownloader implements Downloader {
if (cycleTriedTimes >= site.getCycleRetryTimes()) {
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;
}
diff --git a/webmagic-core/src/test/java/us/codecraft/webmagic/downloader/HttpClientDownloaderTest.java b/webmagic-core/src/test/java/us/codecraft/webmagic/downloader/HttpClientDownloaderTest.java
index b371f3f..ac01926 100644
--- a/webmagic-core/src/test/java/us/codecraft/webmagic/downloader/HttpClientDownloaderTest.java
+++ b/webmagic-core/src/test/java/us/codecraft/webmagic/downloader/HttpClientDownloaderTest.java
@@ -1,17 +1,18 @@
package us.codecraft.webmagic.downloader;
-import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Request;
import us.codecraft.webmagic.Site;
+import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.selector.Html;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertTrue;
+
/**
- * Author: code4crafer@gmail.com
- * Date: 13-6-18
- * Time: 上午8:22
+ * @author code4crafer@gmail.com
*/
public class HttpClientDownloaderTest {
@@ -21,14 +22,26 @@ public class HttpClientDownloaderTest {
Site site = Site.me().setDomain("www.diandian.com").addCookie("t", "43ztv9srfszl99yxv2aumx3zr7el7ybb");
HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
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
public void testDownloader() {
HttpClientDownloader httpClientDownloader = new HttpClientDownloader();
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);
}
}