Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
hexbee
Cloudreve
提交
5df8f688
C
Cloudreve
项目概览
hexbee
/
Cloudreve
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cloudreve
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5df8f688
编写于
12月 05, 2019
作者:
H
HFO4
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test: util / filesystem
上级
06bcb3d6
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
322 addition
and
0 deletion
+322
-0
pkg/filesystem/hooks_test.go
pkg/filesystem/hooks_test.go
+59
-0
pkg/filesystem/local/file_test.go
pkg/filesystem/local/file_test.go
+48
-0
pkg/filesystem/path_test.go
pkg/filesystem/path_test.go
+75
-0
pkg/filesystem/upload_test.go
pkg/filesystem/upload_test.go
+14
-0
pkg/util/common_test.go
pkg/util/common_test.go
+6
-0
pkg/util/io_test.go
pkg/util/io_test.go
+12
-0
pkg/util/logger_test.go
pkg/util/logger_test.go
+101
-0
pkg/util/path_test.go
pkg/util/path_test.go
+7
-0
未找到文件。
pkg/filesystem/hooks_test.go
浏览文件 @
5df8f688
...
...
@@ -168,6 +168,18 @@ func TestFileSystem_Use(t *testing.T) {
// 不存在
fs
.
Use
(
"BeforeUpload2333"
,
hook
)
asserts
.
NotPanics
(
func
()
{
for
_
,
hookName
:=
range
[]
string
{
"AfterUpload"
,
"AfterValidateFailed"
,
"AfterUploadCanceled"
,
"BeforeFileDownload"
,
}
{
fs
.
Use
(
hookName
,
hook
)
}
})
}
func
TestFileSystem_Trigger
(
t
*
testing
.
T
)
{
...
...
@@ -195,3 +207,50 @@ func TestFileSystem_Trigger(t *testing.T) {
asserts
.
NoError
(
err
)
asserts
.
Equal
(
uint64
(
4
),
fs
.
User
.
Storage
)
}
func
TestHookIsFileExist
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
fs
:=
&
FileSystem
{
User
:
&
model
.
User
{
Model
:
gorm
.
Model
{
ID
:
1
,
},
}}
ctx
:=
context
.
WithValue
(
context
.
Background
(),
PathCtx
,
"/test.txt"
)
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/"
,
"test.txt"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"Name"
})
.
AddRow
(
"s"
),
)
err
:=
HookIsFileExist
(
ctx
,
fs
)
asserts
.
NoError
(
mock
.
ExpectationsWereMet
())
asserts
.
NoError
(
err
)
}
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/"
,
"test.txt"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"Name"
}),
)
err
:=
HookIsFileExist
(
ctx
,
fs
)
asserts
.
NoError
(
mock
.
ExpectationsWereMet
())
asserts
.
Error
(
err
)
}
}
func
TestHookValidateCapacity
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
fs
:=
&
FileSystem
{
User
:
&
model
.
User
{
Model
:
gorm
.
Model
{
ID
:
1
},
Storage
:
0
,
Group
:
model
.
Group
{
MaxStorage
:
11
,
},
}}
ctx
:=
context
.
WithValue
(
context
.
Background
(),
FileHeaderCtx
,
local
.
FileStream
{
Size
:
10
})
{
err
:=
HookValidateCapacity
(
ctx
,
fs
)
asserts
.
NoError
(
err
)
}
{
err
:=
HookValidateCapacity
(
ctx
,
fs
)
asserts
.
Error
(
err
)
}
}
pkg/filesystem/local/file_test.go
0 → 100644
浏览文件 @
5df8f688
package
local
import
(
"github.com/stretchr/testify/assert"
"io/ioutil"
"strings"
"testing"
)
func
TestFileStream_GetFileName
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
file
:=
FileStream
{
Name
:
"123"
}
asserts
.
Equal
(
"123"
,
file
.
GetFileName
())
}
func
TestFileStream_GetMIMEType
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
file
:=
FileStream
{
MIMEType
:
"123"
}
asserts
.
Equal
(
"123"
,
file
.
GetFileName
())
}
func
TestFileStream_GetSize
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
file
:=
FileStream
{
Size
:
123
}
asserts
.
Equal
(
uint64
(
123
),
file
.
GetSize
())
}
func
TestFileStream_Read
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
file
:=
FileStream
{
File
:
ioutil
.
NopCloser
(
strings
.
NewReader
(
"123"
)),
}
var
p
=
make
([]
byte
,
3
)
{
n
,
err
:=
file
.
Read
(
p
)
asserts
.
Equal
(
3
,
n
)
asserts
.
NoError
(
err
)
}
}
func
TestFileStream_Close
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
file
:=
FileStream
{
File
:
ioutil
.
NopCloser
(
strings
.
NewReader
(
"123"
)),
}
err
:=
file
.
Close
()
asserts
.
NoError
(
err
)
}
pkg/filesystem/path_test.go
浏览文件 @
5df8f688
...
...
@@ -368,3 +368,78 @@ func TestFileSystem_Delete(t *testing.T) {
}
}
func
TestFileSystem_Copy
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
fs
:=
&
FileSystem
{
User
:
&
model
.
User
{
Model
:
gorm
.
Model
{
ID
:
1
,
},
Storage
:
3
,
Group
:
model
.
Group
{
MaxStorage
:
3
},
}}
ctx
:=
context
.
Background
()
// 目录不存在
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/dst"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
}),
)
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/src"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
}),
)
err
:=
fs
.
Copy
(
ctx
,
[]
string
{},
[]
string
{},
"/src"
,
"/dst"
)
asserts
.
Equal
(
ErrPathNotExist
,
err
)
asserts
.
NoError
(
mock
.
ExpectationsWereMet
())
}
// 复制目录出错
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/src"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
})
.
AddRow
(
"123"
),
)
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/dst"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
})
.
AddRow
(
"123"
),
)
err
:=
fs
.
Copy
(
ctx
,
[]
string
{
"test"
},
[]
string
{},
"/src"
,
"/dst"
)
asserts
.
Error
(
err
)
}
}
func
TestFileSystem_Move
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
fs
:=
&
FileSystem
{
User
:
&
model
.
User
{
Model
:
gorm
.
Model
{
ID
:
1
,
},
Storage
:
3
,
Group
:
model
.
Group
{
MaxStorage
:
3
},
}}
ctx
:=
context
.
Background
()
// 目录不存在
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/dst"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
}),
)
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/src"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
}),
)
err
:=
fs
.
Move
(
ctx
,
[]
string
{},
[]
string
{},
"/src"
,
"/dst"
)
asserts
.
Equal
(
ErrPathNotExist
,
err
)
asserts
.
NoError
(
mock
.
ExpectationsWereMet
())
}
// 移动目录出错
{
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/src"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
})
.
AddRow
(
"123"
),
)
mock
.
ExpectQuery
(
"SELECT(.+)"
)
.
WithArgs
(
uint
(
1
),
"/dst"
)
.
WillReturnRows
(
sqlmock
.
NewRows
([]
string
{
"name"
})
.
AddRow
(
"123"
),
)
err
:=
fs
.
Move
(
ctx
,
[]
string
{
"test"
},
[]
string
{},
"/src"
,
"/dst"
)
asserts
.
Error
(
err
)
}
}
pkg/filesystem/upload_test.go
浏览文件 @
5df8f688
...
...
@@ -82,4 +82,18 @@ func TestFileSystem_Upload(t *testing.T) {
asserts
.
Error
(
err
)
testHandller2
.
AssertExpectations
(
t
)
// AfterUpload失败
testHandller3
:=
new
(
FileHeaderMock
)
testHandller3
.
On
(
"Put"
,
testMock
.
Anything
,
testMock
.
Anything
,
testMock
.
Anything
)
.
Return
(
nil
)
fs
.
Handler
=
testHandller3
fs
.
Use
(
"AfterUpload"
,
func
(
ctx
context
.
Context
,
fs
*
FileSystem
)
error
{
return
errors
.
New
(
"error"
)
})
fs
.
Use
(
"AfterValidateFailed"
,
func
(
ctx
context
.
Context
,
fs
*
FileSystem
)
error
{
return
errors
.
New
(
"error"
)
})
err
=
fs
.
Upload
(
ctx
,
file
)
asserts
.
Error
(
err
)
testHandller2
.
AssertExpectations
(
t
)
}
pkg/util/common_test.go
浏览文件 @
5df8f688
...
...
@@ -62,3 +62,9 @@ func TestBuildRegexp(t *testing.T) {
asserts
.
Equal
(
"^/dir/"
,
BuildRegexp
([]
string
{
"/dir"
},
"^"
,
"/"
,
"|"
))
asserts
.
Equal
(
"^/dir/|^/dir/di
\\
*r/"
,
BuildRegexp
([]
string
{
"/dir"
,
"/dir/di*r"
},
"^"
,
"/"
,
"|"
))
}
func
TestBuildConcat
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
asserts
.
Equal
(
"CONCAT(1,2)"
,
BuildConcat
(
"1"
,
"2"
,
"mysql"
))
asserts
.
Equal
(
"1||2"
,
BuildConcat
(
"1"
,
"2"
,
"sqlite3"
))
}
pkg/util/io_test.go
0 → 100644
浏览文件 @
5df8f688
package
util
import
(
"github.com/stretchr/testify/assert"
"testing"
)
func
TestExists
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
asserts
.
True
(
Exists
(
"io_test.go"
))
asserts
.
False
(
Exists
(
"io_test.js"
))
}
pkg/util/logger_test.go
0 → 100644
浏览文件 @
5df8f688
package
util
import
(
"github.com/stretchr/testify/assert"
"testing"
)
func
TestBuildLogger
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
asserts
.
NotPanics
(
func
()
{
BuildLogger
(
"error"
)
})
asserts
.
NotPanics
(
func
()
{
BuildLogger
(
"warning"
)
})
asserts
.
NotPanics
(
func
()
{
BuildLogger
(
"info"
)
})
asserts
.
NotPanics
(
func
()
{
BuildLogger
(
"?"
)
})
asserts
.
NotPanics
(
func
()
{
BuildLogger
(
"debug"
)
})
}
func
TestLog
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
asserts
.
NotNil
(
Log
())
logger
=
nil
asserts
.
NotNil
(
Log
())
}
func
TestLogger_Debug
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
l
:=
Logger
{
level
:
LevelDebug
,
}
asserts
.
NotPanics
(
func
()
{
l
.
Debug
(
"123"
)
})
l
.
level
=
LevelError
asserts
.
NotPanics
(
func
()
{
l
.
Debug
(
"123"
)
})
}
func
TestLogger_Info
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
l
:=
Logger
{
level
:
LevelDebug
,
}
asserts
.
NotPanics
(
func
()
{
l
.
Info
(
"123"
)
})
l
.
level
=
LevelError
asserts
.
NotPanics
(
func
()
{
l
.
Info
(
"123"
)
})
}
func
TestLogger_Warning
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
l
:=
Logger
{
level
:
LevelDebug
,
}
asserts
.
NotPanics
(
func
()
{
l
.
Warning
(
"123"
)
})
l
.
level
=
LevelError
asserts
.
NotPanics
(
func
()
{
l
.
Warning
(
"123"
)
})
}
func
TestLogger_Error
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
l
:=
Logger
{
level
:
LevelDebug
,
}
asserts
.
NotPanics
(
func
()
{
l
.
Error
(
"123"
)
})
l
.
level
=
-
1
asserts
.
NotPanics
(
func
()
{
l
.
Error
(
"123"
)
})
}
func
TestLogger_Panic
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
l
:=
Logger
{
level
:
LevelDebug
,
}
asserts
.
Panics
(
func
()
{
l
.
Panic
(
"123"
)
})
l
.
level
=
-
1
asserts
.
NotPanics
(
func
()
{
l
.
Error
(
"123"
)
})
}
pkg/util/path_test.go
浏览文件 @
5df8f688
...
...
@@ -12,3 +12,10 @@ func TestDotPathToStandardPath(t *testing.T) {
asserts
.
Equal
(
"/目录"
,
DotPathToStandardPath
(
"目录"
))
asserts
.
Equal
(
"/目录/目录2"
,
DotPathToStandardPath
(
"目录,目录2"
))
}
func
TestFillSlash
(
t
*
testing
.
T
)
{
asserts
:=
assert
.
New
(
t
)
asserts
.
Equal
(
"/"
,
FillSlash
(
"/"
))
asserts
.
Equal
(
"/"
,
FillSlash
(
""
))
asserts
.
Equal
(
"/123/"
,
FillSlash
(
"/123"
))
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录