1e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru/* 2e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Copyright (C) 2012 The Android Open Source Project 3e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * 4e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 5e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * you may not use this file except in compliance with the License. 6e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * You may obtain a copy of the License at 7e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * 8e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 9e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * 10e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 11e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 12e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * See the License for the specific language governing permissions and 14e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * limitations under the License. 15e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru */ 16e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 17e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Querupackage com.android.volley.mock; 18e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 19e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.NetworkResponse; 20e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.Request; 21e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport com.android.volley.Response; 22e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 23e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.util.HashMap; 24e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.util.Map; 25e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 26e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Querupublic class TestRequest { 27e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru private static final String TEST_URL = "http://foo.com"; 28e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 29e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Base Request class for testing allowing both the deprecated and new constructor. */ 30e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru private static class Base extends Request<byte[]> { 31e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @SuppressWarnings("deprecation") 32e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Base(String url, Response.ErrorListener listener) { 33e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(url, listener); 34e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 35e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 36e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Base(int method, String url, Response.ErrorListener listener) { 37e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(method, url, listener); 38e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 39e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 40e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @Override 41e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru protected Response<byte[]> parseNetworkResponse(NetworkResponse response) { 42e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru return null; 43e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 44e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 45e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @Override 46e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru protected void deliverResponse(byte[] response) { 47e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 48e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 49e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 50e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a GET request in the deprecated style. */ 51e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class DeprecatedGet extends Base { 52e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public DeprecatedGet() { 53e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(TEST_URL, null); 54e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 55e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 56e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 57e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a POST request in the deprecated style. */ 58e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class DeprecatedPost extends Base { 59e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru private Map<String, String> mPostParams; 60e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 61e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public DeprecatedPost() { 62e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(TEST_URL, null); 63e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mPostParams = new HashMap<String, String>(); 64e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mPostParams.put("requestpost", "foo"); 65e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 66e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 67e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @Override 68e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru protected Map<String, String> getPostParams() { 69e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru return mPostParams; 70e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 71e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 72e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 73e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a GET request in the new style. */ 74e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class Get extends Base { 75e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Get() { 76e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(Method.GET, TEST_URL, null); 77e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 78e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 79e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 80e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** 81e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Test example of a POST request in the new style. In the new style, it is possible 82e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * to have a POST with no body. 83e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru */ 84e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class Post extends Base { 85e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Post() { 86e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(Method.POST, TEST_URL, null); 87e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 88e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 89e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 90e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a POST request in the new style with a body. */ 91e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class PostWithBody extends Post { 92e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru private Map<String, String> mParams; 93e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 94e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public PostWithBody() { 95e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mParams = new HashMap<String, String>(); 96e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mParams.put("testKey", "testValue"); 97e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 98e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 99e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @Override 100e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Map<String, String> getParams() { 101e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru return mParams; 102e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 103e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 104e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 105e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** 106e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * Test example of a PUT request in the new style. In the new style, it is possible to have a 107e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru * PUT with no body. 108e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru */ 109e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class Put extends Base { 110e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Put() { 111e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(Method.PUT, TEST_URL, null); 112e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 113e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 114e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 115e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a PUT request in the new style with a body. */ 116e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class PutWithBody extends Put { 117e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru private Map<String, String> mParams = new HashMap<String, String>(); 118e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 119e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public PutWithBody() { 120e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mParams = new HashMap<String, String>(); 121e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru mParams.put("testKey", "testValue"); 122e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 123e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 124e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru @Override 125e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Map<String, String> getParams() { 126e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru return mParams; 127e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 128e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 129e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru 130e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru /** Test example of a DELETE request in the new style. */ 131e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public static class Delete extends Base { 132e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru public Delete() { 133e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru super(Method.DELETE, TEST_URL, null); 134e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 135e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru } 136364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 137364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu /** Test example of a HEAD request in the new style. */ 138364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public static class Head extends Base { 139364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public Head() { 140364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu super(Method.HEAD, TEST_URL, null); 141364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 142364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 143364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 144364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu /** Test example of a OPTIONS request in the new style. */ 145364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public static class Options extends Base { 146364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public Options() { 147364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu super(Method.OPTIONS, TEST_URL, null); 148364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 149364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 150364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 151364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu /** Test example of a TRACE request in the new style. */ 152364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public static class Trace extends Base { 153364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public Trace() { 154364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu super(Method.TRACE, TEST_URL, null); 155364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 156364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 157364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 158364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu /** Test example of a PATCH request in the new style. */ 159364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public static class Patch extends Base { 160364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public Patch() { 161364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu super(Method.PATCH, TEST_URL, null); 162364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 163364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 164364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 165364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu /** Test example of a PATCH request in the new style with a body. */ 166364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public static class PatchWithBody extends Patch { 167364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu private Map<String, String> mParams = new HashMap<String, String>(); 168364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 169364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public PatchWithBody() { 170364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu mParams = new HashMap<String, String>(); 171364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu mParams.put("testKey", "testValue"); 172364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 173364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu 174364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu @Override 175364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu public Map<String, String> getParams() { 176364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu return mParams; 177364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 178364614be46d20fba35c3b6bc1c2d43fe8e861e9cMaurice Chu } 179e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru} 180