shithub: hugo

Download patch

ref: 6e1268f45be9995c3d503fa34bb5f63a63f49e00
parent: 895638433e52956b8af97dd14f134cb9486d3bdd
author: Noah Campbell <[email protected]>
date: Mon Oct 7 04:53:18 EDT 2013

Test case for permalink functionality

--- a/hugolib/page_permalink_test.go
+++ b/hugolib/page_permalink_test.go
@@ -1,9 +1,47 @@
 package hugolib
 
 import (
+	"html/template"
 	"testing"
 )
 
 func TestPermalink(t *testing.T) {
+	tests := []struct {
+		base     template.URL
+		expectedAbs string
+		expectedRel string
+	}{
+		{"", "/x/y/z/boofar", "/x/y/z/boofar"},
+		{"http://barnew/", "http://barnew/x/y/z/boofar", "/x/y/z/boofar"},
+	}
 
+	for _, test := range tests {
+		p := &Page{
+			Node: Node{
+				UrlPath: UrlPath{Section: "x/y/z"},
+				Site:    SiteInfo{BaseUrl: test.base},
+			},
+			File: File{FileName: "x/y/z/boofar.md"},
+		}
+
+		u, err := p.Permalink()
+		if err != nil {
+			t.Errorf("Unable to process permalink: %s", err)
+		}
+
+		expected := test.expectedAbs
+		if u != expected {
+			t.Errorf("Expected abs url: %s, got: %s", expected, u)
+		}
+
+		u, err = p.RelPermalink()
+		if err != nil {
+			t.Errorf("Unable to process permalink: %s", err)
+		}
+
+		expected = test.expectedRel
+		if u != expected {
+			t.Errorf("Expected abs url: %s, got: %s", expected, u)
+		}
+	}
 }