@@ -212,6 +212,24 @@ describe('multiaddr validation', function () {
212
212
'/ip4/0.0.0.0/tcp/12345/udp/2222/wss/webrtc'
213
213
]
214
214
215
+ const goodWebTransport = [
216
+ '/ip4/10.5.0.2/udp/4001/quic-v1/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/uEiCoik2HBeT5oc9Jib3SQJzNjn9AnznMDpQWcOeKSuEc9A/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
217
+ '/ip4/127.0.0.1/udp/4001/quic-v1/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/uEiCoik2HBeT5oc9Jib3SQJzNjn9AnznMDpQWcOeKSuEc9A/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
218
+ '/ip4/97.126.16.119/udp/4001/quic-v1/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/uEiCoik2HBeT5oc9Jib3SQJzNjn9AnznMDpQWcOeKSuEc9A/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
219
+ '/ip6/::1/udp/4001/quic-v1/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/uEiCoik2HBeT5oc9Jib3SQJzNjn9AnznMDpQWcOeKSuEc9A/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v'
220
+ ]
221
+
222
+ const badWebTransport = [
223
+ // quic instead of quic-v1
224
+ '/ip4/10.5.0.2/udp/4001/quic/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/uEiCoik2HBeT5oc9Jib3SQJzNjn9AnznMDpQWcOeKSuEc9A/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
225
+ // missing second certhash value
226
+ '/ip4/10.5.0.2/udp/4001/quic-v1/webtransport/certhash/uEiDWmsTxXe55Mbwnvd1qrPZAcE5Jtc0tE9WtGXD_NpMERg/certhash/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
227
+ // missing webtransport/certhash base
228
+ '/ip4/10.5.0.2/udp/4001/quic-v1/webtransport/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v' ,
229
+ // missing value for base 'webtransport/certhash' `${value}/certhash/${value}`
230
+ '/ip4/10.5.0.2/udp/4001/quic-v1/webtransport/certhash/p2p/12D3KooWQF6Q3i1QkziJQ9mkNNcyFD8GPQz6R6oEvT75wgsVXm4v'
231
+ ]
232
+
215
233
function assertMatches ( p : Mafmt , ...tests : string [ ] [ ] ) : void {
216
234
tests . forEach ( function ( test ) {
217
235
test . forEach ( function ( testcase ) {
@@ -355,4 +373,9 @@ describe('multiaddr validation', function () {
355
373
assertMatches ( mafmt . WebRTC , goodWebRTC )
356
374
assertMismatches ( mafmt . WebRTC , badWebRTC )
357
375
} )
376
+
377
+ it ( 'WebTransport validation' , function ( ) {
378
+ assertMatches ( mafmt . WebTransport , goodWebTransport )
379
+ assertMismatches ( mafmt . WebTransport , badWebTransport )
380
+ } )
358
381
} )
0 commit comments