| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- /*!
- * socket.io-node
- * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
- * MIT Licensed
- */
- (function (module, io, should) {
- module.exports = {
- 'parse uri': function () {
- var http = io.util.parseUri('http://google.com')
- , https = io.util.parseUri('https://www.google.com:80')
- , query = io.util.parseUri('google.com:8080/foo/bar?foo=bar');
- http.protocol.should().eql('http');
- http.port.should().eql('');
- http.host.should().eql('google.com');
- https.protocol.should().eql('https');
- https.port.should().eql('80');
- https.host.should().eql('www.google.com');
- query.port.should().eql('8080');
- query.query.should().eql('foo=bar');
- query.path.should().eql('/foo/bar');
- query.relative.should().eql('/foo/bar?foo=bar');
- },
- 'unique uri': function () {
- var protocol = io.util.parseUri('http://google.com')
- , noprotocol = io.util.parseUri('google.com')
- , https = io.util.parseUri('https://google.com')
- , path = io.util.parseUri('https://google.com/google.com/com/?foo=bar');
- if ('object' == typeof window) {
- io.util.uniqueUri(protocol).should().eql('http://google.com:3000');
- io.util.uniqueUri(noprotocol).should().eql('http://google.com:3000');
- } else {
- io.util.uniqueUri(protocol).should().eql('http://google.com:80');
- io.util.uniqueUri(noprotocol).should().eql('http://google.com:80');
- }
- io.util.uniqueUri(https).should().eql('https://google.com:443');
- io.util.uniqueUri(path).should().eql('https://google.com:443');
- },
- 'chunk query string': function () {
- io.util.chunkQuery('foo=bar').should().be.a('object');
- io.util.chunkQuery('foo=bar').foo.should().eql('bar');
- },
- 'merge query strings': function () {
- var base = io.util.query('foo=bar', 'foo=baz')
- , add = io.util.query('foo=bar', 'bar=foo')
- base.should().eql('?foo=baz');
- add.should().eql('?foo=bar&bar=foo');
- io.util.query('','').should().eql('');
- io.util.query('foo=bar', '').should().eql('?foo=bar');
- io.util.query('', 'foo=bar').should().eql('?foo=bar');
- },
- 'request': function () {
- var type = typeof io.util.request();
- type.should().eql('object');
- },
- 'is array': function () {
- io.util.isArray([]).should().be_true;
- io.util.isArray({}).should().be_false;
- io.util.isArray('str').should().be_false;
- io.util.isArray(new Date).should().be_false;
- io.util.isArray(true).should().be_false;
- io.util.isArray(arguments).should().be_false;
- },
- 'merge, deep merge': function () {
- var start = {
- foo: 'bar'
- , bar: 'baz'
- }
- , duplicate = {
- foo: 'foo'
- , bar: 'bar'
- }
- , extra = {
- ping: 'pong'
- }
- , deep = {
- level1:{
- foo: 'bar'
- , level2: {
- foo: 'bar'
- , level3:{
- foo: 'bar'
- , rescursive: deep
- }
- }
- }
- }
- // same structure, but changed names
- , deeper = {
- foo: 'bar'
- , level1:{
- foo: 'baz'
- , level2: {
- foo: 'foo'
- , level3:{
- foo: 'pewpew'
- , rescursive: deep
- }
- }
- }
- };
- io.util.merge(start, duplicate);
- start.foo.should().eql('foo');
- start.bar.should().eql('bar');
- io.util.merge(start, extra);
- start.ping.should().eql('pong');
- start.foo.should().eql('foo');
- io.util.merge(deep, deeper);
- deep.foo.should().eql('bar');
- deep.level1.foo.should().eql('baz');
- deep.level1.level2.foo.should().eql('foo');
- deep.level1.level2.level3.foo.should().eql('pewpew');
- },
- 'defer': function (next) {
- var now = +new Date;
- io.util.defer(function () {
- ((new Date - now) >= ( io.util.webkit ? 100 : 0 )).should().be_true();
- next();
- })
- },
- 'indexOf': function () {
- var data = ['socket', 2, 3, 4, 'socket', 5, 6, 7, 'io'];
- io.util.indexOf(data, 'socket', 1).should().eql(4);
- io.util.indexOf(data, 'socket').should().eql(0);
- io.util.indexOf(data, 'waffles').should().eql(-1);
- }
- };
- })(
- 'undefined' == typeof module ? module = {} : module
- , 'undefined' == typeof io ? require('socket.io-client') : io
- , 'undefined' == typeof should ? require('should') : should
- );
|