Merge pull request #4757 from a631807682/fix/issue4698
fix(core/config/xml): prompt error when config format is incorrect
This commit is contained in:
commit
9f12707dee
@ -61,6 +61,7 @@
|
|||||||
- Fix 4736: set a fixed value "/" to the "Path" of "_xsrf" cookie. [4736](https://github.com/beego/beego/issues/4735) [4739](https://github.com/beego/beego/issues/4739)
|
- Fix 4736: set a fixed value "/" to the "Path" of "_xsrf" cookie. [4736](https://github.com/beego/beego/issues/4735) [4739](https://github.com/beego/beego/issues/4739)
|
||||||
- Fix 4734: do not reset id in Delete function. [4738](https://github.com/beego/beego/pull/4738) [4742](https://github.com/beego/beego/pull/4742)
|
- Fix 4734: do not reset id in Delete function. [4738](https://github.com/beego/beego/pull/4738) [4742](https://github.com/beego/beego/pull/4742)
|
||||||
- Fix 4699: Remove Remove goyaml2 dependency. [4755](https://github.com/beego/beego/pull/4755)
|
- Fix 4699: Remove Remove goyaml2 dependency. [4755](https://github.com/beego/beego/pull/4755)
|
||||||
|
- Fix 4698: Prompt error when config format is incorrect. [4757](https://github.com/beego/beego/pull/4757)
|
||||||
|
|
||||||
## Fix Sonar
|
## Fix Sonar
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,17 @@ func (xc *Config) ParseData(data []byte) (config.Configer, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
x.data = config.ExpandValueEnvForMap(d["config"].(map[string]interface{}))
|
v := d["config"]
|
||||||
|
if v == nil {
|
||||||
|
return nil, fmt.Errorf("xml parse should include in <config></config> tags")
|
||||||
|
}
|
||||||
|
|
||||||
|
confVal, ok := v.(map[string]interface{})
|
||||||
|
if !ok {
|
||||||
|
return nil, fmt.Errorf("xml parse <config></config> tags should include sub tags")
|
||||||
|
}
|
||||||
|
|
||||||
|
x.data = config.ExpandValueEnvForMap(confVal)
|
||||||
|
|
||||||
return x, nil
|
return x, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,7 @@ import (
|
|||||||
|
|
||||||
func TestXML(t *testing.T) {
|
func TestXML(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
// xml parse should incluce in <config></config> tags
|
// xml parse should include in <config></config> tags
|
||||||
xmlcontext = `<?xml version="1.0" encoding="UTF-8"?>
|
xmlcontext = `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<config>
|
<config>
|
||||||
<appname>beeapi</appname>
|
<appname>beeapi</appname>
|
||||||
@ -150,6 +150,25 @@ func TestXML(t *testing.T) {
|
|||||||
assert.Equal(t, "MySection", sec.Name)
|
assert.Equal(t, "MySection", sec.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestXMLMissConfig(t *testing.T) {
|
||||||
|
xmlcontext1 := `
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<appname>beeapi</appname>
|
||||||
|
`
|
||||||
|
|
||||||
|
c := &Config{}
|
||||||
|
_, err := c.ParseData([]byte(xmlcontext1))
|
||||||
|
assert.Equal(t, "xml parse should include in <config></config> tags", err.Error())
|
||||||
|
|
||||||
|
xmlcontext2 := `
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<config></config>
|
||||||
|
`
|
||||||
|
|
||||||
|
_, err = c.ParseData([]byte(xmlcontext2))
|
||||||
|
assert.Equal(t, "xml parse <config></config> tags should include sub tags", err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
type Section struct {
|
type Section struct {
|
||||||
Name string `xml:"name"`
|
Name string `xml:"name"`
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user