From 2d11d1bd671ef20fe833855d87506fd2b7ffa515 Mon Sep 17 00:00:00 2001 From: Noah Campbell Date: Mon, 12 Aug 2013 17:14:54 -0700 Subject: [PATCH] Test GetParam and the various incarnations of frontmatter. --- hugolib/page_index_test.go | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 hugolib/page_index_test.go diff --git a/hugolib/page_index_test.go b/hugolib/page_index_test.go new file mode 100644 index 000000000..49c7504c7 --- /dev/null +++ b/hugolib/page_index_test.go @@ -0,0 +1,79 @@ +package hugolib + +import ( + "strings" + "testing" +) + +var PAGE_YAML_WITH_INDEXES_A = `--- +tags: ['a', 'b', 'c'] +categories: 'd' +--- +YAML frontmatter with tags and categories index.` + +var PAGE_YAML_WITH_INDEXES_B = `--- +tags: + - "a" + - "b" + - "c" +categories: 'd' +--- +YAML frontmatter with tags and categories index.` + +var PAGE_JSON_WITH_INDEXES = `{ + "categories": "d", + "tags": [ + "a", + "b", + "c" + ] +} +JSON Front Matter with tags and categories` + +var PAGE_TOML_WITH_INDEXES = `+++ +tags = [ "a", "b", "c" ] +categories = "d" ++++ +TOML Front Matter with tags and categories` + +func TestParseIndexes(t *testing.T) { + for _, test := range []string{PAGE_TOML_WITH_INDEXES, + PAGE_JSON_WITH_INDEXES, + PAGE_YAML_WITH_INDEXES_A, + PAGE_YAML_WITH_INDEXES_B, + } { + p, err := ReadFrom(strings.NewReader(test), "page/with/index") + if err != nil { + t.Fatalf("Failed parsing page: %s", err) + } + + param := p.GetParam("tags") + params := param.([]string) + + expected := []string{"a", "b", "c"} + if !compareStringSlice(params, expected) { + t.Errorf("Expected %s: got: %s", expected, params) + } + + param = p.GetParam("categories") + singleparam := param.(string) + + if singleparam != "d" { + t.Fatalf("Expected: d, got: %s", singleparam) + } + } +} + +func compareStringSlice(a, b []string) bool { + if len(a) != len(b) { + return false + } + + for i, v := range a { + if b[i] != v { + return false + } + } + + return true +}