...

Source file src/edge-infra.dev/pkg/lib/ini/parser_test.go

Documentation: edge-infra.dev/pkg/lib/ini

     1  package ini
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestBOM(t *testing.T) {
    11  	t.Run("test handling BOM", func(t *testing.T) {
    12  		t.Run("UTF-8-BOM", func(t *testing.T) {
    13  			f, err := Load("testdata/UTF-8-BOM.ini")
    14  			require.NoError(t, err)
    15  			require.NotNil(t, f)
    16  
    17  			assert.Equal(t, "example@email.com", f.Section("author").Key("E-MAIL").String())
    18  		})
    19  
    20  		t.Run("UTF-16-LE-BOM", func(t *testing.T) {
    21  			f, err := Load("testdata/UTF-16-LE-BOM.ini")
    22  			require.NoError(t, err)
    23  			require.NotNil(t, f)
    24  		})
    25  
    26  		t.Run("UTF-16-BE-BOM", func(t *testing.T) {
    27  		})
    28  	})
    29  }
    30  
    31  func TestBadLoad(t *testing.T) {
    32  	t.Run("load with bad data", func(t *testing.T) {
    33  		t.Run("bad section name", func(t *testing.T) {
    34  			_, err := Load([]byte("[]"))
    35  			require.Error(t, err)
    36  
    37  			_, err = Load([]byte("["))
    38  			require.Error(t, err)
    39  		})
    40  
    41  		t.Run("bad keys", func(t *testing.T) {
    42  			_, err := Load([]byte(`"""name`))
    43  			require.Error(t, err)
    44  
    45  			_, err = Load([]byte(`"""name"""`))
    46  			require.Error(t, err)
    47  
    48  			_, err = Load([]byte(`""=1`))
    49  			require.Error(t, err)
    50  
    51  			_, err = Load([]byte(`=`))
    52  			require.Error(t, err)
    53  
    54  			_, err = Load([]byte(`name`))
    55  			require.Error(t, err)
    56  		})
    57  
    58  		t.Run("bad values", func(t *testing.T) {
    59  			_, err := Load([]byte(`name="""Unknwon`))
    60  			require.Error(t, err)
    61  		})
    62  	})
    63  }
    64  

View as plain text