|
4 | 4 | package sdp |
5 | 5 |
|
6 | 6 | import ( |
| 7 | + "fmt" |
7 | 8 | "testing" |
8 | 9 |
|
9 | 10 | "github.com/stretchr/testify/assert" |
@@ -395,6 +396,42 @@ func TestUnmarshalZeroValues(t *testing.T) { |
395 | 396 | assert.Equal(t, in, string(out)) |
396 | 397 | } |
397 | 398 |
|
| 399 | +func TestUnmarshalPortRange(t *testing.T) { |
| 400 | + for _, test := range []struct { |
| 401 | + In string |
| 402 | + ExpectError error |
| 403 | + }{ |
| 404 | + { |
| 405 | + In: SessionAttributesSDP + "m=video -1 RTP/AVP 99\r\n", |
| 406 | + ExpectError: fmt.Errorf("%w -- out of range `%v`", errSDPInvalidPortValue, "-1"), |
| 407 | + }, |
| 408 | + { |
| 409 | + In: SessionAttributesSDP + "m=video 65536 RTP/AVP 99\r\n", |
| 410 | + ExpectError: fmt.Errorf("%w -- out of range `%v`", errSDPInvalidPortValue, "65536"), |
| 411 | + }, |
| 412 | + { |
| 413 | + In: SessionAttributesSDP + "m=video 0 RTP/AVP 99\r\n", |
| 414 | + ExpectError: nil, |
| 415 | + }, |
| 416 | + { |
| 417 | + In: SessionAttributesSDP + "m=video 65535 RTP/AVP 99\r\n", |
| 418 | + ExpectError: nil, |
| 419 | + }, |
| 420 | + { |
| 421 | + In: SessionAttributesSDP + "m=video --- RTP/AVP 99\r\n", |
| 422 | + ExpectError: fmt.Errorf("%w `%v`", errSDPInvalidPortValue, "---"), |
| 423 | + }, |
| 424 | + } { |
| 425 | + var sd SessionDescription |
| 426 | + err := sd.UnmarshalString(test.In) |
| 427 | + if err != nil && test.ExpectError != nil { |
| 428 | + assert.Equal(t, test.ExpectError.Error(), err.Error()) |
| 429 | + } else { |
| 430 | + assert.Equal(t, err, test.ExpectError) |
| 431 | + } |
| 432 | + } |
| 433 | +} |
| 434 | + |
398 | 435 | func BenchmarkUnmarshal(b *testing.B) { |
399 | 436 | b.ReportAllocs() |
400 | 437 | for i := 0; i < b.N; i++ { |
|
0 commit comments