...
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