Refactored order of tests in mediafile_test.go

This commit is contained in:
Theresa Gresch 2019-07-16 17:27:51 +02:00
parent ffcb498fce
commit 99738790cb

View file

@ -9,6 +9,32 @@ import (
"github.com/stretchr/testify/assert"
)
func TestMediaFile_DateCreated(t *testing.T) {
conf := config.TestConfig()
t.Run("iphone_7.heic", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.heic")
assert.Nil(t, err)
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2018-09-10 12:16:13 +0000 UTC", date.String())
assert.Empty(t, err)
})
t.Run("canon_eos_6d.dng", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/canon_eos_6d.dng")
assert.Nil(t, err)
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2019-06-06 07:29:51 +0000 UTC", date.String())
assert.Empty(t, err)
})
t.Run("elephants.jpg", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/elephants.jpg")
assert.Nil(t, err)
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2013-11-26 15:53:55 +0000 UTC", date.String())
assert.Empty(t, err)
})
}
func TestMediaFile_TimeZone(t *testing.T) {
t.Run("/beach_wood.jpg", func(t *testing.T) {
conf := config.TestConfig()
@ -178,6 +204,57 @@ func TestMediaFile_Exposure(t *testing.T) {
})
}
func TestMediaFileCanonicalName(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, "20180111_130938_EB4B2A989C20", mediaFile.CanonicalName())
}
func TestMediaFileCanonicalNameFromFile(t *testing.T) {
t.Run("/beach_wood.jpg", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, "beach_wood", mediaFile.CanonicalNameFromFile())
})
t.Run("/airport_grey", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/airport_grey")
assert.Nil(t, err)
assert.Equal(t, "airport_grey", mediaFile.CanonicalNameFromFile())
})
}
func TestMediaFile_CanonicalNameFromFileWithDirectory(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath()+"/beach_wood", mediaFile.CanonicalNameFromFileWithDirectory())
}
func TestMediaFile_EditedFilename(t *testing.T) {
conf := config.TestConfig()
t.Run("IMG_4120.JPG", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120.JPG")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath()+"/IMG_E4120.JPG", mediaFile.EditedFilename())
})
t.Run("fern_green.jpg", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/fern_green.jpg")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "", mediaFile.EditedFilename())
})
}
func TestMediaFile_RelatedFiles(t *testing.T) {
conf := config.TestConfig()
@ -256,141 +333,6 @@ func TestMediaFile_RelatedFiles_Ordering(t *testing.T) {
}
}
func TestMediaFile_EditedFilename(t *testing.T) {
conf := config.TestConfig()
t.Run("IMG_4120.JPG", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120.JPG"); err == nil {
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath()+"/IMG_E4120.JPG", mediaFile.EditedFilename())
} else {
t.Error(err)
}
})
t.Run("fern_green.jpg", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/fern_green.jpg"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "", mediaFile.EditedFilename())
} else {
t.Error(err)
}
})
}
func TestMediaFile_MimeType(t *testing.T) {
conf := config.TestConfig()
t.Run("elephants.jpg", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/elephants.jpg"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "image/jpeg", mediaFile.MimeType())
} else {
t.Error(err)
}
})
t.Run("canon_eos_6d.dng", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/canon_eos_6d.dng"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "application/octet-stream", mediaFile.MimeType())
} else {
t.Error(err)
}
})
t.Run("iphone_7.xmp", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.xmp"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "text/plain; charset=utf-8", mediaFile.MimeType())
} else {
t.Error(err)
}
})
t.Run("iphone_7.json", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.json"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "text/plain; charset=utf-8", mediaFile.MimeType())
} else {
t.Error(err)
}
})
t.Run("iphone_7.heic", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.heic"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "application/octet-stream", mediaFile.MimeType())
} else {
t.Error(err)
}
})
t.Run("IMG_4120.AAE", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120.AAE"); err == nil {
assert.Nil(t, err)
assert.Equal(t, "text/xml; charset=utf-8", mediaFile.MimeType())
} else {
t.Error(err)
}
})
}
func TestMediaFile_Exists(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/cat_black.jpg")
assert.Nil(t, err)
assert.NotNil(t, mediaFile)
assert.True(t, mediaFile.Exists())
mediaFile, err = NewMediaFile(conf.ExamplesPath() + "/xxz.jpg")
assert.NotNil(t, err)
assert.Nil(t, mediaFile)
}
func TestMediaFileCanonicalName(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, "20180111_130938_EB4B2A989C20", mediaFile.CanonicalName())
}
func TestMediaFileCanonicalNameFromFile(t *testing.T) {
t.Run("/beach_wood.jpg", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, "beach_wood", mediaFile.CanonicalNameFromFile())
})
t.Run("/airport_grey", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/airport_grey")
assert.Nil(t, err)
assert.Equal(t, "airport_grey", mediaFile.CanonicalNameFromFile())
})
}
func TestMediaFile_CanonicalNameFromFileWithDirectory(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/beach_wood.jpg")
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath()+"/beach_wood", mediaFile.CanonicalNameFromFileWithDirectory())
}
func TestMediaFile_SetFilename(t *testing.T) {
conf := config.TestConfig()
@ -402,74 +344,28 @@ func TestMediaFile_SetFilename(t *testing.T) {
assert.Equal(t, "turtle_brown_blue", mediaFile.filename)
}
func TestMediaFile_Copy(t *testing.T) {
conf := config.TestConfig()
thumbsPath := conf.CachePath() + "/_tmp"
os.MkdirAll(thumbsPath, os.ModePerm)
defer os.RemoveAll(thumbsPath)
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/table_white.jpg")
assert.Nil(t, err)
mediaFile.Copy(thumbsPath + "table_whitecopy.jpg")
assert.True(t, util.Exists(thumbsPath+"table_whitecopy.jpg"))
}
func TestMediaFile_Directory(t *testing.T) {
t.Run("/limes.jpg", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/limes.jpg")
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath(), mediaFile.Directory())
})
}
func TestMediaFile_RelativeBasename(t *testing.T) {
func TestMediaFile_RelativeFilename(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/tree_white.jpg")
assert.Nil(t, err)
t.Run("directory with end slash", func(t *testing.T) {
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources/")
assert.Equal(t, "examples/tree_white", basename)
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources/")
assert.Equal(t, "examples/tree_white.jpg", filename)
})
t.Run("directory without end slash", func(t *testing.T) {
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources")
assert.Equal(t, "examples/tree_white", basename)
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources")
assert.Equal(t, "examples/tree_white.jpg", filename)
})
t.Run("directory not part of filename", func(t *testing.T) {
filename := mediaFile.RelativeFilename("xxx/")
assert.Equal(t, conf.ExamplesPath()+"/tree_white.jpg", filename)
})
t.Run("directory equals example path", func(t *testing.T) {
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources/examples/")
assert.Equal(t, "tree_white", basename)
})
}
func TestMediaFile_Basename(t *testing.T) {
t.Run("/limes.jpg", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/limes.jpg")
assert.Nil(t, err)
assert.Equal(t, "limes", mediaFile.Basename())
})
t.Run("/IMG_4120 copy.JPG", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120 copy.JPG")
assert.Nil(t, err)
assert.Equal(t, "IMG_4120", mediaFile.Basename())
})
t.Run("/IMG_4120 (1).JPG", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120 (1).JPG")
assert.Nil(t, err)
assert.Equal(t, "IMG_4120", mediaFile.Basename())
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources/examples")
assert.Equal(t, "tree_white.jpg", filename)
})
}
@ -498,61 +394,134 @@ func TestMediaFile_RelativePath(t *testing.T) {
})
}
func TestMediaFile_RelativeFilename(t *testing.T) {
func TestMediaFile_RelativeBasename(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/tree_white.jpg")
assert.Nil(t, err)
t.Run("directory with end slash", func(t *testing.T) {
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources/")
assert.Equal(t, "examples/tree_white.jpg", filename)
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources/")
assert.Equal(t, "examples/tree_white", basename)
})
t.Run("directory without end slash", func(t *testing.T) {
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources")
assert.Equal(t, "examples/tree_white.jpg", filename)
})
t.Run("directory not part of filename", func(t *testing.T) {
filename := mediaFile.RelativeFilename("xxx/")
assert.Equal(t, conf.ExamplesPath()+"/tree_white.jpg", filename)
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources")
assert.Equal(t, "examples/tree_white", basename)
})
t.Run("directory equals example path", func(t *testing.T) {
filename := mediaFile.RelativeFilename("/go/src/github.com/photoprism/photoprism/assets/resources/examples")
assert.Equal(t, "tree_white.jpg", filename)
basename := mediaFile.RelativeBasename("/go/src/github.com/photoprism/photoprism/assets/resources/examples/")
assert.Equal(t, "tree_white", basename)
})
}
func TestMediaFile_DateCreated(t *testing.T) {
func TestMediaFile_Directory(t *testing.T) {
t.Run("/limes.jpg", func(t *testing.T) {
conf := config.TestConfig()
t.Run("iphone_7.heic", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.heic"); err == nil {
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2018-09-10 12:16:13 +0000 UTC", date.String())
assert.Empty(t, err)
} else {
t.Error(err)
}
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/limes.jpg")
assert.Nil(t, err)
assert.Equal(t, conf.ExamplesPath(), mediaFile.Directory())
})
t.Run("canon_eos_6d.dng", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/canon_eos_6d.dng"); err == nil {
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2019-06-06 07:29:51 +0000 UTC", date.String())
assert.Empty(t, err)
} else {
t.Error(err)
}
func TestMediaFile_Basename(t *testing.T) {
t.Run("/limes.jpg", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/limes.jpg")
assert.Nil(t, err)
assert.Equal(t, "limes", mediaFile.Basename())
})
t.Run("/IMG_4120 copy.JPG", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120 copy.JPG")
assert.Nil(t, err)
assert.Equal(t, "IMG_4120", mediaFile.Basename())
})
t.Run("/IMG_4120 (1).JPG", func(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120 (1).JPG")
assert.Nil(t, err)
assert.Equal(t, "IMG_4120", mediaFile.Basename())
})
}
func TestMediaFile_MimeType(t *testing.T) {
conf := config.TestConfig()
t.Run("elephants.jpg", func(t *testing.T) {
if mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/elephants.jpg"); err == nil {
date := mediaFile.DateCreated().UTC()
assert.Equal(t, "2013-11-26 15:53:55 +0000 UTC", date.String())
assert.Empty(t, err)
} else {
t.Error(err)
}
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/elephants.jpg")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "image/jpeg", mediaFile.MimeType())
})
t.Run("canon_eos_6d.dng", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/canon_eos_6d.dng")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "application/octet-stream", mediaFile.MimeType())
})
t.Run("iphone_7.xmp", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.xmp")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "text/plain; charset=utf-8", mediaFile.MimeType())
})
t.Run("iphone_7.json", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.json")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "text/plain; charset=utf-8", mediaFile.MimeType())
})
t.Run("iphone_7.heic", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/iphone_7.heic")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "application/octet-stream", mediaFile.MimeType())
})
t.Run("IMG_4120.AAE", func(t *testing.T) {
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/IMG_4120.AAE")
assert.Nil(t, err)
assert.Nil(t, err)
assert.Equal(t, "text/xml; charset=utf-8", mediaFile.MimeType())
})
}
func TestMediaFile_Exists(t *testing.T) {
conf := config.TestConfig()
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/cat_black.jpg")
assert.Nil(t, err)
assert.NotNil(t, mediaFile)
assert.True(t, mediaFile.Exists())
mediaFile, err = NewMediaFile(conf.ExamplesPath() + "/xxz.jpg")
assert.NotNil(t, err)
assert.Nil(t, mediaFile)
}
func TestMediaFile_Copy(t *testing.T) {
conf := config.TestConfig()
thumbsPath := conf.CachePath() + "/_tmp"
os.MkdirAll(thumbsPath, os.ModePerm)
defer os.RemoveAll(thumbsPath)
mediaFile, err := NewMediaFile(conf.ExamplesPath() + "/table_white.jpg")
assert.Nil(t, err)
mediaFile.Copy(thumbsPath + "table_whitecopy.jpg")
assert.True(t, util.Exists(thumbsPath+"table_whitecopy.jpg"))
}
func TestMediaFile_Extension(t *testing.T) {