SockJS
view release on metacpan or search on metacpan
t-vendor/html/src/tests.coffee view on Meta::CPAN
protocols = ['websocket',
'xdr-streaming',
'xhr-streaming',
'iframe-eventsource',
'iframe-htmlfile',
'xdr-polling',
'xhr-polling',
'iframe-xhr-polling',
'jsonp-polling']
newSockJS = (path, protocol) ->
url = if /^http/.test(path) then path else client_opts.url + path
options = jQuery.extend({}, client_opts.sockjs_opts)
if protocol
options.protocols_whitelist = [protocol]
return new SockJS(url, null, options)
echo_factory_factory = (protocol, messages) ->
return ->
expect(2 + messages.length)
a = messages.slice(0)
r = newSockJS('/echo', protocol)
r.onopen = (e) ->
#log('onopen ' + e)
ok(true)
r.send(a[0])
r.onmessage = (e) ->
#log('onmessage ' + e);
x = ''+a[0]
if e.data != x
for i in [0...e.data.length]
if e.data.charCodeAt(i) != x.charCodeAt(i)
xx1 = ('0000' + x.charCodeAt(i).toString(16)).slice(-4)
xx2 = ('0000' + e.data.charCodeAt(i).toString(16)).slice(-4)
log('source: \\u' + xx1 + ' differs from: \\u' + xx2)
break
equal(e.data, '' + a[0])
a.shift()
if typeof a[0] is 'undefined'
r.close()
else
r.send(a[0])
r.onclose = (e) ->
if a.length
ok(false, "Transport closed prematurely. " + e)
else
ok(true)
start()
factor_echo_basic = (protocol) ->
messages = [ 'data' ]
return echo_factory_factory(protocol, messages)
factor_echo_rich = (protocol) ->
messages = [ [1,2,3,'data'], null, false, "data", 1, 12.0, {a:1, b:2} ]
return echo_factory_factory(protocol, messages)
factor_echo_unicode = (protocol) ->
messages = [
"Τη γλÏÏÏα μοÏ
ÎδÏÏαν ελληνική Ïο ÏÏίÏι ÏÏÏÏÎ¹ÎºÏ ÏÏÎ¹Ï Î±Î¼Î¼Î¿Ï
διÎÏ ÏοÏ
",
"á¦ááá áá¡á á¨áááááá á, áá£áᣠáááá áááá®á¡ááá¡ á¡áá¤ááá¡á á¨á áááá¡á, áªááªá®áá¡, á¬á§ááá¡",
"â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â ¥â â â â â ",
t-vendor/html/src/tests.coffee view on Meta::CPAN
Ðалее поÑледовал ÑÑÑ Ð¿Ð¾ ÑÑÑане, вÑÑÑÑÐ¿Ð»ÐµÐ½Ð¸Ñ Ð² ÑÑпеÑмаÑкеÑаÑ
и ÑабоÑа на ÑазогÑеве Ñ Ð³ÑÑпп 'N Sync и Backstreet Boys.
[пÑавиÑÑ]1999â2000: Ранний коммеÑÑеÑкий ÑÑпеÑ
РокÑÑбÑе 1998 года вÑÑел дебÑÑнÑй Ñингл ÐÑиÑни СпиÑÑ Â«â¦Baby One More Time» . ÐеÑÐ½Ñ Ð¸Ð¼ÐµÐ»Ð° огÑомнÑй ÑÑпеÑ
, в пеÑвÑе же недели возглавила междÑнаÑодÐ...
Ð 1999 Ð³Ð¾Ð´Ñ ÐÑиÑни ÑнÑлаÑÑ Ð´Ð»Ñ Ð°Ð¿ÑелÑÑкого номеÑа жÑÑнала Rolling Stone. ÐÑкÑовеннÑе ÑоÑогÑаÑии ÑпÑовоÑиÑовали ÑлÑÑ
и о Ñом, ÑÑо 17-леÑнÑÑ Ð·Ð²ÐµÐ·Ð´Ð° Ñ...
ÐÑлед за ÑÑпеÑнÑм дебÑÑом поÑледовал вÑоÑой алÑбом певиÑÑ Â«Oops!... I Did It Again», Ñакже ÑÑаÑÑовавÑий на 1-м меÑÑе в СШÐ. ÐÑодажи за пеÑвÑÑ Ð½ÐµÐ´ÐµÐ»Ñ...
[пÑавиÑÑ]2001â2003: ÐеÑÑина каÑÑеÑÑ
ÐÑполнÑÑ Â«Me Against the Music»
УÑпеÑ
СпиÑÑ Ñделал ÐµÑ Ð·Ð°Ð¼ÐµÑной ÑигÑÑой и в мÑзÑкалÑной индÑÑÑÑии, и в поп-кÑлÑÑÑÑе. РнаÑале 2001 года она пÑивлекла внимание «ÐепÑи», ÑÑа к...
РноÑбÑе 2001 года вÑÑел ÑÑеÑий алÑбом СпиÑÑ â Britney. ÐлÑбом дебÑÑиÑовал на пеÑвом меÑÑе в Ð¡Ð¨Ð Ñ Ð¿Ñодажами в 745 744 плаÑÑинок за пеÑвÑÑ Ð½ÐµÐ´ÐµÐ»Ñ, ...
Ð ÑÑом же Ð³Ð¾Ð´Ñ Ð¡Ð¿Ð¸ÑÑ ÑаÑÑÑалаÑÑ Ñ ÑолиÑÑом 'N Sync ÐжаÑÑином ТимбеÑлейком, Ñ ÐºÐ¾ÑоÑÑм вÑÑÑеÑалаÑÑ 4 года.
ÐÑиÑни веÑнÑлаÑÑ Ð½Ð° ÑÑÐµÐ½Ñ Ð² авгÑÑÑе 2003 года.
РноÑбÑе 2003 года вÑÑел ÑеÑвÑÑÑÑй ÑÑÑдийнÑй алÑбом СпиÑÑ In The Zone. ÐÑиÑни ÑÑаÑÑвовала в напиÑании воÑÑми из ÑÑинадÑаÑи композиÑий, а Ñакже Ð...
[пÑавиÑÑ]2007â2008: ÐозвÑаÑение к мÑзÑке
РнаÑале 2007 года поÑле двÑÑ
леÑнего пеÑеÑÑва СпиÑÑ Ð¿ÑиÑÑÑпила к запиÑи нового ÑолÑного алÑбома, пÑодÑÑеÑами коÑоÑого вÑÑÑÑпили Nate «Danja» H...
Рмае 2007 года СпиÑÑ Ð² ÑоÑÑаве коллекÑива «The M and Mâs» дала 6 конÑеÑÑов в ÑамкаÑ
ÑÑÑа «House of Blues» в ÐоÑ-ÐнджелеÑе, Сан-Ðиего, ÐнаÑ
айме, ÐаÑ-Ðега...
30 авгÑÑÑа 2007 года на волнаÑ
нÑÑ-йоÑкÑкой ÑадиоÑÑанÑии Z100 ÑоÑÑоÑлаÑÑ Ð¿ÑемÑеÑа пеÑни «Gimme More», пеÑвого Ñингла Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ алÑбома СпиÑÑ.[5] СинÐ...
9 ÑенÑÑбÑÑ 2007 года СпиÑÑ Ð¸Ñполнила «Gimme More» на ÑеÑемонии вÑÑÑÐµÐ½Ð¸Ñ Ð½Ð°Ð³Ñад MTV Video Music Awards. ÐÑÑÑÑпление оказалоÑÑ Ð½ÐµÑдаÑнÑм; СпиÑÑ Ð²ÑглÑдела н...
ÐеÑмоÑÑÑ Ð½Ð° ÑÑо, в наÑале окÑÑбÑÑ 2007 года Ñингл «Gimme More» доÑÑиг 3-го меÑÑа в ÑаÑÑе Billboard Hot 100, ÑÑав Ñаким обÑазом одним из ÑамÑÑ
ÑÑпеÑнÑÑ
Ñин...
]
return echo_factory_factory(protocol, messages)
factor_echo_special_chars = (protocol) ->
messages = [
" ",
"\u0000",
"\xff",
"\xff\x00",
"\x00\xff",
" \r ",
" \n ",
" \r\n ",
"\r\n",
"",
"message\t",
"\tmessage",
"message ",
" message",
"message\r",
"\rmessage",
"message\n",
"\nmessage",
"message\xff",
"\xffmessage",
"A",
"b",
"c",
"d",
"e",
"\ufffd",
"\ufffd\u0000",
"message\ufffd",
"\ufffdmessage",
]
return echo_factory_factory(protocol, messages)
factor_echo_large_message = (protocol) ->
# Should be larger than 128k - the limit for a single request in
# some streaming transports.
messages = [
Array(Math.pow(2,1)).join('x'),
Array(Math.pow(2,2)).join('x'),
Array(Math.pow(2,4)).join('x'),
Array(Math.pow(2,8)).join('x'),
Array(Math.pow(2,13)).join('x'),
Array(Math.pow(2,13)).join('x'),
]
return echo_factory_factory(protocol, messages)
batch_factory_factory = (protocol, messages) ->
return ->
expect(3 + messages.length)
r = newSockJS('/echo', protocol)
ok(r)
counter = 0
r.onopen = (e) ->
ok(true)
for msg in messages
r.send(msg)
r.onmessage = (e) ->
equals(e.data, messages[counter])
counter += 1
if counter is messages.length
r.close()
r.onclose = (e) ->
if counter isnt messages.length
ok(false, "Transport closed prematurely. " + e)
else
ok(true)
start()
factor_batch_large = (protocol) ->
messages = [
Array(Math.pow(2,1)).join('x'),
Array(Math.pow(2,2)).join('x'),
Array(Math.pow(2,4)).join('x'),
Array(Math.pow(2,8)).join('x'),
Array(Math.pow(2,13)).join('x'),
Array(Math.pow(2,13)).join('x'),
]
return batch_factory_factory(protocol, messages)
batch_factory_factory_amp = (protocol, messages) ->
return ->
expect(3 + messages.length)
r = newSockJS('/amplify', protocol)
ok(r)
counter = 0
r.onopen = (e) ->
ok(true)
for msg in messages
r.send(''+msg)
r.onmessage = (e) ->
equals(e.data.length, Math.pow(2, messages[counter]), e.data)
counter += 1
if counter is messages.length
r.close()
( run in 1.161 second using v1.01-cache-2.11-cpan-39bf76dae61 )