180 lines
3.8 KiB
Go
180 lines
3.8 KiB
Go
package telegraph
|
|
|
|
import "testing"
|
|
|
|
const (
|
|
validTitle = "Testing"
|
|
validShortName = "Sandbox"
|
|
validAuthorName = "Anonymous"
|
|
validNewAuthorName = "Gopher"
|
|
validAuthorURL = "https://t.me/telegraph"
|
|
validPageURL = "Sample-Page-12-15"
|
|
)
|
|
|
|
var (
|
|
validAccount *Account
|
|
validPage *Page
|
|
validContentDOM []Node
|
|
|
|
validContent = `<p>Hello, World!</p>`
|
|
)
|
|
|
|
func testValidContentFormatByString(t *testing.T) {
|
|
var err error
|
|
validContentDOM, err = ContentFormat(validContent)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
if len(validContentDOM) <= 0 {
|
|
t.Error("DOM content is nil")
|
|
}
|
|
}
|
|
|
|
func testValidContentFormatByBytes(t *testing.T) {
|
|
var err error
|
|
validContentDOM, err = ContentFormat([]byte(validContent))
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
if len(validContentDOM) <= 0 {
|
|
t.Error("DOM content is nil")
|
|
}
|
|
}
|
|
|
|
func TestValidCreateAccount(t *testing.T) {
|
|
var err error
|
|
validAccount, err = CreateAccount(&Account{
|
|
ShortName: validShortName,
|
|
AuthorName: validAuthorName,
|
|
})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
|
|
t.Run("validCreatePage", testValidCreatePage)
|
|
t.Run("validEditAccountInfo", testValidEditAccountInfo)
|
|
t.Run("validGetAccountInfo", testValidGetAccountInfo)
|
|
t.Run("validGetPageList", testValidGetPageList)
|
|
t.Run("validRevokeAccessToken", testValidRevokeAccessToken)
|
|
}
|
|
|
|
func testValidCreatePage(t *testing.T) {
|
|
t.Run("validContentFormatByString", testValidContentFormatByString)
|
|
t.Run("validContentFormatByBytes", testValidContentFormatByBytes)
|
|
|
|
var err error
|
|
validPage, err = validAccount.CreatePage(&Page{
|
|
Title: validTitle,
|
|
AuthorName: validAuthorName,
|
|
AuthorURL: validAuthorURL,
|
|
Content: validContentDOM,
|
|
}, true)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
if validPage.URL == "" {
|
|
t.Error("new page not contain URL")
|
|
}
|
|
|
|
t.Run("validEditPage", testValidEditPage)
|
|
}
|
|
|
|
func testValidEditAccountInfo(t *testing.T) {
|
|
update, err := validAccount.EditAccountInfo(&Account{
|
|
ShortName: validShortName,
|
|
AuthorName: validNewAuthorName,
|
|
AuthorURL: validAuthorURL,
|
|
})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
if update.AuthorName == validAccount.AuthorName {
|
|
t.Error("account not updated")
|
|
}
|
|
}
|
|
|
|
func testValidEditPage(t *testing.T) {
|
|
var err error
|
|
validPage, err = validAccount.EditPage(&Page{
|
|
Path: validPage.Path,
|
|
Title: validTitle,
|
|
AuthorName: validAuthorName,
|
|
Content: validContentDOM,
|
|
}, true)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
}
|
|
|
|
func testValidGetAccountInfo(t *testing.T) {
|
|
info, err := validAccount.GetAccountInfo(FieldShortName, FieldPageCount)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
if info.ShortName != validAccount.ShortName {
|
|
t.Error("get wrong account info")
|
|
}
|
|
}
|
|
|
|
func TestValidGetPage(t *testing.T) {
|
|
page, err := GetPage(validPage.Path, true)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
|
|
if page.Title != validPage.Title {
|
|
t.Error("get wrong page")
|
|
}
|
|
}
|
|
|
|
func testValidGetPageList(t *testing.T) {
|
|
pages, err := validAccount.GetPageList(0, 3)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
|
|
if pages.TotalCount <= 0 {
|
|
t.Error("no one page in page list")
|
|
}
|
|
}
|
|
|
|
func TestValidGetViews(t *testing.T) {
|
|
stats, err := GetViews(validPageURL, -1, 0, 12, 2016)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
|
|
if stats.Views <= 0 {
|
|
t.Error("get 0 views")
|
|
}
|
|
}
|
|
|
|
func testValidRevokeAccessToken(t *testing.T) {
|
|
oldToken := validAccount.AccessToken
|
|
|
|
var err error
|
|
validAccount, err = validAccount.RevokeAccessToken()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
t.FailNow()
|
|
}
|
|
|
|
if validAccount.AccessToken == "" {
|
|
t.Error("revokeAccessToken return nothing")
|
|
}
|
|
|
|
if oldToken == validAccount.AccessToken {
|
|
t.Error("old and new tokens are equal")
|
|
}
|
|
}
|