| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
- // SPDX-License-Identifier: MIT
- package ice
- import (
- "errors"
- "testing"
- "github.com/pion/stun"
- )
- func TestControlled_GetFrom(t *testing.T) { //nolint:dupl
- m := new(stun.Message)
- var c AttrControlled
- if err := c.GetFrom(m); !errors.Is(err, stun.ErrAttributeNotFound) {
- t.Error("unexpected error")
- }
- if err := m.Build(stun.BindingRequest, &c); err != nil {
- t.Error(err)
- }
- m1 := new(stun.Message)
- if _, err := m1.Write(m.Raw); err != nil {
- t.Error(err)
- }
- var c1 AttrControlled
- if err := c1.GetFrom(m1); err != nil {
- t.Error(err)
- }
- if c1 != c {
- t.Error("not equal")
- }
- t.Run("IncorrectSize", func(t *testing.T) {
- m3 := new(stun.Message)
- m3.Add(stun.AttrICEControlled, make([]byte, 100))
- var c2 AttrControlled
- if err := c2.GetFrom(m3); !stun.IsAttrSizeInvalid(err) {
- t.Error("should error")
- }
- })
- }
- func TestControlling_GetFrom(t *testing.T) { //nolint:dupl
- m := new(stun.Message)
- var c AttrControlling
- if err := c.GetFrom(m); !errors.Is(err, stun.ErrAttributeNotFound) {
- t.Error("unexpected error")
- }
- if err := m.Build(stun.BindingRequest, &c); err != nil {
- t.Error(err)
- }
- m1 := new(stun.Message)
- if _, err := m1.Write(m.Raw); err != nil {
- t.Error(err)
- }
- var c1 AttrControlling
- if err := c1.GetFrom(m1); err != nil {
- t.Error(err)
- }
- if c1 != c {
- t.Error("not equal")
- }
- t.Run("IncorrectSize", func(t *testing.T) {
- m3 := new(stun.Message)
- m3.Add(stun.AttrICEControlling, make([]byte, 100))
- var c2 AttrControlling
- if err := c2.GetFrom(m3); !stun.IsAttrSizeInvalid(err) {
- t.Error("should error")
- }
- })
- }
- func TestControl_GetFrom(t *testing.T) {
- t.Run("Blank", func(t *testing.T) {
- m := new(stun.Message)
- var c AttrControl
- if err := c.GetFrom(m); !errors.Is(err, stun.ErrAttributeNotFound) {
- t.Error("unexpected error")
- }
- })
- t.Run("Controlling", func(t *testing.T) { //nolint:dupl
- m := new(stun.Message)
- var c AttrControl
- if err := c.GetFrom(m); !errors.Is(err, stun.ErrAttributeNotFound) {
- t.Error("unexpected error")
- }
- c.Role = Controlling
- c.Tiebreaker = 4321
- if err := m.Build(stun.BindingRequest, &c); err != nil {
- t.Error(err)
- }
- m1 := new(stun.Message)
- if _, err := m1.Write(m.Raw); err != nil {
- t.Error(err)
- }
- var c1 AttrControl
- if err := c1.GetFrom(m1); err != nil {
- t.Error(err)
- }
- if c1 != c {
- t.Error("not equal")
- }
- t.Run("IncorrectSize", func(t *testing.T) {
- m3 := new(stun.Message)
- m3.Add(stun.AttrICEControlling, make([]byte, 100))
- var c2 AttrControl
- if err := c2.GetFrom(m3); !stun.IsAttrSizeInvalid(err) {
- t.Error("should error")
- }
- })
- })
- t.Run("Controlled", func(t *testing.T) { //nolint:dupl
- m := new(stun.Message)
- var c AttrControl
- if err := c.GetFrom(m); !errors.Is(err, stun.ErrAttributeNotFound) {
- t.Error("unexpected error")
- }
- c.Role = Controlled
- c.Tiebreaker = 1234
- if err := m.Build(stun.BindingRequest, &c); err != nil {
- t.Error(err)
- }
- m1 := new(stun.Message)
- if _, err := m1.Write(m.Raw); err != nil {
- t.Error(err)
- }
- var c1 AttrControl
- if err := c1.GetFrom(m1); err != nil {
- t.Error(err)
- }
- if c1 != c {
- t.Error("not equal")
- }
- t.Run("IncorrectSize", func(t *testing.T) {
- m3 := new(stun.Message)
- m3.Add(stun.AttrICEControlling, make([]byte, 100))
- var c2 AttrControl
- if err := c2.GetFrom(m3); !stun.IsAttrSizeInvalid(err) {
- t.Error("should error")
- }
- })
- })
- }
|