Parcourir la source

Marshal content types

Geoffrey J. Teale il y a 11 ans
Parent
commit
067c6dee84
2 fichiers modifiés avec 42 ajouts et 0 suppressions
  1. 16 0
      contenttypes.go
  2. 26 0
      contenttypes_test.go

+ 16 - 0
contenttypes.go

@@ -0,0 +1,16 @@
+package xlsx
+
+import (
+	"encoding/xml"
+)
+
+type xlsxTypes struct {
+	XMLName		xml.Name `xml:"http://schemas.openxmlformats.org/package/2006/content-types Types"`
+
+	Overrides []xlsxOverride `xml:"Override"`
+}
+
+type xlsxOverride struct {
+	PartName string	`xml:",attr"`
+	ContentType string `xml:",attr"`
+}

+ 26 - 0
contenttypes_test.go

@@ -0,0 +1,26 @@
+package xlsx
+
+import (
+	"encoding/xml"
+	. "gopkg.in/check.v1"
+)
+
+type ContentTypesSuite struct {}
+
+var _ = Suite(&ContentTypesSuite{})
+
+
+func (l *ContentTypesSuite) TestMarshalContentTypes(c *C) {
+	var types xlsxTypes = xlsxTypes{}
+	types.Overrides = make([]xlsxOverride, 1)
+	types.Overrides[0] = xlsxOverride{PartName: "/_rels/.rels", ContentType: "application/vnd.openxmlformats-package.relationships+xml"}
+	output, err := xml.MarshalIndent(types, "   ", "   ")
+	stringOutput := xml.Header + string(output)
+	c.Assert(err, IsNil)
+	expectedContentTypes := `<?xml version="1.0" encoding="UTF-8"?>
+   <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
+      <Override PartName="/_rels/.rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"></Override>
+   </Types>`
+	c.Assert(stringOutput, Equals, expectedContentTypes)
+}
+