@@ -25,8 +25,14 @@ public class TestPortableWebRequest {
25
25
26
26
// Whether the get operation succeeded.
27
27
private static bool getSucceeded = false;
28
+ // Whether the get operation with no query succeeded.
29
+ private static bool getNoQuerySucceeded = false;
30
+ // Whether the get operation with no headers succeeded.
31
+ private static bool getNoHeadersSucceeded = false;
28
32
// Whether the post operation succeeded.
29
33
private static bool postSucceeded = false;
34
+ // Whether the post operation with no headers succeeded.
35
+ private static bool postNoHeadersSucceeded = false;
30
36
31
37
/// <summary>
32
38
/// Register a method to call when the Version Handler has enabled all plugins in the project.
@@ -92,18 +98,68 @@ public class TestPortableWebRequest {
92
98
"echo-bish=Bosh\n" +
93
99
"echo-foo=Bar");
94
100
var result = System.Text.Encoding.Default.GetString(getStatus.Result);
95
- var expected = ("{\"data\": \"Hello from a test server\", " +
96
- "\"headers\": {\"Echo-Bish \": \"Bosh \", " +
97
- " \"Echo-Foo\": \"Bar\"}, " +
98
- "\"path\": \"/get?foo1=bar1&foo2=bar2\", " +
99
- "\"query\": {\"foo1\": [\"bar1\"], \"foo2\": [\"bar2\"]}}") ;
101
+ var expected =
102
+ " {\"data \": \"Hello from a test server \", " +
103
+ "\"headers\": {\"Echo-Bish\": \"Bosh\", \"Echo-Foo\": \"Bar\"}, " +
104
+ "\"path\": \"/get?foo1=bar1&foo2=bar2\", " +
105
+ "\"query\": {\"foo1\": [\"bar1\"], \"foo2\": [\"bar2\"]}}";
100
106
getSucceeded &= CheckEqual(result, expected);
101
107
UnityEngine.Debug.Log(String.Format("Get complete succeeded={0}\n{1}",
102
108
getSucceeded, result));
103
109
}
104
110
return complete;
105
111
}, synchronous: true);
106
112
113
+ UnityEngine.Debug.Log("Running get with no query test...");
114
+ var getStatusNoQuery = webRequest.Get("http://localhost:8000/get_with_no_query",
115
+ new Dictionary<string, string> {
116
+ { "Echo-Foo", "Bar" },
117
+ { "Echo-Bish", "Bosh" }
118
+ });
119
+ RunOnMainThread.PollOnUpdateUntilComplete(() => {
120
+ var complete = getStatusNoQuery.Complete;
121
+ if (complete) {
122
+ getNoQuerySucceeded = CheckEqual(getStatusNoQuery.Status, HttpStatusCode.OK);
123
+ getNoQuerySucceeded &= CheckEqual(
124
+ DictionaryToString("echo-", true, getStatusNoQuery.Headers),
125
+ "echo-bish=Bosh\n" +
126
+ "echo-foo=Bar");
127
+ var result = System.Text.Encoding.Default.GetString(getStatusNoQuery.Result);
128
+ var expected =
129
+ "{\"data\": \"Hello from a test server\", " +
130
+ "\"headers\": {\"Echo-Bish\": \"Bosh\", \"Echo-Foo\": \"Bar\"}, " +
131
+ "\"path\": \"/get_with_no_query\", " +
132
+ "\"query\": {}}";
133
+ getNoQuerySucceeded &= CheckEqual(result, expected);
134
+ UnityEngine.Debug.Log(String.Format("Get with no query succeeded={0}\n{1}",
135
+ getNoQuerySucceeded, result));
136
+ }
137
+ return complete;
138
+ }, synchronous: true);
139
+
140
+ UnityEngine.Debug.Log("Running get with no headers test...");
141
+ var getStatusNoHeaders = webRequest.Get("http://localhost:8000/get?foo1=bar1&foo2=bar2",
142
+ null);
143
+ RunOnMainThread.PollOnUpdateUntilComplete(() => {
144
+ var complete = getStatusNoHeaders.Complete;
145
+ if (complete) {
146
+ getNoHeadersSucceeded = CheckEqual(getStatusNoHeaders.Status,
147
+ HttpStatusCode.OK);
148
+ getNoHeadersSucceeded &= CheckEqual(DictionaryToString("echo-", true,
149
+ getStatusNoHeaders.Headers), "");
150
+ var result = System.Text.Encoding.Default.GetString(getStatusNoHeaders.Result);
151
+ var expected =
152
+ "{\"data\": \"Hello from a test server\", " +
153
+ "\"headers\": {}, " +
154
+ "\"path\": \"/get?foo1=bar1&foo2=bar2\", " +
155
+ "\"query\": {\"foo1\": [\"bar1\"], \"foo2\": [\"bar2\"]}}";
156
+ getNoHeadersSucceeded &= CheckEqual(result, expected);
157
+ UnityEngine.Debug.Log(String.Format("Get with no headers succeeded={0}\n{1}",
158
+ getNoHeadersSucceeded, result));
159
+ }
160
+ return complete;
161
+ }, synchronous: true);
162
+
107
163
UnityEngine.Debug.Log("Running post test...");
108
164
var postStatus = webRequest.Post("http://localhost:8000/post",
109
165
new Dictionary<string, string> {
@@ -117,27 +173,55 @@ public class TestPortableWebRequest {
117
173
RunOnMainThread.PollOnUpdateUntilComplete(() => {
118
174
var complete = postStatus.Complete;
119
175
if (complete) {
120
- postSucceeded = CheckEqual(getStatus .Status, HttpStatusCode.OK);
121
- postSucceeded &= CheckEqual(DictionaryToString("echo-", true,
122
- getStatus .Headers),
123
- "echo-bish=Bosh\n" +
124
- "echo-foo=Bar");
176
+ postSucceeded = CheckEqual(postStatus .Status, HttpStatusCode.OK);
177
+ postSucceeded &= CheckEqual(
178
+ DictionaryToString("echo-", true, postStatus .Headers),
179
+ "echo-bish=Bosh\n" +
180
+ "echo-foo=Bar");
125
181
var result = System.Text.Encoding.Default.GetString(postStatus.Result);
126
182
var expected =
127
183
"{\"data\": \"Hello from a test server\", " +
128
- "\"form\": {\"foo1\": [\"bar1\"], \"foo2\": " +
129
- "[\"bar2\"]}, " +
130
- "\"headers\": {\"Echo-Bish\": \"Bosh\", " +
131
- "\"Echo-Foo\": \"Bar\"}, \"path\": \"/post\", \"query\": {}}";
184
+ "\"form\": {\"foo1\": [\"bar1\"], \"foo2\": [\"bar2\"]}, " +
185
+ "\"headers\": {\"Echo-Bish\": \"Bosh\", \"Echo-Foo\": \"Bar\"}, " +
186
+ "\"path\": \"/post\", \"query\": {}}";
132
187
postSucceeded &= CheckEqual(result, expected);
133
188
UnityEngine.Debug.Log(String.Format("Post complete succeeded={0}\n{1}",
134
189
postSucceeded, result));
135
190
}
136
191
return complete;
137
192
}, synchronous: true);
138
193
194
+ UnityEngine.Debug.Log("Running post test with no headers...");
195
+ var postNoHeadersStatus = webRequest.Post(
196
+ "http://localhost:8000/post/with/no/headers",
197
+ null,
198
+ new[] {
199
+ new KeyValuePair<string, string>("foo1", "bar1"),
200
+ new KeyValuePair<string, string>("foo2", "bar2")
201
+ });
202
+ RunOnMainThread.PollOnUpdateUntilComplete(() => {
203
+ var complete = postNoHeadersStatus.Complete;
204
+ if (complete) {
205
+ postNoHeadersSucceeded = CheckEqual(postNoHeadersStatus.Status,
206
+ HttpStatusCode.OK);
207
+ postNoHeadersSucceeded &= CheckEqual(DictionaryToString(
208
+ "echo-", true, postNoHeadersStatus.Headers), "");
209
+ var result = System.Text.Encoding.Default.GetString(postNoHeadersStatus.Result);
210
+ var expected =
211
+ "{\"data\": \"Hello from a test server\", " +
212
+ "\"form\": {\"foo1\": [\"bar1\"], \"foo2\": [\"bar2\"]}, " +
213
+ "\"headers\": {}, " +
214
+ "\"path\": \"/post/with/no/headers\", \"query\": {}}";
215
+ postNoHeadersSucceeded &= CheckEqual(result, expected);
216
+ UnityEngine.Debug.Log(String.Format("Post with no headers succeeded={0}\n{1}",
217
+ postNoHeadersSucceeded, result));
218
+ }
219
+ return complete;
220
+ }, synchronous: true);
221
+
139
222
// Exit when the tests are complete.
140
- if (!(getSucceeded && postSucceeded)) {
223
+ if (!(getSucceeded && getNoQuerySucceeded && getNoHeadersSucceeded && postSucceeded
224
+ && postNoHeadersSucceeded)) {
141
225
UnityEngine.Debug.Log("Test failed");
142
226
UnityEditor.EditorApplication.Exit(1);
143
227
}
0 commit comments