mirror of
				https://github.com/gohugoio/hugo.git
				synced 2024-05-11 05:54:58 +00:00 
			
		
		
		
	If a file named index.html exists in a directory, or root, it will be rendered as if ugly urls are turned on. This allows for top level content to not need a supporting layout file and content in content. This change should not affect anyone who is using the perscribed way. I also cleaned up a bunch of one off functions in site.go.
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package target
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestFileTranslator(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		content  string
 | 
						|
		expected string
 | 
						|
	}{
 | 
						|
		{"/", "index.html"},
 | 
						|
		{"index.html", "index.html"},
 | 
						|
		{"bar/index.html", "bar/index.html"},
 | 
						|
		{"foo", "foo/index.html"},
 | 
						|
		{"foo.html", "foo/index.html"},
 | 
						|
		{"foo.xhtml", "foo/index.xhtml"},
 | 
						|
		{"section", "section/index.html"},
 | 
						|
		{"section/", "section/index.html"},
 | 
						|
		{"section/foo", "section/foo/index.html"},
 | 
						|
		{"section/foo.html", "section/foo/index.html"},
 | 
						|
		{"section/foo.rss", "section/foo/index.rss"},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, test := range tests {
 | 
						|
		f := new(Filesystem)
 | 
						|
		dest, err := f.Translate(test.content)
 | 
						|
		if err != nil {
 | 
						|
			t.Fatalf("Translate returned and unexpected err: %s", err)
 | 
						|
		}
 | 
						|
 | 
						|
		if dest != test.expected {
 | 
						|
			t.Errorf("Tranlate expected return: %s, got: %s", test.expected, dest)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestFileTranslatorBase(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		content  string
 | 
						|
		expected string
 | 
						|
	}{
 | 
						|
		{"/", "a/base/index.html"},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, test := range tests {
 | 
						|
		f := &Filesystem{PublishDir: "a/base"}
 | 
						|
		fts := &Filesystem{PublishDir: "a/base/"}
 | 
						|
 | 
						|
		for _, fs := range []*Filesystem{f, fts} {
 | 
						|
			dest, err := fs.Translate(test.content)
 | 
						|
			if err != nil {
 | 
						|
				t.Fatalf("Translated returned and err: %s", err)
 | 
						|
			}
 | 
						|
 | 
						|
			if dest != test.expected {
 | 
						|
				t.Errorf("Translate expected: %s, got: %s", test.expected, dest)
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestTranslateUglyUrls(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		content  string
 | 
						|
		expected string
 | 
						|
	}{
 | 
						|
		{"foo.html", "foo.html"},
 | 
						|
		{"/", "index.html"},
 | 
						|
		{"section", "section.html"},
 | 
						|
		{"index.html", "index.html"},
 | 
						|
	}
 | 
						|
 | 
						|
	for _, test := range tests {
 | 
						|
		f := &Filesystem{UglyUrls: true}
 | 
						|
		dest, err := f.Translate(test.content)
 | 
						|
		if err != nil {
 | 
						|
			t.Fatalf("Translate returned an unexpected err: %s", err)
 | 
						|
		}
 | 
						|
 | 
						|
		if dest != test.expected {
 | 
						|
			t.Errorf("Translate expected return: %s, got: %s", test.expected, dest)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestTranslateDefaultExtension(t *testing.T) {
 | 
						|
	f := &Filesystem{DefaultExtension: ".foobar"}
 | 
						|
	dest, _ := f.Translate("baz")
 | 
						|
	if dest != "baz/index.foobar" {
 | 
						|
		t.Errorf("Translate expected return: %s, got %s", "baz/index.foobar", dest)
 | 
						|
	}
 | 
						|
}
 |