1b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson/* 2b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Copyright (C) 2010 The Android Open Source Project 3b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * 4b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Licensed under the Apache License, Version 2.0 (the "License"); 5b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * you may not use this file except in compliance with the License. 6b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * You may obtain a copy of the License at 7b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * 8b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 9b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * 10b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Unless required by applicable law or agreed to in writing, software 11b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 12b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * See the License for the specific language governing permissions and 14b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * limitations under the License. 15b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 16b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 17b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilsonpackage tests.http; 18b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 19b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilsonimport java.util.List; 20b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 21b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson/** 22b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * An HTTP request that came into the mock web server. 23b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 24b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilsonpublic final class RecordedRequest { 25b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final String requestLine; 26b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final List<String> headers; 27b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final List<Integer> chunkSizes; 28b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final int bodySize; 29b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final byte[] body; 30b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson private final int sequenceNumber; 31b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 32b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson RecordedRequest(String requestLine, List<String> headers, List<Integer> chunkSizes, 33b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson int bodySize, byte[] body, int sequenceNumber) { 34b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.requestLine = requestLine; 35b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.headers = headers; 36b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.chunkSizes = chunkSizes; 37b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.bodySize = bodySize; 38b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.body = body; 39b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson this.sequenceNumber = sequenceNumber; 40b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 41b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 42b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public String getRequestLine() { 43b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return requestLine; 44b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 45b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 46b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public List<String> getHeaders() { 47b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return headers; 48b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 49b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 50b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson /** 51b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Returns the sizes of the chunks of this request's body, or an empty list 52b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * if the request's body was empty or unchunked. 53b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 54b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public List<Integer> getChunkSizes() { 55b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return chunkSizes; 56b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 57b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 58b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson /** 59b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Returns the total size of the body of this POST request (before 60b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * truncation). 61b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 62b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public int getBodySize() { 63b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return bodySize; 64b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 65b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 66b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson /** 67b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Returns the body of this POST request. This may be truncated. 68b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 69b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public byte[] getBody() { 70b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return body; 71b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 72b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 73b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson /** 74b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * Returns the index of this request on its HTTP connection. Since a single 75b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * HTTP connection may serve multiple requests, each request is assigned its 76b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson * own sequence number. 77b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson */ 78b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson public int getSequenceNumber() { 79b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return sequenceNumber; 80b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 81b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson 82b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson @Override public String toString() { 83b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson return requestLine; 84b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson } 85b1b5baac449d2725002338735f4db34bec8fd001Jesse Wilson} 86