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 java.io.ByteArrayOutputStream;
20e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.io.IOException;
21e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.io.OutputStream;
22e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.net.HttpURLConnection;
23e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.net.MalformedURLException;
24e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queruimport java.net.URL;
25e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
26e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Querupublic class MockHttpURLConnection extends HttpURLConnection {
27e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
28e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    private boolean mDoOutput;
29e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    private String mRequestMethod;
30e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    private OutputStream mOutputStream;
31e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
32e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public MockHttpURLConnection() throws MalformedURLException {
33e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        super(new URL("http://foo.com"));
34e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        mDoOutput = false;
35e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        mRequestMethod = "GET";
36e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        mOutputStream = new ByteArrayOutputStream();
37e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
38e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
39e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
40e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public void setDoOutput(boolean flag) {
41e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        mDoOutput = flag;
42e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
43e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
44e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
45e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public boolean getDoOutput() {
46e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        return mDoOutput;
47e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
48e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
49e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
50e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public void setRequestMethod(String method) {
51e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        mRequestMethod = method;
52e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
53e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
54e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
55e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public String getRequestMethod() {
56e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        return mRequestMethod;
57e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
58e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
59e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
60e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public OutputStream getOutputStream() {
61e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        return mOutputStream;
62e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
63e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
64e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
65e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public void disconnect() {
66e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
67e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
68e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
69e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public boolean usingProxy() {
70e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru        return false;
71e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
72e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
73e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    @Override
74e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    public void connect() throws IOException {
75e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru    }
76e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru
77e48f4430bfd3030350aa5ba827b449c37e2fadc9Jean-Baptiste Queru}
78