Package org.simpleframework.http.core

Source Code of org.simpleframework.http.core.TransferTest

package org.simpleframework.http.core;

import java.io.IOException;

import org.simpleframework.http.core.Conversation;
import org.simpleframework.http.core.Transfer;

import junit.framework.TestCase;

public class TransferTest extends TestCase {

   public void testTransferEncoding() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);
     
      // Start a HTTP/1.1 conversation
      request.setMajor(1);
      request.setMinor(1);
      transfer.start();
     
      assertEquals(response.getValue("Connection"), "keep-alive");
      assertEquals(response.getValue("Transfer-Encoding"), "chunked");
      assertEquals(response.getValue("Content-Length"), null);
      assertEquals(response.getContentLength(), -1);
      assertTrue(response.isCommitted());
     
      sender = new MockSender();
      monitor = new MockMonitor();
      request = new MockRequest();
      response = new MockResponse();
      support = new Conversation(request, response);
      transfer = new Transfer(support, sender, monitor);
     
      // Start a HTTP/1.0 conversation
      request.setMajor(1);
      request.setMinor(0);
      transfer.start();
     
      assertEquals(response.getValue("Connection"), "close");
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getValue("Content-Length"), null);
      assertEquals(response.getContentLength(), -1);
      assertTrue(response.isCommitted());
   }
  
   public void testContentLength() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);
     
      // Start a HTTP/1.1 conversation
      request.setMajor(1);
      request.setMinor(1);
      transfer.start(1024);
     
      assertEquals(response.getValue("Connection"), "keep-alive");
      assertEquals(response.getValue("Content-Length"), "1024");
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 1024);
      assertTrue(response.isCommitted());
     
      sender = new MockSender();
      monitor = new MockMonitor();
      request = new MockRequest();
      response = new MockResponse();
      support = new Conversation(request, response);
      transfer = new Transfer(support, sender, monitor);
     
      // Start a HTTP/1.0 conversation
      request.setMajor(1);
      request.setMinor(0);
      transfer.start(1024);
     
      assertEquals(response.getValue("Connection"), "close");
      assertEquals(response.getValue("Content-Length"), "1024");
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 1024);
      assertTrue(response.isCommitted());
     
      sender = new MockSender();
      monitor = new MockMonitor();
      request = new MockRequest();
      response = new MockResponse();
      support = new Conversation(request, response);
      transfer = new Transfer(support, sender, monitor);
     
      // Start a HTTP/1.0 conversation
      request.setMajor(1);
      request.setMinor(1);
      response.set("Content-Length", "2048");
      response.set("Connection", "close");
      response.set("Transfer-Encoding", "chunked");
      transfer.start(1024);     
     
      assertEquals(response.getValue("Connection"), "close");
      assertEquals(response.getValue("Content-Length"), "1024"); // should be 1024
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 1024);
      assertTrue(response.isCommitted());
   }
  
   public void  testHeadMethodWithConnectionClose() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);

      request.setMajor(1);
      request.setMinor(0);
      request.setMethod("HEAD");
      request.set("Connection", "keep-alive");    
      response.setContentLength(1024);
      response.set("Connection", "close");
     
      transfer.start();
     
      assertEquals(response.getValue("Connection"), "close");
      assertEquals(response.getValue("Content-Length"), "1024"); // should be 1024
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 1024);
   }
  
   public void  testHeadMethodWithSomethingWritten() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);

      request.setMajor(1);
      request.setMinor(1);
      request.setMethod("HEAD");
      request.set("Connection", "keep-alive");    
      response.setContentLength(1024);
     
      transfer.start(512);
     
      assertEquals(response.getValue("Connection"), "keep-alive");
      assertEquals(response.getValue("Content-Length"), "512"); // should be 512
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 512);
   }
  
   public void testHeadMethodWithNoContentLength() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);

      request.setMajor(1);
      request.setMinor(1);
      request.setMethod("HEAD");
      request.set("Connection", "keep-alive");    
     
      transfer.start();
     
      assertEquals(response.getValue("Connection"), "keep-alive");
      assertEquals(response.getValue("Content-Length"), null);
      assertEquals(response.getValue("Transfer-Encoding"), "chunked");
      assertEquals(response.getContentLength(), -1);
   }
  
   public void testHeadMethodWithNoContentLengthAndSomethingWritten() throws IOException {
      MockSender sender = new MockSender();
      MockMonitor monitor = new MockMonitor();
      MockRequest request = new MockRequest();
      MockResponse response = new MockResponse();
      Conversation support = new Conversation(request, response);
      Transfer transfer = new Transfer(support, sender, monitor);

      request.setMajor(1);
      request.setMinor(1);
      request.setMethod("HEAD");
      request.set("Connection", "keep-alive");    
     
      transfer.start(32);
     
      assertEquals(response.getValue("Connection"), "keep-alive");
      assertEquals(response.getValue("Content-Length"), "32");
      assertEquals(response.getValue("Transfer-Encoding"), null);
      assertEquals(response.getContentLength(), 32);
   }
}
TOP

Related Classes of org.simpleframework.http.core.TransferTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.