Skip to content

Commit c0ac1b9

Browse files
committed
Refactored the JSON encoder/parser to a single class.
1 parent c7a6973 commit c0ac1b9

8 files changed

Lines changed: 1033 additions & 900 deletions

File tree

Selenium.Tests/TS_Serialiser.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public void TC_ShouldDeserializePng_Pad0() {
115115
@"""iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAMAAACuX0YVAAAABlBMVEUAAAD/
116116
//+l2Z/dAAAADElEQVQI12NgZGAAAAAHAAI4McYTAAAAAElFTkSuQmCC """;
117117
byte[] base64Bytes = System.Text.Encoding.ASCII.GetBytes(base64);
118-
var output = (Image)JsonReader.Deserialize(base64Bytes, base64Bytes.Length);
118+
var output = (Image)JSON.Parse(base64Bytes, base64Bytes.Length);
119119
A.AreEqual(1, output.Width);
120120
A.AreEqual(2, output.Height);
121121
A.AreEqual("2FC51328", output.CRC);
@@ -128,7 +128,7 @@ public void TC_ShouldDeserializePng_Pad1() {
128128
@"""iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAMAAACqqpYoAAAABlBMVEUAAAD/
129129
//+l2Z/dAAAADklEQVR4AWNgZGRkABIAAB0ABroxs5IAAAAASUVORK5CYII=""";
130130
byte[] base64Bytes = System.Text.Encoding.ASCII.GetBytes(base64);
131-
var output = (Image)JsonReader.Deserialize(base64Bytes, base64Bytes.Length);
131+
var output = (Image)JSON.Parse(base64Bytes, base64Bytes.Length);
132132
A.AreEqual(3, output.Width);
133133
A.AreEqual(2, output.Height);
134134
A.AreEqual("909C5733", output.CRC);
@@ -142,7 +142,7 @@ public void TC_ShouldDeserializePng_Pad2() {
142142
AAD///9nGWQeAAAAE0lEQVR4AWNgYmICYkYGBjBmAgAArgATGVgZTQAAAABJ
143143
RU5ErkJggg== """;
144144
byte[] base64Bytes = System.Text.Encoding.ASCII.GetBytes(base64);
145-
var output = (Image)JsonReader.Deserialize(base64Bytes, base64Bytes.Length);
145+
var output = (Image)JSON.Parse(base64Bytes, base64Bytes.Length);
146146
A.AreEqual(3, output.Width);
147147
A.AreEqual(4, output.Height);
148148
A.AreEqual("7286E2FE", output.CRC);
@@ -187,8 +187,8 @@ public void TC_ShouldSerializeDeepStructure() {
187187
}
188188

189189
private static object SerializeAndDeserialize(object input) {
190-
var writer = JsonWriter.Serialize(input);
191-
object result = JsonReader.Deserialize(writer.GetBuffer(), writer.Length);
190+
var writer = JSON.Serialize(input);
191+
object result = JSON.Parse(writer.GetBuffer(), (int)writer.Length);
192192
return result;
193193
}
194194

Selenium/Core/RemoteServer.cs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class RemoteServer {
1717

1818
private RequestMethod _request_method;
1919
private string _request_uri;
20-
private JsonWriter _request_data;
20+
private JSON _request_data;
2121
private NetworkCredential _credentials = null;
2222

2323

@@ -84,10 +84,10 @@ public Dictionary Send(RequestMethod method, string relativeUri) {
8484
/// <returns></returns>
8585
public Dictionary Send(RequestMethod method, string relativeUri, Dictionary param) {
8686
//Serialise the parameters
87-
JsonWriter data = null;
87+
JSON data = null;
8888
if (method == RequestMethod.POST) {
8989
if (param != null) {
90-
data = JsonWriter.Serialize(param);
90+
data = JSON.Serialize(param);
9191
}
9292
}
9393

@@ -107,12 +107,12 @@ public Dictionary SendAgain() {
107107
return SendRequest(_request_method, _request_uri, _request_data);
108108
}
109109

110-
protected Dictionary SendRequest(RequestMethod method, string uri, JsonWriter data) {
110+
protected Dictionary SendRequest(RequestMethod method, string uri, JSON data) {
111111
_request_method = method;
112112
_request_uri = uri;
113113
_request_data = data;
114114

115-
HttpWebRequest request = CreateHttpWebRequest(method, uri, data, _response_timeout);
115+
HttpWebRequest request = CreateHttpWebRequest(method, uri, data);
116116
SysWaiter.OnInterrupt = request.Abort;
117117
HttpWebResponse response = null;
118118
Dictionary responseDict = null;
@@ -164,12 +164,10 @@ protected Dictionary SendRequest(RequestMethod method, string uri, JsonWriter da
164164
return responseDict;
165165
}
166166

167-
private HttpWebRequest CreateHttpWebRequest(RequestMethod method
168-
, string url, JsonWriter data, int timeout) {
167+
private HttpWebRequest CreateHttpWebRequest(RequestMethod method, string url, JSON data) {
169168

170169
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.CreateDefault(new Uri(url));
171170
request.Method = FormatRequestMethod(method);
172-
request.Timeout = timeout;
173171
request.Accept = HEADER_ACCEPT;
174172
request.KeepAlive = true;
175173

@@ -182,7 +180,7 @@ private HttpWebRequest CreateHttpWebRequest(RequestMethod method
182180
request.ContentType = HEADER_CONTENT_TYPE;
183181
request.ContentLength = data.Length;
184182
using (Stream rstream = request.GetRequestStream()) {
185-
data.CopyTo(rstream);
183+
rstream.Write(data.GetBuffer(), 0, (int)data.Length);
186184
}
187185
} else {
188186
request.ContentLength = 0;
@@ -195,7 +193,7 @@ private static Dictionary GetHttpWebResponseContent(HttpWebResponse response) {
195193
return null;
196194
using (Stream stream = response.GetResponseStream()) {
197195
if (IsJsonResponse(response)) {
198-
Dictionary dict = (Dictionary)JsonReader.Deserialize(stream);
196+
Dictionary dict = (Dictionary)JSON.Parse(stream);
199197
return dict;
200198
} else {
201199
string bodyText = new StreamReader(stream).ReadToEnd();

Selenium/Selenium.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,8 @@
148148
<Compile Include="Application.cs" />
149149
<Compile Include="Serializer\IJsonBinary.cs" />
150150
<Compile Include="Serializer\IJsonObject.cs" />
151+
<Compile Include="Serializer\JSON.cs" />
151152
<Compile Include="Serializer\JsonException.cs" />
152-
<Compile Include="Serializer\JsonReader.cs" />
153-
<Compile Include="Serializer\JsonWriter.cs" />
154153
<Compile Include="NamespaceDoc.cs" />
155154
<Compile Include="Pdf\PdfFont.cs" />
156155
<Compile Include="Pdf\PdfPage.cs" />

0 commit comments

Comments
 (0)