mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 14:11:23 -04:00
Fix jasmine spec for broker async request
This commit is contained in:
parent
548c100160
commit
bb9eb721e2
2 changed files with 50 additions and 33 deletions
|
@ -3,36 +3,48 @@ jasmine tests for Snowflake broker
|
|||
###
|
||||
|
||||
# fake xhr
|
||||
# class XMLHttpRequest
|
||||
class XMLHttpRequest
|
||||
constructor: ->
|
||||
@onreadystatechange = null
|
||||
open: ->
|
||||
setRequestHeader: ->
|
||||
send: ->
|
||||
onreadystatechange: ->
|
||||
DONE: 1
|
||||
|
||||
describe 'Broker', ->
|
||||
|
||||
it 'can be created', ->
|
||||
b = new Broker('fake')
|
||||
b = new Broker 'fake'
|
||||
expect(b.url).toEqual 'https://fake/'
|
||||
expect(b.id).not.toBeNull()
|
||||
|
||||
it 'polls for client offer', (done) ->
|
||||
b = new Broker('fake')
|
||||
# TODO: fix this
|
||||
it 'polls and promises a client offer', (done) ->
|
||||
b = new Broker 'fake'
|
||||
# fake successful request
|
||||
spyOn(b, 'sendRequest').and.callFake ->
|
||||
b.request.readyState = b.request.DONE
|
||||
b.request.status = STATUS_OK
|
||||
b.request.responseText = 'test'
|
||||
b.request.onreadystatechange()
|
||||
poll = b.getClientOffer()
|
||||
spyOn(b.request, 'open')
|
||||
spyOn(b.request, 'send').and.callFake ->
|
||||
b.onreadystatechange()
|
||||
poll.then = ->
|
||||
done()
|
||||
expect(poll).not.toBeNull()
|
||||
# expect(b.request.open).toHaveBeenCalled()
|
||||
# expect(b.request.send).toHaveBeenCalled()
|
||||
# fake successful poll
|
||||
b.request.readyState = XMLHttpRequest.DONE
|
||||
b.request.status = STATUS_OK
|
||||
b.request.responseText = 'test'
|
||||
done()
|
||||
poll.then (desc) =>
|
||||
expect(desc).toEqual 'test'
|
||||
done()
|
||||
|
||||
it 'requests correctly', ->
|
||||
b = new Broker 'fake'
|
||||
b.request = new XMLHttpRequest()
|
||||
spyOn(b.request, 'open')
|
||||
spyOn(b.request, 'setRequestHeader')
|
||||
spyOn(b.request, 'send')
|
||||
b.sendRequest()
|
||||
expect(b.request.open).toHaveBeenCalled()
|
||||
expect(b.request.setRequestHeader).toHaveBeenCalled()
|
||||
expect(b.request.send).toHaveBeenCalled()
|
||||
|
||||
it 'responds to the broker with answer', ->
|
||||
# TODO
|
||||
# TODO: fix
|
||||
b = new Broker 'fake'
|
||||
b.sendAnswer 'foo'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue