1
|
describe('requires-port', function () {
|
2
|
'use strict';
|
3
|
|
4
|
var assume = require('assume')
|
5
|
, required = require('./');
|
6
|
|
7
|
it('is exported as a function', function () {
|
8
|
assume(required).is.a('function');
|
9
|
});
|
10
|
|
11
|
it('does not require empty ports', function () {
|
12
|
assume(required('', 'http')).false();
|
13
|
assume(required('', 'wss')).false();
|
14
|
assume(required('', 'ws')).false();
|
15
|
assume(required('', 'cowsack')).false();
|
16
|
});
|
17
|
|
18
|
it('assumes true for unknown protocols',function () {
|
19
|
assume(required('808', 'foo')).true();
|
20
|
assume(required('80', 'bar')).true();
|
21
|
});
|
22
|
|
23
|
it('never requires port numbers for file', function () {
|
24
|
assume(required(8080, 'file')).false();
|
25
|
});
|
26
|
|
27
|
it('does not require port 80 for http', function () {
|
28
|
assume(required('80', 'http')).false();
|
29
|
assume(required(80, 'http')).false();
|
30
|
assume(required(80, 'http://')).false();
|
31
|
assume(required(80, 'http://www.google.com')).false();
|
32
|
|
33
|
assume(required('8080', 'http')).true();
|
34
|
assume(required(8080, 'http')).true();
|
35
|
assume(required(8080, 'http://')).true();
|
36
|
assume(required(8080, 'http://www.google.com')).true();
|
37
|
});
|
38
|
|
39
|
it('does not require port 80 for ws', function () {
|
40
|
assume(required('80', 'ws')).false();
|
41
|
assume(required(80, 'ws')).false();
|
42
|
assume(required(80, 'ws://')).false();
|
43
|
assume(required(80, 'ws://www.google.com')).false();
|
44
|
|
45
|
assume(required('8080', 'ws')).true();
|
46
|
assume(required(8080, 'ws')).true();
|
47
|
assume(required(8080, 'ws://')).true();
|
48
|
assume(required(8080, 'ws://www.google.com')).true();
|
49
|
});
|
50
|
|
51
|
it('does not require port 443 for https', function () {
|
52
|
assume(required('443', 'https')).false();
|
53
|
assume(required(443, 'https')).false();
|
54
|
assume(required(443, 'https://')).false();
|
55
|
assume(required(443, 'https://www.google.com')).false();
|
56
|
|
57
|
assume(required('8080', 'https')).true();
|
58
|
assume(required(8080, 'https')).true();
|
59
|
assume(required(8080, 'https://')).true();
|
60
|
assume(required(8080, 'https://www.google.com')).true();
|
61
|
});
|
62
|
|
63
|
it('does not require port 443 for wss', function () {
|
64
|
assume(required('443', 'wss')).false();
|
65
|
assume(required(443, 'wss')).false();
|
66
|
assume(required(443, 'wss://')).false();
|
67
|
assume(required(443, 'wss://www.google.com')).false();
|
68
|
|
69
|
assume(required('8080', 'wss')).true();
|
70
|
assume(required(8080, 'wss')).true();
|
71
|
assume(required(8080, 'wss://')).true();
|
72
|
assume(required(8080, 'wss://www.google.com')).true();
|
73
|
});
|
74
|
|
75
|
it('does not require port 21 for ftp', function () {
|
76
|
assume(required('21', 'ftp')).false();
|
77
|
assume(required(21, 'ftp')).false();
|
78
|
assume(required(21, 'ftp://')).false();
|
79
|
assume(required(21, 'ftp://www.google.com')).false();
|
80
|
|
81
|
assume(required('8080', 'ftp')).true();
|
82
|
assume(required(8080, 'ftp')).true();
|
83
|
assume(required(8080, 'ftp://')).true();
|
84
|
assume(required(8080, 'ftp://www.google.com')).true();
|
85
|
});
|
86
|
|
87
|
it('does not require port 70 for gopher', function () {
|
88
|
assume(required('70', 'gopher')).false();
|
89
|
assume(required(70, 'gopher')).false();
|
90
|
assume(required(70, 'gopher://')).false();
|
91
|
assume(required(70, 'gopher://www.google.com')).false();
|
92
|
|
93
|
assume(required('8080', 'gopher')).true();
|
94
|
assume(required(8080, 'gopher')).true();
|
95
|
assume(required(8080, 'gopher://')).true();
|
96
|
assume(required(8080, 'gopher://www.google.com')).true();
|
97
|
});
|
98
|
});
|