callback(text)
callback()
protocol.registerStringProtocol protocolName, doubleHandler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends error when callback is called with nothing', (done) ->
protocol.registerBufferProtocol protocolName, emptyHandler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
handler = (request, callback) ->
setImmediate -> callback(text)
protocol.registerStringProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends string as response', (done) ->
handler = (request, callback) -> callback(text)
protocol.registerStringProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends object as response', (done) ->
handler = (request, callback) -> callback(data: text, mimeType: 'text/html')
protocol.registerStringProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data, statux, request) ->
it 'fails when sending object other than string', (done) ->
handler = (request, callback) -> callback(new Date)
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends Buffer as response', (done) ->
handler = (request, callback) -> callback(buffer)
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends object as response', (done) ->
handler = (request, callback) -> callback(data: buffer, mimeType: 'text/html')
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data, statux, request) ->
it 'fails when sending string', (done) ->
handler = (request, callback) -> callback(text)
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends file path as response', (done) ->
handler = (request, callback) -> callback(filePath)
protocol.registerFileProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'sends object as response', (done) ->
handler = (request, callback) -> callback(path: filePath)
protocol.registerFileProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data, statux, request) ->
it 'can send normal file', (done) ->
handler = (request, callback) -> callback(normalPath)
protocol.registerFileProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
fakeFilePath = path.join __dirname, 'fixtures', 'asar', 'a.asar', 'not-exist'
handler = (request, callback) -> callback(fakeFilePath)
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'fails when sending unsupported content', (done) ->
handler = (request, callback) -> callback(new Date)
protocol.registerBufferProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
url = "http://127.0.0.1:#{port}"
handler = (request, callback) -> callback({url})
protocol.registerHttpProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'fails when sending invalid url', (done) ->
handler = (request, callback) -> callback({url: 'url'})
protocol.registerHttpProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
it 'fails when sending unsupported content', (done) ->
handler = (request, callback) -> callback(new Date)
protocol.registerHttpProtocol protocolName, handler, (error) ->
+ return done(error) if error
$.ajax
url: "#{protocolName}://fake-host"
success: (data) ->
callback(text)
callback()
protocol.interceptStringProtocol 'http', doubleHandler, (error) ->
+ return done(error) if error
$.ajax
url: 'http://fake-host'
success: (data) ->
it 'sends error when callback is called with nothing', (done) ->
protocol.interceptBufferProtocol 'http', emptyHandler, (error) ->
+ return done(error) if error
$.ajax
url: 'http://fake-host'
success: (data) ->
it 'can intercept http protocol', (done) ->
handler = (request, callback) -> callback(text)
protocol.interceptStringProtocol 'http', handler, (error) ->
+ return done(error) if error
$.ajax
url: 'http://fake-host'
success: (data) ->
handler = (request, callback) ->
callback({mimeType: 'application/json', data: '{"value": 1}'})
protocol.interceptStringProtocol 'http', handler, (error) ->
+ return done(error) if error
$.ajax
url: 'http://fake-host'
success: (data) ->
it 'can intercept http protocol', (done) ->
handler = (request, callback) -> callback(new Buffer(text))
protocol.interceptBufferProtocol 'http', handler, (error) ->
+ return done(error) if error
$.ajax
url: 'http://fake-host'
success: (data) ->