package search import ( "testing" "time" "github.com/photoprism/photoprism/internal/entity" ) func TestPhotoResults_ViewerJSON(t *testing.T) { result1 := Photo{ ID: 111111, CreatedAt: time.Time{}, UpdatedAt: time.Time{}, DeletedAt: time.Time{}, TakenAt: time.Time{}, TakenAtLocal: time.Time{}, TakenSrc: "", TimeZone: "", PhotoUID: "123", PhotoPath: "", PhotoName: "", PhotoTitle: "Photo1", PhotoYear: 0, PhotoMonth: 0, PhotoCountry: "", PhotoFavorite: false, PhotoPrivate: false, PhotoLat: 0, PhotoLng: 0, PhotoAltitude: 0, PhotoIso: 0, PhotoFocalLength: 0, PhotoFNumber: 0, PhotoExposure: "", PhotoQuality: 0, PhotoResolution: 0, Merged: false, CameraID: 0, CameraModel: "", CameraMake: "", LensID: 0, LensModel: "", LensMake: "", CellID: "", PlaceID: "", PlaceLabel: "", PlaceCity: "", PlaceState: "", PlaceCountry: "", FileID: 0, FileUID: "", FilePrimary: false, FileMissing: false, FileName: "", FileHash: "", FileType: "", FileMime: "", FileWidth: 0, FileHeight: 0, FileOrientation: 0, FileAspectRatio: 0, FileColors: "", FileChroma: 0, FileLuminance: "", FileDiff: 0, Files: nil, } result2 := Photo{ ID: 22222, CreatedAt: time.Time{}, UpdatedAt: time.Time{}, DeletedAt: time.Time{}, TakenAt: time.Time{}, TakenAtLocal: time.Time{}, TakenSrc: "", TimeZone: "", PhotoUID: "456", PhotoPath: "", PhotoName: "", PhotoTitle: "Photo2", PhotoYear: 0, PhotoMonth: 0, PhotoCountry: "", PhotoFavorite: false, PhotoPrivate: false, PhotoLat: 0, PhotoLng: 0, PhotoAltitude: 0, PhotoIso: 0, PhotoFocalLength: 0, PhotoFNumber: 0, PhotoExposure: "", PhotoQuality: 0, PhotoResolution: 0, Merged: false, CameraID: 0, CameraModel: "", CameraMake: "", LensID: 0, LensModel: "", LensMake: "", CellID: "", PlaceID: "", PlaceLabel: "", PlaceCity: "", PlaceState: "", PlaceCountry: "", FileID: 0, FileUID: "", FilePrimary: false, FileMissing: false, FileName: "", FileHash: "", FileType: "", FileMime: "", FileWidth: 0, FileHeight: 0, FileOrientation: 0, FileAspectRatio: 0, FileColors: "", FileChroma: 0, FileLuminance: "", FileDiff: 0, Files: nil, } results := PhotoResults{result1, result2} b, err := results.ViewerJSON("/content", "/api/v1", "preview-token", "download-token") if err != nil { t.Fatal(err) } t.Logf("result: %s", b) } func TestGeoResults_ViewerJSON(t *testing.T) { taken := time.Date(2000, 1, 1, 1, 1, 1, 1, time.UTC).UTC().Round(time.Second) items := GeoResults{ GeoResult{ ID: "1", PhotoLat: 7.775, PhotoLng: 8.775, PhotoUID: "p1", PhotoTitle: "Title 1", PhotoDescription: "Description 1", PhotoFavorite: false, PhotoType: entity.TypeVideo, FileHash: "d2b4a5d18276f96f1b5a1bf17fd82d6fab3807f2", FileWidth: 1920, FileHeight: 1080, TakenAtLocal: taken, }, GeoResult{ ID: "2", PhotoLat: 1.775, PhotoLng: -5.775, PhotoUID: "p2", PhotoTitle: "Title 2", PhotoDescription: "Description 2", PhotoFavorite: true, PhotoType: entity.TypeImage, FileHash: "da639e836dfa9179e66c619499b0a5e592f72fc1", FileWidth: 3024, FileHeight: 3024, TakenAtLocal: taken, }, GeoResult{ ID: "3", PhotoLat: -1.775, PhotoLng: 100.775, PhotoUID: "p3", PhotoTitle: "Title 3", PhotoDescription: "Description 3", PhotoFavorite: false, PhotoType: entity.TypeRaw, FileHash: "412fe4c157a82b636efebc5bc4bc4a15c321aad1", FileWidth: 5000, FileHeight: 10000, TakenAtLocal: taken, }, } b, err := items.ViewerJSON("/content", "/api/v1", "preview-token", "download-token") if err != nil { t.Fatal(err) } t.Logf("result: %s", b) }