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 {