2017-04-20 05:31:31 +03:00
// 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 (
2019-04-02 22:25:05 +03:00
"os"
"path/filepath"
2017-04-20 05:31:31 +03:00
"testing"
"github.com/stretchr/testify/assert"
)
2019-04-02 22:25:05 +03:00
func TestUploadAttachment ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
user := AssertExistsAndLoadBean ( t , & User { ID : 1 } ) . ( * User )
var fPath = "./attachment_test.go"
f , err := os . Open ( fPath )
assert . NoError ( t , err )
defer f . Close ( )
var buf = make ( [ ] byte , 1024 )
n , err := f . Read ( buf )
assert . NoError ( t , err )
buf = buf [ : n ]
attach , err := NewAttachment ( & Attachment {
UploaderID : user . ID ,
Name : filepath . Base ( fPath ) ,
} , buf , f )
assert . NoError ( t , err )
attachment , err := GetAttachmentByUUID ( attach . UUID )
assert . NoError ( t , err )
assert . EqualValues ( t , user . ID , attachment . UploaderID )
assert . Equal ( t , int64 ( 0 ) , attachment . DownloadCount )
}
2017-04-20 05:31:31 +03:00
func TestIncreaseDownloadCount ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
2017-04-30 09:30:12 +03:00
attachment , err := GetAttachmentByUUID ( "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 0 ) , attachment . DownloadCount )
// increase download count
err = attachment . IncreaseDownloadCount ( )
assert . NoError ( t , err )
2017-04-30 09:30:12 +03:00
attachment , err = GetAttachmentByUUID ( "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" )
2017-04-20 05:31:31 +03:00
assert . NoError ( t , err )
assert . Equal ( t , int64 ( 1 ) , attachment . DownloadCount )
}
func TestGetByCommentOrIssueID ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
// count of attachments from issue ID
attachments , err := GetAttachmentsByIssueID ( 1 )
assert . NoError ( t , err )
assert . Equal ( t , 2 , len ( attachments ) )
attachments , err = GetAttachmentsByCommentID ( 1 )
assert . NoError ( t , err )
assert . Equal ( t , 2 , len ( attachments ) )
}
func TestDeleteAttachments ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
count , err := DeleteAttachmentsByIssue ( 4 , false )
assert . NoError ( t , err )
assert . Equal ( t , 1 , count )
count , err = DeleteAttachmentsByComment ( 2 , false )
assert . NoError ( t , err )
assert . Equal ( t , 2 , count )
err = DeleteAttachment ( & Attachment { ID : 8 } , false )
assert . NoError ( t , err )
2017-04-30 09:30:12 +03:00
attachment , err := GetAttachmentByUUID ( "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a18" )
2017-04-20 05:31:31 +03:00
assert . Error ( t , err )
assert . True ( t , IsErrAttachmentNotExist ( err ) )
assert . Nil ( t , attachment )
}
2018-03-06 04:22:16 +03:00
func TestGetAttachmentByID ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
attach , err := GetAttachmentByID ( 1 )
assert . NoError ( t , err )
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . UUID )
}
func TestAttachment_DownloadURL ( t * testing . T ) {
attach := & Attachment {
UUID : "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" ,
ID : 1 ,
}
assert . Equal ( t , "https://try.gitea.io/attachments/a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . DownloadURL ( ) )
}
func TestUpdateAttachment ( t * testing . T ) {
assert . NoError ( t , PrepareTestDatabase ( ) )
attach , err := GetAttachmentByID ( 1 )
assert . NoError ( t , err )
assert . Equal ( t , "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11" , attach . UUID )
attach . Name = "new_name"
assert . NoError ( t , UpdateAttachment ( attach ) )
AssertExistsAndLoadBean ( t , & Attachment { Name : "new_name" } )
}