From 3525caedd170eea60678fb2b8bd03c26b6b92867 Mon Sep 17 00:00:00 2001 From: Erik Little Date: Tue, 14 Nov 2017 10:18:49 -0500 Subject: [PATCH] Implement #684 --- Source/SocketIO/Engine/SocketEngine.swift | 6 +++--- Source/SocketIO/Engine/SocketEngineSpec.swift | 2 +- Tests/TestSocketIO/SocketEngineTest.swift | 8 ++++++++ Tests/TestSocketIO/SocketSideEffectTest.swift | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index ead8671..a99e384 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -44,6 +44,9 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll } } + /// A dictionary of extra http headers that will be set during connection. + public var extraHeaders: [String: String]? + /// A queue of engine.io messages waiting for POSTing /// /// **You should not touch this directly** @@ -73,9 +76,6 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll /// An array of HTTPCookies that are sent during the connection. public private(set) var cookies: [HTTPCookie]? - /// A dictionary of extra http headers that will be set during connection. - public private(set) var extraHeaders: [String: String]? - /// When `true`, the engine is in the process of switching to WebSockets. /// /// **Do not touch this directly** diff --git a/Source/SocketIO/Engine/SocketEngineSpec.swift b/Source/SocketIO/Engine/SocketEngineSpec.swift index b6ebef1..e81c84f 100644 --- a/Source/SocketIO/Engine/SocketEngineSpec.swift +++ b/Source/SocketIO/Engine/SocketEngineSpec.swift @@ -52,7 +52,7 @@ import Starscream var engineQueue: DispatchQueue { get } /// A dictionary of extra http headers that will be set during connection. - var extraHeaders: [String: String]? { get } + var extraHeaders: [String: String]? { get set } /// When `true`, the engine is in the process of switching to WebSockets. var fastUpgrade: Bool { get } diff --git a/Tests/TestSocketIO/SocketEngineTest.swift b/Tests/TestSocketIO/SocketEngineTest.swift index 048100d..2ce7c7d 100644 --- a/Tests/TestSocketIO/SocketEngineTest.swift +++ b/Tests/TestSocketIO/SocketEngineTest.swift @@ -192,6 +192,14 @@ class SocketEngineTest: XCTestCase { XCTAssertTrue(manager.engine!.forceWebsockets) } + func testChangingEngineHeadersAfterInit() { + engine.extraHeaders = ["Hello": "World"] + + let req = engine.createRequestForPostWithPostWait() + + XCTAssertEqual("World", req.allHTTPHeaderFields?["Hello"]) + } + var manager: SocketManager! var socket: SocketIOClient! var engine: SocketEngine! diff --git a/Tests/TestSocketIO/SocketSideEffectTest.swift b/Tests/TestSocketIO/SocketSideEffectTest.swift index b5b2cd5..0c05a40 100644 --- a/Tests/TestSocketIO/SocketSideEffectTest.swift +++ b/Tests/TestSocketIO/SocketSideEffectTest.swift @@ -450,7 +450,7 @@ class TestEngine : SocketEngineSpec { var connectParams: [String: Any]? = nil private(set) var cookies: [HTTPCookie]? = nil private(set) var engineQueue = DispatchQueue.main - private(set) var extraHeaders: [String: String]? = nil + var extraHeaders: [String: String]? = nil private(set) var fastUpgrade = false private(set) var forcePolling = false private(set) var forceWebsockets = false