From bb76285762186c7ca2add7c199114786a3b2e207 Mon Sep 17 00:00:00 2001 From: Ethan Koenig Date: Fri, 27 Jan 2017 13:04:53 -0500 Subject: [PATCH] Unit tests for models/wiki --- models/setup_for_test.go | 10 +++++++ models/wiki.go | 2 +- models/wiki_test.go | 57 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 models/wiki_test.go diff --git a/models/setup_for_test.go b/models/setup_for_test.go index 058436ca6..c3817653c 100644 --- a/models/setup_for_test.go +++ b/models/setup_for_test.go @@ -9,6 +9,8 @@ import ( "os" "testing" + "code.gitea.io/gitea/modules/setting" + "github.com/go-xorm/core" "github.com/go-xorm/xorm" _ "github.com/mattn/go-sqlite3" // for the test engine @@ -23,6 +25,14 @@ func TestMain(m *testing.M) { fmt.Printf("Error creating test engine: %v\n", err) os.Exit(1) } + + setting.AppURL = "https://try.gitea.io/" + setting.RunUser = "runuser" + setting.SSH.Port = 3000 + setting.SSH.Domain = "try.gitea.io" + setting.RepoRootPath = "/repos" + setting.AppDataPath = "/appdata" + os.Exit(m.Run()) } diff --git a/models/wiki.go b/models/wiki.go index b20b11864..2e2c1d03f 100644 --- a/models/wiki.go +++ b/models/wiki.go @@ -41,7 +41,7 @@ func ToWikiPageName(urlString string) string { } // WikiCloneLink returns clone URLs of repository wiki. -func (repo *Repository) WikiCloneLink() (cl *CloneLink) { +func (repo *Repository) WikiCloneLink() *CloneLink { return repo.cloneLink(true) } diff --git a/models/wiki_test.go b/models/wiki_test.go new file mode 100644 index 000000000..a662ff92f --- /dev/null +++ b/models/wiki_test.go @@ -0,0 +1,57 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package models + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestToWikiPageURL(t *testing.T) { + assert.Equal(t, "wiki-name", ToWikiPageURL("wiki-name")) + assert.Equal(t, "wiki-name-with-many-spaces", ToWikiPageURL("wiki name with many spaces")) +} + +func TestToWikiPageName(t *testing.T) { + assert.Equal(t, "wiki name", ToWikiPageName("wiki name")) + assert.Equal(t, "wiki name", ToWikiPageName("wiki-name")) + assert.Equal(t, "wiki name", ToWikiPageName("wiki\tname")) + assert.Equal(t, "wiki name", ToWikiPageName("./.././wiki/name")) +} + +func TestRepository_WikiCloneLink(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + + repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) + cloneLink := repo.WikiCloneLink() + assert.Equal(t, "ssh://runuser@try.gitea.io:3000/user2/repo1.wiki.git", cloneLink.SSH) + assert.Equal(t, "https://try.gitea.io/user2/repo1.wiki.git", cloneLink.HTTPS) +} + +func TestWikiPath(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + assert.Equal(t, "/repos/user2/repo1.wiki.git", WikiPath("user2", "repo1")) +} + +func TestRepository_WikiPath(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) + assert.Equal(t, "/repos/user2/repo1.wiki.git", repo.WikiPath()) +} + +// TODO TestRepository_HasWiki + +// TODO TestRepository_InitWiki + +func TestRepository_LocalWikiPath(t *testing.T) { + assert.NoError(t, PrepareTestDatabase()) + repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) + assert.Equal(t, "/appdata/tmp/local-wiki/1", repo.LocalWikiPath()) +} + +// TODO TestRepository_UpdateLocalWiki + +// TODO ... (all remaining untested functions)