re-add crawl-once and lock support at crawl time
diff --git a/src/com/google/enterprise/adaptor/DocumentHandler.java b/src/com/google/enterprise/adaptor/DocumentHandler.java
index 265165e..32d2cef 100644
--- a/src/com/google/enterprise/adaptor/DocumentHandler.java
+++ b/src/com/google/enterprise/adaptor/DocumentHandler.java
@@ -790,15 +790,9 @@
String link = "display_url=" + percentEncode("" + displayUrl);
ex.getResponseHeaders().add("X-Gsa-Doc-Controls", link);
}
- /*
- TODO(ejona): enable once sending crawl-once at crawl time is possible
- ex.getResponseHeaders().add("X-Gsa-Doc-Controls",
- "crawl-once=" + crawlOnce);
- */
- /*
- TODO(ejona): enable once sending lock at crawl time is possible
- ex.getResponseHeaders().add("X-Gsa-Doc-Controls", "lock=" + lock);
- */
+ ex.getResponseHeaders().add("X-Gsa-Doc-Controls",
+ "crawl_once=" + crawlOnce);
+ ex.getResponseHeaders().add("X-Gsa-Doc-Controls", "lock=" + lock);
} else {
acl = checkAndWorkaroundGsa70Acl(acl);
ex.getResponseHeaders().add("X-Gsa-External-Metadata",
diff --git a/test/com/google/enterprise/adaptor/DocumentHandlerTest.java b/test/com/google/enterprise/adaptor/DocumentHandlerTest.java
index ad8c464..0b8c5e0 100644
--- a/test/com/google/enterprise/adaptor/DocumentHandlerTest.java
+++ b/test/com/google/enterprise/adaptor/DocumentHandlerTest.java
@@ -1088,10 +1088,8 @@
.contains("display_url=http%3A%2F%2Fwww.google.com"));
}
-/*
- TODO: enable once sending lock is possible at crawl time
@Test
- public void testLockHeaderSent() throws Exception {
+ public void testLockHeaderTrueSent() throws Exception {
MockAdaptor adaptor = new MockAdaptor() {
@Override
public void getDocContent(Request request, Response response)
@@ -1111,12 +1109,31 @@
assertTrue(ex.getResponseHeaders().get("X-Gsa-Doc-Controls")
.contains("lock=true"));
}
-*/
-/*
- TODO: enable once sending crawl-once is possible at crawl time
@Test
- public void testCrawlOnceHeaderSent() throws Exception {
+ public void testLockHeaderFalseSent() throws Exception {
+ MockAdaptor adaptor = new MockAdaptor() {
+ @Override
+ public void getDocContent(Request request, Response response)
+ throws IOException {
+ response.setLock(false);
+ response.getOutputStream();
+ }
+ };
+ String remoteIp = ex.getRemoteAddress().getAddress().getHostAddress();
+ DocumentHandler handler = createHandlerBuilder()
+ .setAdaptor(adaptor)
+ .setFullAccessHosts(new String[] {remoteIp, "someUnknownHost!@#$"})
+ .setSendDocControls(true)
+ .build();
+ handler.handle(ex);
+ assertEquals(200, ex.getResponseCode());
+ assertTrue(ex.getResponseHeaders().get("X-Gsa-Doc-Controls")
+ .contains("lock=false"));
+ }
+
+ @Test
+ public void testCrawlOnceHeaderTrueSent() throws Exception {
MockAdaptor adaptor = new MockAdaptor() {
@Override
public void getDocContent(Request request, Response response)
@@ -1134,9 +1151,30 @@
handler.handle(ex);
assertEquals(200, ex.getResponseCode());
assertTrue(ex.getResponseHeaders().get("X-Gsa-Doc-Controls")
- .contains("crawl-once=true"));
+ .contains("crawl_once=true"));
}
-*/
+
+ @Test
+ public void testCrawlOnceHeaderFalseSent() throws Exception {
+ MockAdaptor adaptor = new MockAdaptor() {
+ @Override
+ public void getDocContent(Request request, Response response)
+ throws IOException {
+ response.setCrawlOnce(false);
+ response.getOutputStream();
+ }
+ };
+ String remoteIp = ex.getRemoteAddress().getAddress().getHostAddress();
+ DocumentHandler handler = createHandlerBuilder()
+ .setAdaptor(adaptor)
+ .setFullAccessHosts(new String[] {remoteIp, "someUnknownHost!@#$"})
+ .setSendDocControls(true)
+ .build();
+ handler.handle(ex);
+ assertEquals(200, ex.getResponseCode());
+ assertTrue(ex.getResponseHeaders().get("X-Gsa-Doc-Controls")
+ .contains("crawl_once=false"));
+ }
@Test
public void testAclMeansServeSecurity() throws Exception {