...

Source file src/github.com/go-asn1-ber/asn1-ber/string_test.go

Documentation: github.com/go-asn1-ber/asn1-ber

     1  package ber
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestIA5String(t *testing.T) {
     8  	for _, test := range []struct {
     9  		value       string
    10  		expectedErr string
    11  	}{
    12  		{"asdfgh", ""},
    13  		{"asdfgå", "invalid character for IA5String at pos 5: å"},
    14  	} {
    15  		pkt := NewString(ClassUniversal, TypePrimitive, TagIA5String, test.value, test.value)
    16  		dec, err := DecodePacketErr(pkt.Bytes())
    17  		if err == nil {
    18  			if test.expectedErr != "" {
    19  				t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    20  			}
    21  			if dec.Value.(string) != test.value {
    22  				t.Errorf("did not get back original value: %s <=> %s", dec.Value.(string), test.value)
    23  			}
    24  		} else if err.Error() != test.expectedErr {
    25  			t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    26  		}
    27  	}
    28  }
    29  
    30  func TestPrintableString(t *testing.T) {
    31  	for _, test := range []struct {
    32  		value       string
    33  		expectedErr string
    34  	}{
    35  		{"asdfgh", ""},
    36  		{"asdfgå", "invalid character in position 5"},
    37  	} {
    38  		pkt := NewString(ClassUniversal, TypePrimitive, TagPrintableString, test.value, test.value)
    39  		dec, err := DecodePacketErr(pkt.Bytes())
    40  		if err == nil {
    41  			if test.expectedErr != "" {
    42  				t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    43  			}
    44  			if dec.Value.(string) != test.value {
    45  				t.Errorf("did not get back original value: %s <=> %s", dec.Value.(string), test.value)
    46  			}
    47  		} else if err.Error() != test.expectedErr {
    48  			t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    49  		}
    50  	}
    51  }
    52  
    53  func TestUTF8String(t *testing.T) {
    54  	for _, test := range []struct {
    55  		value       string
    56  		expectedErr string
    57  	}{
    58  		{"åäöüß", ""},
    59  		{"asdfg\xFF", "invalid UTF-8 string"},
    60  	} {
    61  		pkt := NewString(ClassUniversal, TypePrimitive, TagUTF8String, test.value, test.value)
    62  		dec, err := DecodePacketErr(pkt.Bytes())
    63  		if err == nil {
    64  			if test.expectedErr != "" {
    65  				t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    66  			}
    67  			if dec.Value.(string) != test.value {
    68  				t.Errorf("did not get back original value: %s <=> %s", dec.Value.(string), test.value)
    69  			}
    70  		} else if err.Error() != test.expectedErr {
    71  			t.Errorf("got unexpected error for `%s`: %s", test.value, err)
    72  		}
    73  	}
    74  }
    75  

View as plain text