1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
package config
type Fixture struct {
Text string
Raw string
Config *Config
}
var fixtures = []*Fixture{
{
Raw: "",
Text: "",
Config: New(),
},
{
Raw: ";Comments only",
Text: "",
Config: New(),
},
{
Raw: "#Comments only",
Text: "",
Config: New(),
},
{
Raw: "[core]\nrepositoryformatversion=0",
Text: "[core]\n\trepositoryformatversion = 0\n",
Config: New().AddOption("core", "", "repositoryformatversion", "0"),
},
{
Raw: "[core]\n\trepositoryformatversion = 0\n",
Text: "[core]\n\trepositoryformatversion = 0\n",
Config: New().AddOption("core", "", "repositoryformatversion", "0"),
},
{
Raw: ";Commment\n[core]\n;Comment\nrepositoryformatversion = 0\n",
Text: "[core]\n\trepositoryformatversion = 0\n",
Config: New().AddOption("core", "", "repositoryformatversion", "0"),
},
{
Raw: "#Commment\n#Comment\n[core]\n#Comment\nrepositoryformatversion = 0\n",
Text: "[core]\n\trepositoryformatversion = 0\n",
Config: New().AddOption("core", "", "repositoryformatversion", "0"),
},
{
Raw: `[section]
option1 = "has # hash"
option2 = "has \" quote"
option3 = "has \\ backslash"
option4 = "has ; semicolon"
option5 = "has \n line-feed"
option6 = "has \t tab"
option7 = " has leading spaces"
option8 = "has trailing spaces "
option9 = has no special characters
option10 = has unusual ` + "\x01\x7f\xc8\x80 characters\n",
Text: `[section]
option1 = "has # hash"
option2 = "has \" quote"
option3 = "has \\ backslash"
option4 = "has ; semicolon"
option5 = "has \n line-feed"
option6 = "has \t tab"
option7 = " has leading spaces"
option8 = "has trailing spaces "
option9 = has no special characters
option10 = has unusual ` + "\x01\x7f\xc8\x80 characters\n",
Config: New().
AddOption("section", "", "option1", `has # hash`).
AddOption("section", "", "option2", `has " quote`).
AddOption("section", "", "option3", `has \ backslash`).
AddOption("section", "", "option4", `has ; semicolon`).
AddOption("section", "", "option5", "has \n line-feed").
AddOption("section", "", "option6", "has \t tab").
AddOption("section", "", "option7", ` has leading spaces`).
AddOption("section", "", "option8", `has trailing spaces `).
AddOption("section", "", "option9", `has no special characters`).
AddOption("section", "", "option10", "has unusual \x01\x7f\u0200 characters"),
},
{
Raw: `
[sect1]
opt1 = value1
[sect1 "subsect1"]
opt2 = value2
`,
Text: `[sect1]
opt1 = value1
[sect1 "subsect1"]
opt2 = value2
`,
Config: New().
AddOption("sect1", "", "opt1", "value1").
AddOption("sect1", "subsect1", "opt2", "value2"),
},
{
Raw: `
[sect1]
opt1 = value1
[sect1 "subsect1"]
opt2 = value2
[sect1]
opt1 = value1b
[sect1 "subsect1"]
opt2 = value2b
[sect1 "subsect2"]
opt2 = value2
`,
Text: `[sect1]
opt1 = value1
opt1 = value1b
[sect1 "subsect1"]
opt2 = value2
opt2 = value2b
[sect1 "subsect2"]
opt2 = value2
`,
Config: New().
AddOption("sect1", "", "opt1", "value1").
AddOption("sect1", "", "opt1", "value1b").
AddOption("sect1", "subsect1", "opt2", "value2").
AddOption("sect1", "subsect1", "opt2", "value2b").
AddOption("sect1", "subsect2", "opt2", "value2"),
},
{
Raw: `
[sect1]
opt1 = value1
opt1 = value2
`,
Text: `[sect1]
opt1 = value1
opt1 = value2
`,
Config: New().
AddOption("sect1", "", "opt1", "value1").
AddOption("sect1", "", "opt1", "value2"),
},
}
|