mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-14 05:11:19 -04:00
Use some class vars in broker to eliminate globals
This commit is contained in:
parent
bd5887a876
commit
7ce3c83a31
2 changed files with 17 additions and 18 deletions
|
@ -5,15 +5,14 @@ Browser snowflakes must register with the broker in order
|
||||||
to get assigned to clients.
|
to get assigned to clients.
|
||||||
###
|
###
|
||||||
|
|
||||||
STATUS_OK = 200
|
|
||||||
STATUS_GONE = 410
|
|
||||||
STATUS_GATEWAY_TIMEOUT = 504
|
|
||||||
|
|
||||||
MESSAGE_TIMEOUT = 'Timed out waiting for a client offer.'
|
|
||||||
MESSAGE_UNEXPECTED = 'Unexpected status.'
|
|
||||||
|
|
||||||
# Represents a broker running remotely.
|
# Represents a broker running remotely.
|
||||||
class Broker
|
class Broker
|
||||||
|
@STATUS_OK = 200
|
||||||
|
@STATUS_GONE = 410
|
||||||
|
@STATUS_GATEWAY_TIMEOUT = 504
|
||||||
|
|
||||||
|
@MESSAGE_TIMEOUT = 'Timed out waiting for a client offer.'
|
||||||
|
@MESSAGE_UNEXPECTED = 'Unexpected status.'
|
||||||
|
|
||||||
clients: 0
|
clients: 0
|
||||||
|
|
||||||
|
@ -39,15 +38,15 @@ class Broker
|
||||||
xhr.onreadystatechange = ->
|
xhr.onreadystatechange = ->
|
||||||
return if xhr.DONE != xhr.readyState
|
return if xhr.DONE != xhr.readyState
|
||||||
switch xhr.status
|
switch xhr.status
|
||||||
when STATUS_OK
|
when Broker.STATUS_OK
|
||||||
fulfill xhr.responseText # Should contain offer.
|
fulfill xhr.responseText # Should contain offer.
|
||||||
when STATUS_GATEWAY_TIMEOUT
|
when Broker.STATUS_GATEWAY_TIMEOUT
|
||||||
reject MESSAGE_TIMEOUT
|
reject Broker.MESSAGE_TIMEOUT
|
||||||
else
|
else
|
||||||
log 'Broker ERROR: Unexpected ' + xhr.status +
|
log 'Broker ERROR: Unexpected ' + xhr.status +
|
||||||
' - ' + xhr.statusText
|
' - ' + xhr.statusText
|
||||||
snowflake.ui.setStatus ' failure. Please refresh.'
|
snowflake.ui.setStatus ' failure. Please refresh.'
|
||||||
reject MESSAGE_UNEXPECTED
|
reject Broker.MESSAGE_UNEXPECTED
|
||||||
@_xhr = xhr # Used by spec to fake async Broker interaction
|
@_xhr = xhr # Used by spec to fake async Broker interaction
|
||||||
@_postRequest id, xhr, 'proxy', id
|
@_postRequest id, xhr, 'proxy', id
|
||||||
|
|
||||||
|
@ -60,10 +59,10 @@ class Broker
|
||||||
xhr.onreadystatechange = ->
|
xhr.onreadystatechange = ->
|
||||||
return if xhr.DONE != xhr.readyState
|
return if xhr.DONE != xhr.readyState
|
||||||
switch xhr.status
|
switch xhr.status
|
||||||
when STATUS_OK
|
when Broker.STATUS_OK
|
||||||
dbg 'Broker: Successfully replied with answer.'
|
dbg 'Broker: Successfully replied with answer.'
|
||||||
dbg xhr.responseText
|
dbg xhr.responseText
|
||||||
when STATUS_GONE
|
when Broker.STATUS_GONE
|
||||||
dbg 'Broker: No longer valid to reply with answer.'
|
dbg 'Broker: No longer valid to reply with answer.'
|
||||||
else
|
else
|
||||||
dbg 'Broker ERROR: Unexpected ' + xhr.status +
|
dbg 'Broker ERROR: Unexpected ' + xhr.status +
|
||||||
|
|
|
@ -25,7 +25,7 @@ describe 'Broker', ->
|
||||||
# fake successful request and response from broker.
|
# fake successful request and response from broker.
|
||||||
spyOn(b, '_postRequest').and.callFake ->
|
spyOn(b, '_postRequest').and.callFake ->
|
||||||
b._xhr.readyState = b._xhr.DONE
|
b._xhr.readyState = b._xhr.DONE
|
||||||
b._xhr.status = STATUS_OK
|
b._xhr.status = Broker.STATUS_OK
|
||||||
b._xhr.responseText = 'fake offer'
|
b._xhr.responseText = 'fake offer'
|
||||||
b._xhr.onreadystatechange()
|
b._xhr.onreadystatechange()
|
||||||
poll = b.getClientOffer()
|
poll = b.getClientOffer()
|
||||||
|
@ -35,7 +35,7 @@ describe 'Broker', ->
|
||||||
expect(desc).toEqual 'fake offer'
|
expect(desc).toEqual 'fake offer'
|
||||||
done()
|
done()
|
||||||
.catch ->
|
.catch ->
|
||||||
fail 'should not reject on STATUS_OK'
|
fail 'should not reject on Broker.STATUS_OK'
|
||||||
done()
|
done()
|
||||||
|
|
||||||
it 'rejects if the broker timed-out', (done) ->
|
it 'rejects if the broker timed-out', (done) ->
|
||||||
|
@ -43,7 +43,7 @@ describe 'Broker', ->
|
||||||
# fake timed-out request from broker
|
# fake timed-out request from broker
|
||||||
spyOn(b, '_postRequest').and.callFake ->
|
spyOn(b, '_postRequest').and.callFake ->
|
||||||
b._xhr.readyState = b._xhr.DONE
|
b._xhr.readyState = b._xhr.DONE
|
||||||
b._xhr.status = STATUS_GATEWAY_TIMEOUT
|
b._xhr.status = Broker.STATUS_GATEWAY_TIMEOUT
|
||||||
b._xhr.onreadystatechange()
|
b._xhr.onreadystatechange()
|
||||||
poll = b.getClientOffer()
|
poll = b.getClientOffer()
|
||||||
expect(poll).not.toBeNull()
|
expect(poll).not.toBeNull()
|
||||||
|
@ -52,7 +52,7 @@ describe 'Broker', ->
|
||||||
fail 'should not fulfill on GATEWAY_TIMEOUT'
|
fail 'should not fulfill on GATEWAY_TIMEOUT'
|
||||||
done()
|
done()
|
||||||
, (err) ->
|
, (err) ->
|
||||||
expect(err).toBe MESSAGE_TIMEOUT
|
expect(err).toBe Broker.MESSAGE_TIMEOUT
|
||||||
done()
|
done()
|
||||||
|
|
||||||
it 'rejects on any other status', (done) ->
|
it 'rejects on any other status', (done) ->
|
||||||
|
@ -69,7 +69,7 @@ describe 'Broker', ->
|
||||||
fail 'should not fulfill on non-OK status'
|
fail 'should not fulfill on non-OK status'
|
||||||
done()
|
done()
|
||||||
, (err) ->
|
, (err) ->
|
||||||
expect(err).toBe MESSAGE_UNEXPECTED
|
expect(err).toBe Broker.MESSAGE_UNEXPECTED
|
||||||
expect(b._xhr.status).toBe 1337
|
expect(b._xhr.status).toBe 1337
|
||||||
done()
|
done()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue