2016-03-23 15:07:25 +01:00
|
|
|
/* eslint-env mocha */
|
2016-05-28 15:34:50 +01:00
|
|
|
|
2016-03-23 15:07:25 +01:00
|
|
|
'use strict'
|
|
|
|
|
2020-08-10 14:34:58 +01:00
|
|
|
const { expect } = require('aegir/utils/chai')
|
2019-02-26 16:31:50 +01:00
|
|
|
const multiaddr = require('multiaddr')
|
2020-08-10 14:34:58 +01:00
|
|
|
const uint8ArrayFromString = require('uint8arrays/from-string')
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2020-07-13 10:43:51 +02:00
|
|
|
const mafmt = require('./../src')
|
|
|
|
|
2016-03-23 15:07:25 +01:00
|
|
|
describe('multiaddr validation', function () {
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodDNS = [
|
2019-08-08 12:02:02 +02:00
|
|
|
'/dns/ipfs.io',
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/ipfs.io',
|
2017-01-22 14:42:20 +00:00
|
|
|
'/dns4/ipfs.io',
|
|
|
|
'/dns4/libp2p.io',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/dns6/protocol.ai'
|
2017-01-22 14:42:20 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
const badDNS = [
|
|
|
|
'/ip4/127.0.0.1'
|
2017-01-20 17:27:50 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
const goodIP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.0.0',
|
|
|
|
'/ip6/fc00::'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const badIP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.0.0/tcp/555',
|
|
|
|
'/udp/789/ip6/fc00::'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodTCP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.7.6/tcp/1234',
|
2018-09-12 11:21:52 +02:00
|
|
|
'/ip6/::/tcp/0',
|
|
|
|
'/dns4/protocol.ai/tcp/80',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/dns6/protocol.ai/tcp/80',
|
2018-09-12 11:21:52 +02:00
|
|
|
'/dnsaddr/protocol.ai/tcp/80'
|
2016-05-28 15:34:50 +01:00
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const badTCP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/tcp/12345',
|
2018-09-12 11:21:52 +02:00
|
|
|
'/ip6/fc00::/udp/5523/tcp/9543',
|
|
|
|
'/dns4/protocol.ai'
|
2016-05-28 15:34:50 +01:00
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodUDP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.7.6/udp/1234',
|
|
|
|
'/ip6/::/udp/0'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const badUDP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/udp/12345',
|
|
|
|
'/ip6/fc00::/tcp/5523/udp/9543'
|
|
|
|
]
|
|
|
|
|
2021-01-14 03:31:49 +13:00
|
|
|
const goodQUIC = [
|
|
|
|
'/ip4/1.2.3.4/udp/1234/quic',
|
|
|
|
'/ip6/::/udp/1234/quic'
|
|
|
|
]
|
|
|
|
|
|
|
|
const badQUIC = [
|
|
|
|
'/ip4/0.0.0.0/tcp/12345/quic',
|
|
|
|
'/ip6/1.2.3.4/ip4/0.0.0.0/udp/1234/quic',
|
|
|
|
'/quic'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodUTP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/1.2.3.4/udp/3456/utp',
|
|
|
|
'/ip6/::/udp/0/utp'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const badUTP = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.0.0/tcp/12345/utp',
|
|
|
|
'/ip6/::/ip4/0.0.0.0/udp/1234/utp'
|
|
|
|
]
|
|
|
|
|
2018-04-06 17:09:16 +01:00
|
|
|
const goodHTTP = [
|
|
|
|
'/dnsaddr/ipfs.io/http',
|
|
|
|
'/dnsaddr/ipfs.io/tcp/3456/http',
|
|
|
|
'/ip4/0.0.0.0/http',
|
|
|
|
'/ip4/0.0.0.0/tcp/12345/http',
|
|
|
|
'/ip6/::/http',
|
|
|
|
'/ip6/::/tcp/12345/http'
|
|
|
|
]
|
|
|
|
|
|
|
|
const goodHTTPS = [
|
|
|
|
'/dnsaddr/ipfs.io/https',
|
|
|
|
'/dnsaddr/ipfs.io/tcp/3456/https',
|
|
|
|
'/ip4/0.0.0.0/https',
|
|
|
|
'/ip4/0.0.0.0/tcp/12345/https',
|
|
|
|
'/ip6/::/https',
|
|
|
|
'/ip6/::/tcp/12345/https'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodWS = [
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/ipfs.io/ws',
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws',
|
|
|
|
'/ip6/::/tcp/0/ws'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:46:26 +00:00
|
|
|
const goodWSS = [
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/ipfs.io/wss',
|
2017-01-20 17:46:26 +00:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/wss',
|
|
|
|
'/ip6/::/tcp/0/wss'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodWebRTCStar = [
|
2017-09-03 09:46:57 +01:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/ipfs.io/ws/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/dnsaddr/ipfs.io/wss/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2017-11-28 09:21:56 +00:00
|
|
|
'/ip6/::/tcp/0/ws/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo5',
|
2020-01-23 16:47:25 +01:00
|
|
|
'/ip6/::/tcp/0/ws/p2p-webrtc-star',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/dns4/wrtc-star.discovery.libp2p.io/tcp/443/wss/p2p-webrtc-star/ipfs/QmTysQQiTGMdfRsDQp516oZ9bR3FiSCDnicUnqny2q1d79',
|
2020-01-23 16:47:25 +01:00
|
|
|
'/dns4/wrtc-star.discovery.libp2p.io/tcp/443/wss/p2p-webrtc-star',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/dns/wrtc-star.discovery.libp2p.io/wss/p2p-webrtc-star/ipfs/QmTysQQiTGMdfRsDQp516oZ9bR3FiSCDnicUnqny2q1d79',
|
|
|
|
'/dns/wrtc-star.discovery.libp2p.io/tcp/443/wss/p2p-webrtc-star/ipfs/QmTysQQiTGMdfRsDQp516oZ9bR3FiSCDnicUnqny2q1d79'
|
2016-05-28 15:34:50 +01:00
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodWebRTCDirect = [
|
2017-09-03 09:46:57 +01:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/http/p2p-webrtc-direct',
|
|
|
|
'/ip6/::/tcp/0/http/p2p-webrtc-direct'
|
|
|
|
]
|
|
|
|
|
2017-09-06 14:13:17 +02:00
|
|
|
const goodWebSocketStar = [
|
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-websocket-star',
|
|
|
|
'/ip6/::/tcp/0/ws/p2p-websocket-star',
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/localhost/ws/p2p-websocket-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2017-11-28 09:21:56 +00:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-websocket-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star/ipfs/Qma3uqwymdqwXtC4uvmqqwwMhTDHD7xp9FzM75tQB5qRM3'
|
2017-01-16 14:59:35 +00:00
|
|
|
]
|
|
|
|
|
2019-02-07 12:04:12 +01:00
|
|
|
const goodStardust = [
|
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-stardust',
|
|
|
|
'/ip6/::/tcp/0/ws/p2p-stardust',
|
|
|
|
'/dnsaddr/localhost/ws/p2p-stardust/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-stardust/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-stardust/ipfs/Qma3uqwymdqwXtC4uvmqqwwMhTDHD7xp9FzM75tQB5qRM3'
|
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const badWS = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/0.0.0.0/tcp/12345/udp/2222/ws',
|
2017-03-29 20:47:59 +01:00
|
|
|
'/ip6/::/ip4/0.0.0.0/udp/1234/ws',
|
2017-09-03 09:46:57 +01:00
|
|
|
'/ip4/127.0.0.1/tcp/24642/ws/p2p-webrtc-star'
|
2016-05-28 15:34:50 +01:00
|
|
|
]
|
|
|
|
|
2017-01-22 14:42:20 +00:00
|
|
|
const badWSS = [
|
|
|
|
'/ip4/0.0.0.0/tcp/12345/udp/2222/wss',
|
|
|
|
'/ip6/::/ip4/0.0.0.0/udp/1234/wss'
|
|
|
|
]
|
|
|
|
|
2017-02-25 23:41:14 -08:00
|
|
|
const goodCircuit = [
|
|
|
|
'/p2p-circuit',
|
|
|
|
'/p2p-circuit/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
|
|
|
'/p2p-circuit/ip4/127.0.0.1/tcp/20008/ws/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
2017-09-03 09:46:57 +01:00
|
|
|
'/p2p-circuit/ip4/1.2.3.4/tcp/3456/ws/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2017-02-26 00:07:33 -08:00
|
|
|
'/p2p-circuit/ip4/1.2.3.4/tcp/3456/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/p2p-circuit/ip4/127.0.0.1/tcp/4002/ipfs/QmddWMcQX6orJGHpETYMyPgXrCXCtYANMFVDCvhKoDwLqA',
|
2017-03-26 19:41:40 -07:00
|
|
|
'/p2p-circuit/ipfs/QmddWMcQX6orJGHpETYMyPgXrCXCtYANMFVDCvhKoDwLqA',
|
|
|
|
'/p2p-circuit/ip4/127.0.0.1/tcp/20008/ws/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj/' +
|
|
|
|
'p2p-circuit/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj'
|
2017-02-25 23:41:14 -08:00
|
|
|
]
|
|
|
|
|
2017-03-27 13:15:44 -07:00
|
|
|
const badCircuit = [
|
|
|
|
'/ip4/0.0.0.0/tcp/12345/udp/2222/wss',
|
|
|
|
'/ip4/0.0.7.6/udp/1234',
|
|
|
|
'/ip6/::/udp/0/utp',
|
2018-02-12 11:15:11 +01:00
|
|
|
'/dnsaddr/ipfs.io/ws',
|
2017-09-03 09:46:57 +01:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/http/p2p-webrtc-star'
|
2017-03-27 13:15:44 -07:00
|
|
|
]
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
const goodIPFS = [
|
2016-05-28 15:34:50 +01:00
|
|
|
'/ip4/127.0.0.1/tcp/20008/ws/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
2017-09-03 09:46:57 +01:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-webrtc-star/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2021-01-11 10:16:51 +01:00
|
|
|
'/ip4/127.0.0.1/tcp/9090/http/p2p-webrtc-direct/p2p/QmPj9ZZ6notLfV9khV1FtxH1Goe5sVaUyqgoXrTYQWp382',
|
2017-02-25 23:41:14 -08:00
|
|
|
'/ip4/1.2.3.4/tcp/3456/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit/ipfs/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
|
|
|
'/ip4/127.0.0.1/tcp/20008/ws/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
|
|
|
'/ip4/1.2.3.4/tcp/3456/ws/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/ip4/1.2.3.4/tcp/3456/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2021-01-14 03:31:49 +13:00
|
|
|
'/ip4/1.2.3.4/udp/1234/quic/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
2019-09-11 19:47:54 +02:00
|
|
|
'/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
|
|
|
'/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4',
|
2019-08-08 12:02:02 +02:00
|
|
|
'/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit',
|
2020-10-15 14:01:04 +01:00
|
|
|
'/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj',
|
2020-10-26 10:25:40 +00:00
|
|
|
'/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN',
|
|
|
|
'/dns4/nyc-2.bootstrap.libp2p.io/tcp/443/wss/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64',
|
|
|
|
'/dns6/nyc-2.bootstrap.libp2p.io/tcp/443/wss/p2p/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64'
|
2017-02-26 00:07:33 -08:00
|
|
|
].concat(goodCircuit)
|
2017-02-25 23:41:14 -08:00
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
function assertMatches (p) {
|
2017-01-20 17:27:50 +00:00
|
|
|
const tests = Array.from(arguments).slice(1)
|
2016-05-28 15:34:50 +01:00
|
|
|
tests.forEach(function (test) {
|
|
|
|
test.forEach(function (testcase) {
|
2019-02-07 12:04:12 +01:00
|
|
|
try {
|
2019-02-26 16:31:50 +01:00
|
|
|
expect(p.matches(testcase), `assertMatches: ${testcase} (string)`).to.be.eql(true)
|
2021-04-09 18:23:24 +03:00
|
|
|
const ma = new multiaddr.Multiaddr(testcase)
|
2019-02-26 16:31:50 +01:00
|
|
|
expect(p.matches(ma), `assertMatches: ${testcase} (multiaddr object)`).to.be.eql(true)
|
2020-08-10 14:34:58 +01:00
|
|
|
expect(p.matches(ma.bytes), `assertMatches: ${testcase} (multiaddr.bytes)`).to.be.eql(true)
|
2019-02-07 12:04:12 +01:00
|
|
|
} catch (err) {
|
|
|
|
err.stack = '[testcase=' + JSON.stringify(testcase) + ', shouldMatch=true] ' + err.stack
|
|
|
|
throw err
|
|
|
|
}
|
2016-03-23 15:07:25 +01:00
|
|
|
})
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
function assertMismatches (p) {
|
2017-01-20 17:27:50 +00:00
|
|
|
const tests = Array.from(arguments).slice(1)
|
2016-05-28 15:34:50 +01:00
|
|
|
tests.forEach(function (test) {
|
|
|
|
test.forEach(function (testcase) {
|
2019-02-07 12:04:12 +01:00
|
|
|
try {
|
2019-02-26 16:31:50 +01:00
|
|
|
expect(p.matches(testcase), `assertMismatches: ${testcase} (string)`).to.be.eql(false)
|
|
|
|
let validMultiaddrObj
|
|
|
|
try {
|
|
|
|
// if testcase string happens to be a valid multiaddr,
|
2020-08-10 14:34:58 +01:00
|
|
|
// we expect 'p' test to also return false for Multiaddr object and Uint8Array versions
|
2021-04-09 18:23:24 +03:00
|
|
|
validMultiaddrObj = new multiaddr.Multiaddr(testcase)
|
2019-02-26 16:31:50 +01:00
|
|
|
} catch (e) {
|
|
|
|
// Ignoring testcase as the string is not a multiaddr
|
2020-08-10 14:34:58 +01:00
|
|
|
// (There is a separate 'Uint8Array is invalid' test later below)
|
2019-02-26 16:31:50 +01:00
|
|
|
}
|
|
|
|
if (validMultiaddrObj) {
|
|
|
|
expect(p.matches(validMultiaddrObj), `assertMismatches: ${testcase} (multiaddr object)`).to.be.eql(false)
|
2020-08-10 14:34:58 +01:00
|
|
|
expect(p.matches(validMultiaddrObj.bytes), `assertMismatches: ${testcase} (multiaddr.bytes)`).to.be.eql(false)
|
2019-02-26 16:31:50 +01:00
|
|
|
}
|
2019-02-07 12:04:12 +01:00
|
|
|
} catch (err) {
|
|
|
|
err.stack = '[testcase=' + JSON.stringify(testcase) + ', shouldMatch=false] ' + err.stack
|
|
|
|
throw err
|
|
|
|
}
|
2016-03-23 15:07:25 +01:00
|
|
|
})
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
|
|
|
}
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2019-01-25 13:03:41 +01:00
|
|
|
it('do not throw if multiaddr str is invalid', function () {
|
|
|
|
expect(mafmt.HTTP.matches('/http-google-com')).to.be.eql(false)
|
|
|
|
})
|
|
|
|
|
2020-08-10 14:34:58 +01:00
|
|
|
it('do not throw if multiaddr Uint8Array is invalid', function () {
|
|
|
|
expect(mafmt.HTTP.matches(uint8ArrayFromString('no spoon'))).to.be.eql(false)
|
2019-02-26 16:31:50 +01:00
|
|
|
})
|
|
|
|
|
2017-01-20 17:27:50 +00:00
|
|
|
it('DNS validation', function () {
|
|
|
|
assertMatches(mafmt.DNS, goodDNS)
|
2018-09-12 11:21:52 +02:00
|
|
|
assertMismatches(mafmt.DNS, badDNS, badIP)
|
2017-01-20 17:27:50 +00:00
|
|
|
})
|
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('IP validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.IP, goodIP)
|
|
|
|
assertMismatches(mafmt.IP, badIP, goodTCP)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('TCP validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.TCP, goodTCP)
|
|
|
|
assertMismatches(mafmt.TCP, badTCP, goodIP)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('UDP validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.UDP, goodUDP)
|
|
|
|
assertMismatches(mafmt.UDP, badUDP, goodIP, goodTCP, goodUTP)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2021-01-14 03:31:49 +13:00
|
|
|
it('QUIC validation', function () {
|
|
|
|
assertMatches(mafmt.QUIC, goodQUIC)
|
|
|
|
assertMismatches(mafmt.QUIC, badQUIC)
|
|
|
|
})
|
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('UTP validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.UTP, goodUTP)
|
|
|
|
assertMismatches(mafmt.UTP, badUTP, goodIP, goodTCP, goodUDP)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2018-04-06 17:09:16 +01:00
|
|
|
it('HTTP validation', function () {
|
|
|
|
assertMatches(mafmt.HTTP, goodHTTP)
|
2018-09-12 11:21:52 +02:00
|
|
|
assertMismatches(mafmt.HTTP, goodIP, goodUDP)
|
2018-04-06 17:09:16 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
it('HTTPS validation', function () {
|
|
|
|
assertMatches(mafmt.HTTPS, goodHTTPS)
|
|
|
|
assertMismatches(mafmt.HTTPS, goodHTTP, goodIP, goodTCP, goodUDP)
|
|
|
|
})
|
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('Reliable validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.Reliable, goodUTP, goodTCP)
|
|
|
|
assertMismatches(mafmt.Reliable, goodIP, goodUDP)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('WebSockets validation', function () {
|
2016-05-17 22:15:32 +01:00
|
|
|
assertMatches(mafmt.WebSockets, goodWS)
|
|
|
|
assertMismatches(mafmt.WebSockets, goodIP, goodUDP, badWS)
|
2016-05-28 15:34:50 +01:00
|
|
|
})
|
2016-05-21 19:57:26 +01:00
|
|
|
|
2017-01-20 17:46:26 +00:00
|
|
|
it('WebSocketsSecure validation', function () {
|
|
|
|
assertMatches(mafmt.WebSocketsSecure, goodWSS)
|
2017-01-22 14:42:20 +00:00
|
|
|
assertMismatches(mafmt.WebSocketsSecure, goodIP, badWSS, goodUDP, badWS)
|
2017-01-20 17:46:26 +00:00
|
|
|
})
|
|
|
|
|
2017-09-06 14:13:17 +02:00
|
|
|
it('WebSocketStar validation', function () {
|
|
|
|
assertMatches(mafmt.WebSocketStar, goodWebSocketStar)
|
|
|
|
assertMismatches(mafmt.WebSocketStar, goodIP, goodUDP, badWS)
|
2017-09-03 09:46:57 +01:00
|
|
|
})
|
|
|
|
|
2019-02-07 12:04:12 +01:00
|
|
|
it('Stardust validation', function () {
|
|
|
|
assertMatches(mafmt.Stardust, goodStardust)
|
|
|
|
assertMismatches(mafmt.Stardust, goodIP, goodUDP, badWS)
|
|
|
|
})
|
|
|
|
|
2017-09-03 09:46:57 +01:00
|
|
|
it('WebRTCStar validation', function () {
|
2016-05-21 19:57:26 +01:00
|
|
|
assertMatches(mafmt.WebRTCStar, goodWebRTCStar)
|
2020-01-23 16:47:25 +01:00
|
|
|
assertMismatches(mafmt.WebRTCStar, goodIP, goodUDP, badWSS)
|
2016-03-23 15:07:25 +01:00
|
|
|
})
|
2016-05-28 15:34:50 +01:00
|
|
|
|
2017-09-03 09:46:57 +01:00
|
|
|
it('WebRTCDirect validation', function () {
|
2017-01-16 14:59:35 +00:00
|
|
|
assertMatches(mafmt.WebRTCDirect, goodWebRTCDirect)
|
|
|
|
assertMismatches(mafmt.WebRTCDirect, goodIP, goodUDP, badWS)
|
|
|
|
})
|
|
|
|
|
2017-02-25 23:41:14 -08:00
|
|
|
it('Circuit validation', function () {
|
|
|
|
assertMatches(mafmt.Circuit, goodCircuit)
|
2017-03-27 13:15:44 -07:00
|
|
|
assertMismatches(mafmt.Circuit, badCircuit)
|
2017-02-25 23:41:14 -08:00
|
|
|
})
|
|
|
|
|
2016-05-28 15:34:50 +01:00
|
|
|
it('IPFS validation', function () {
|
|
|
|
assertMatches(mafmt.IPFS, goodIPFS)
|
|
|
|
})
|
2016-03-23 15:07:25 +01:00
|
|
|
})
|