RequestTest.java revision 0ec9297ffdf80183d17ca61759ecc18eae9f8167
1d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru/* 2d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Copyright (C) 2011 The Android Open Source Project 3d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 4d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Licensed under the Apache License, Version 2.0 (the "License"); 5d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * you may not use this file except in compliance with the License. 6d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * You may obtain a copy of the License at 7d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 8d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * http://www.apache.org/licenses/LICENSE-2.0 9d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * 10d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * Unless required by applicable law or agreed to in writing, software 11d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * distributed under the License is distributed on an "AS IS" BASIS, 12d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * See the License for the specific language governing permissions and 14d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru * limitations under the License. 15d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru */ 16d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 17d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupackage com.android.volley; 18d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 19d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport android.test.suitebuilder.annotation.SmallTest; 20d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 21d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport com.android.volley.Request.Priority; 22d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 23d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queruimport junit.framework.TestCase; 24d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 25d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru@SmallTest 26d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Querupublic class RequestTest extends TestCase { 27d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 28d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru protected void setUp() throws Exception { 29d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru super.setUp(); 30d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 31d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 32d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public void testCompareTo() { 33d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru int sequence = 0; 34d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru TestRequest low = new TestRequest(Priority.LOW); 35d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru low.setSequence(sequence++); 36d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru TestRequest low2 = new TestRequest(Priority.LOW); 37d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru low2.setSequence(sequence++); 38d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru TestRequest high = new TestRequest(Priority.HIGH); 39d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru high.setSequence(sequence++); 40d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru TestRequest immediate = new TestRequest(Priority.IMMEDIATE); 41d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru immediate.setSequence(sequence++); 42d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 43d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru // "Low" should sort higher because it's really processing order. 44d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru assertTrue(low.compareTo(high) > 0); 45d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru assertTrue(high.compareTo(low) < 0); 46d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru assertTrue(low.compareTo(low2) < 0); 47d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru assertTrue(low.compareTo(immediate) > 0); 48d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru assertTrue(immediate.compareTo(high) < 0); 49d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 50d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 51d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru private class TestRequest extends Request<Object> { 52d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru private Priority mPriority = Priority.NORMAL; 53d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public TestRequest(Priority priority) { 5435d5cc345a7bc5c7391aeda3d3fce711c6376c7bFicus Kirkpatrick super(Request.Method.GET, "", null); 55d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru mPriority = priority; 56d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 57d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 58d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 59d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru public Priority getPriority() { 60d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return mPriority; 61d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 62d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 63d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 64d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru protected void deliverResponse(Object response) { 65d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 66d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru 67d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru @Override 68d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru protected Response<Object> parseNetworkResponse(NetworkResponse response) { 69d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru return null; 70d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 71d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru } 720ec9297ffdf80183d17ca61759ecc18eae9f8167kang 730ec9297ffdf80183d17ca61759ecc18eae9f8167kang public void testUrlParsing() { 740ec9297ffdf80183d17ca61759ecc18eae9f8167kang UrlParseRequest nullUrl = new UrlParseRequest(null); 750ec9297ffdf80183d17ca61759ecc18eae9f8167kang assertEquals(0, nullUrl.getTrafficStatsTag()); 760ec9297ffdf80183d17ca61759ecc18eae9f8167kang UrlParseRequest emptyUrl = new UrlParseRequest(""); 770ec9297ffdf80183d17ca61759ecc18eae9f8167kang assertEquals(0, emptyUrl.getTrafficStatsTag()); 780ec9297ffdf80183d17ca61759ecc18eae9f8167kang UrlParseRequest noHost = new UrlParseRequest("http:///"); 790ec9297ffdf80183d17ca61759ecc18eae9f8167kang assertEquals(0, noHost.getTrafficStatsTag()); 800ec9297ffdf80183d17ca61759ecc18eae9f8167kang UrlParseRequest badProtocol = new UrlParseRequest("bad:http://foo"); 810ec9297ffdf80183d17ca61759ecc18eae9f8167kang assertEquals(0, badProtocol.getTrafficStatsTag()); 820ec9297ffdf80183d17ca61759ecc18eae9f8167kang UrlParseRequest goodProtocol = new UrlParseRequest("http://foo"); 830ec9297ffdf80183d17ca61759ecc18eae9f8167kang assertFalse(0 == goodProtocol.getTrafficStatsTag()); 840ec9297ffdf80183d17ca61759ecc18eae9f8167kang } 850ec9297ffdf80183d17ca61759ecc18eae9f8167kang 860ec9297ffdf80183d17ca61759ecc18eae9f8167kang private class UrlParseRequest extends Request<Object> { 870ec9297ffdf80183d17ca61759ecc18eae9f8167kang public UrlParseRequest(String url) { 880ec9297ffdf80183d17ca61759ecc18eae9f8167kang super(Request.Method.GET, url, null); 890ec9297ffdf80183d17ca61759ecc18eae9f8167kang } 900ec9297ffdf80183d17ca61759ecc18eae9f8167kang 910ec9297ffdf80183d17ca61759ecc18eae9f8167kang @Override 920ec9297ffdf80183d17ca61759ecc18eae9f8167kang protected void deliverResponse(Object response) { 930ec9297ffdf80183d17ca61759ecc18eae9f8167kang } 940ec9297ffdf80183d17ca61759ecc18eae9f8167kang 950ec9297ffdf80183d17ca61759ecc18eae9f8167kang @Override 960ec9297ffdf80183d17ca61759ecc18eae9f8167kang protected Response<Object> parseNetworkResponse(NetworkResponse response) { 970ec9297ffdf80183d17ca61759ecc18eae9f8167kang return null; 980ec9297ffdf80183d17ca61759ecc18eae9f8167kang } 990ec9297ffdf80183d17ca61759ecc18eae9f8167kang } 100d56b88ae161057e848e7410d1b9ce5b0b8c427fcJean-Baptiste Queru} 101