13713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick/*
23713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Copyright (C) 2011 The Android Open Source Project
33713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
43713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Licensed under the Apache License, Version 2.0 (the "License");
53713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * you may not use this file except in compliance with the License.
63713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * You may obtain a copy of the License at
73713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
83713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *      http://www.apache.org/licenses/LICENSE-2.0
93713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick *
103713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * Unless required by applicable law or agreed to in writing, software
113713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * distributed under the License is distributed on an "AS IS" BASIS,
123713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * See the License for the specific language governing permissions and
143713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick * limitations under the License.
153713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick */
163713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
173713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpackage com.android.volley.toolbox;
183713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
193713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.NetworkResponse;
203713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Request;
213713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.Response;
223713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport com.android.volley.mock.MockHttpStack;
233713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
243713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.ProtocolVersion;
253713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.entity.StringEntity;
263713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport org.apache.http.message.BasicHttpResponse;
273713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
283713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport android.test.AndroidTestCase;
29cebf98c8edef6b3506258ddb68266febadd0db1aJeff Sharkeyimport android.test.suitebuilder.annotation.SmallTest;
303713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
313713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport java.util.HashMap;
323713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickimport java.util.Map;
333713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
34cebf98c8edef6b3506258ddb68266febadd0db1aJeff Sharkey@SmallTest
353713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrickpublic class BasicNetworkTest extends AndroidTestCase {
363713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
373713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    @Override
383713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    protected void setUp() throws Exception {
393713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        super.setUp();
403713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        mContext = getContext();
413713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
423713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
433713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    public void testHeadersAndPostParams() throws Exception {
443713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        MockHttpStack mockHttpStack = new MockHttpStack();
453713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        BasicHttpResponse fakeResponse = new BasicHttpResponse(new ProtocolVersion("HTTP", 1, 1),
463713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                200, "OK");
473713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        fakeResponse.setEntity(new StringEntity("foobar"));
483713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        mockHttpStack.setResponseToReturn(fakeResponse);
493713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack);
503713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        Request<String> request = new Request<String>("http://foo", null) {
513713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
523713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            @Override
533713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            protected Response<String> parseNetworkResponse(NetworkResponse response) {
543713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                return null;
553713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            }
563713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
573713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            @Override
583713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            protected void deliverResponse(String response) {
593713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            }
603713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
613713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            @Override
623713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            public Map<String, String> getHeaders() {
633713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                Map<String, String> result = new HashMap<String, String>();
643713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                result.put("requestheader", "foo");
653713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                return result;
663713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            }
673713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick
683713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            @Override
693713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            public Map<String, String> getPostParams() {
703713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                Map<String, String> result = new HashMap<String, String>();
713713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                result.put("requestpost", "foo");
723713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick                return result;
733713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick            }
743713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        };
753713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        httpNetwork.performRequest(request);
763713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        assertEquals("foo", mockHttpStack.getLastHeaders().get("requestheader"));
773713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick        assertEquals("requestpost=foo&", new String(mockHttpStack.getLastPostBody()));
783713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick    }
793713094c56d25e25df2a508dbee4aea869ffdea1Ficus Kirkpatrick}
80