diff --git a/utils_test.go b/utils_test.go index bfaa8c35..b0199c4c 100644 --- a/utils_test.go +++ b/utils_test.go @@ -1,10 +1,168 @@ package beego import ( + "html/template" "net/url" "testing" + "time" ) +func TestWebTime(t *testing.T) { + ts := "Fri, 26 Jul 2013 12:27:42 CST" + tt, _ := time.Parse(time.RFC1123, ts) + if ts != webTime(tt) { + t.Error("should be equal") + } + if "Fri, 26 Jul 2013 04:27:42 GMT" != webTime(tt.UTC()) { + t.Error("should be equal") + } +} + +func TestMarkDown(t *testing.T) { + raw := `## beego + +[![Build Status](https://drone.io/github.com/astaxie/beego/status.png)](https://drone.io/github.com/astaxie/beego/latest) + +beego is a Go Framework which is inspired from tornado and sinatra. + +It is a simply & powerful web framework. + + +## Features + +* RESTFul support + +## Documentation + +[English](https://github.com/astaxie/beego/tree/master/docs/en) + +## LICENSE + +beego is licensed under the Apache Licence, Version 2.0 +(http://www.apache.org/licenses/LICENSE-2.0.html). + + +## Use case + +- Displaying API documentation: [gowalker](https://github.com/Unknwon/gowalker) +` + output := `

beego

+ +

![Build Status](https://drone.io/github.com/astaxie/beego/status.png)

+ +

beego is a Go Framework which is inspired from tornado and sinatra.

+ +

It is a simply & powerful web framework.

+ +

Features

+ + + +

Documentation

+ +

English

+ +

LICENSE

+ +

beego is licensed under the Apache Licence, Version 2.0 +(http://www.apache.org/licenses/LICENSE-2.0.html).

+ +

Use case

+ + +` + if MarkDown(raw) != template.HTML(output) { + t.Error("should be equal") + } +} + +func TestSubstr(t *testing.T) { + s := `012345` + if Substr(s, 0, 2) != "01" { + t.Error("should be equal") + } + if Substr(s, 0, 100) != "012345" { + t.Error("should be equal") + } +} + +func TestHtml2str(t *testing.T) { + h := `<123> 123\n + + + \n` + if Html2str(h) != "123\\n\n\\n" { + t.Error("should be equal") + } +} + +func TestDateFormat(t *testing.T) { + ts := "Mon, 01 Jul 2013 13:27:42 CST" + tt, _ := time.Parse(time.RFC1123, ts) + if DateFormat(tt, "2006-01-02 15:04:05") != "2013-07-01 13:27:42" { + t.Error("should be equal") + } +} + +func TestDate(t *testing.T) { + ts := "Mon, 01 Jul 2013 13:27:42 CST" + tt, _ := time.Parse(time.RFC1123, ts) + if Date(tt, "Y-m-d H:i:s") != "2013-07-01 13:27:42" { + t.Error("should be equal") + } + if Date(tt, "y-n-j h:i:s A") != "13-7-1 01:27:42 PM" { + t.Error("should be equal") + } + if Date(tt, "D, d M Y g:i:s a") != "Mon, 01 Jul 2013 1:27:42 pm" { + t.Error("should be equal") + } + if Date(tt, "l, d F Y G:i:s") != "Monday, 01 July 2013 13:27:42" { + t.Error("should be equal") + } +} + +func TestCompare(t *testing.T) { + if !Compare("abc", "abc") { + t.Error("should be equal") + } + if Compare("abc", "aBc") { + t.Error("should be not equal") + } + if !Compare("1", 1) { + t.Error("should be equal") + } +} + +func TestHtmlquote(t *testing.T) { + h := `<' ”“&">` + s := `<' ”“&">` + if Htmlquote(s) != h { + t.Error("should be equal") + } +} + +func TestHtmlunquote(t *testing.T) { + h := `<' ”“&">` + s := `<' ”“&">` + if Htmlunquote(h) != s { + t.Error("should be equal") + } +} + +func TestInSlice(t *testing.T) { + sl := []string{"A", "b"} + if !inSlice("A", sl) { + t.Error("should be true") + } + if inSlice("B", sl) { + t.Error("should be false") + } +} + func TestParseForm(t *testing.T) { type user struct { Id int