mirror of
https://github.com/henrybear327/Proton-API-Bridge.git
synced 2026-01-19 04:28:31 -05:00
455 lines
22 KiB
Go
455 lines
22 KiB
Go
package proton_api_bridge
|
|
|
|
import (
|
|
"log"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/henrybear327/go-proton-api"
|
|
)
|
|
|
|
func TestCreateAndDeleteFolder(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a folder tmp at root")
|
|
createFolder(t, ctx, protonDrive, "", "tmp")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/tmp"})
|
|
|
|
log.Println("Delete folder tmp")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "tmp", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestCreateAndCreateAndDeleteFolder(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a folder tmp at root")
|
|
createFolder(t, ctx, protonDrive, "", "tmp")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/tmp"})
|
|
|
|
log.Println("Create a folder tmp at root again")
|
|
createFolderExpectError(t, ctx, protonDrive, "", "tmp", proton.ErrFolderNameExist)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/tmp"})
|
|
|
|
log.Println("Delete folder tmp")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "tmp", true, false)
|
|
}
|
|
|
|
func TestUploadAndDownloadAndDeleteAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, true)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Upload integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 0)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
|
|
log.Println("Delete file integrationTestImage.png")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestUploadAndUploadAndDownloadAndDeleteAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, true)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Upload integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 0)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
|
|
log.Println("Upload a new revision to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
|
|
log.Println("Delete file integrationTestImage.png")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestPartialUploadAndReuploadFailedAndDownloadAndDeleteAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png again")
|
|
uploadFileByFilepathWithError(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1, ErrDraftExists)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
// FIXME: delete file with draft revision only
|
|
// log.Println("Delete file integrationTestImage.png")
|
|
// deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, true)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestPartialUploadAndReuploadAndDownloadAndDeleteAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, true)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png again")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new revision and don't commit integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", 2)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new revision and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Delete file integrationTestImage.png")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestUploadAndDownloadThreeRevisionsAndDeleteAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, true)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a new revision and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Create a new revision 2 and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Create a new revision 3 and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 3, 1, 0, 2)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Delete file integrationTestImage.png")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestPartialUploadAndReuploadAndDownloadTwiceAndDeleteAFileSmallBig(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, true)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 1)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new draft revision of integrationTestImage.png again")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 1)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new revision and don't commit integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 2)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
log.Println("Create a new revision and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Create a new revision 2 and don't commit integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 2)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 1, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
// testing the reduce new revision size
|
|
log.Println("Create a new revision 2 and commit it to replace integrationTestImage.png")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
log.Println("Delete file integrationTestImage.png")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
/* FIXME: Looks like this is a bug on Proton Drive API */
|
|
// func TestPartialUploadAndReuploadAndDownloadTwiceAndDeleteAFileBigSmall(t *testing.T) {
|
|
// ctx, cancel, protonDrive := setup(t, true)
|
|
// t.Cleanup(func() {
|
|
// defer cancel()
|
|
// defer tearDown(t, ctx, protonDrive)
|
|
// })
|
|
|
|
// log.Println("Create a new draft revision of integrationTestImage.png")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1)
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
// log.Println("Create a new draft revision of integrationTestImage.png again")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 1)
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
// log.Println("Create a new revision and don't commit integrationTestImage.png")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage2.png", 2)
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 0, 1, 0)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
|
|
// log.Println("Create a new revision and commit it to replace integrationTestImage.png")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 0) /* Add a revision */
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
// downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
// log.Println("Create a new revision 2 and don't commit integrationTestImage.png")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/integrationTestImage.png", 2)
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 1, 0)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
// // testing the reduce new revision size
|
|
// log.Println("Create a new revision 2 and commit it to replace integrationTestImage.png")
|
|
// uploadFileByFilepath(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", 0) /* Add a revision */
|
|
// checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
// downloadFile(t, ctx, protonDrive, "", "integrationTestImage.png", "testcase/empty.txt", "")
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{"/integrationTestImage.png"})
|
|
|
|
// log.Println("Delete file integrationTestImage.png")
|
|
// deleteBySearchingFromRoot(t, ctx, protonDrive, "integrationTestImage.png", false, false)
|
|
// checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
// }
|
|
|
|
func TestUploadAndDeleteAnEmptyFileAtRoot(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Upload empty.txt")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "empty.txt", "testcase/empty.txt", 0)
|
|
checkRevisions(protonDrive, ctx, t, "empty.txt", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/empty.txt"})
|
|
downloadFile(t, ctx, protonDrive, "", "empty.txt", "testcase/empty.txt", "")
|
|
|
|
log.Println("Upload a new revision to replace empty.txt")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "", "empty.txt", "testcase/empty.txt", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "empty.txt", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "", "empty.txt", "testcase/empty.txt", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/empty.txt"})
|
|
|
|
log.Println("Delete file empty.txt")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "empty.txt", false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestUploadAndDownloadAndDeleteAFileAtAFolderOneLevelFromRoot(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create folder level1")
|
|
createFolder(t, ctx, protonDrive, "", "level1")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/level1"})
|
|
|
|
log.Println("Upload integrationTestImage.png to level1")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "level1", "integrationTestImage.png", "testcase/integrationTestImage.png", 0)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/level1", "/level1/integrationTestImage.png"})
|
|
downloadFile(t, ctx, protonDrive, "level1", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
|
|
log.Println("Upload a new revision to replace integrationTestImage.png in level1")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "level1", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "level1", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
|
|
log.Println("Delete folder level1")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "level1", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestCreateAndMoveAndDeleteFolder(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a folder src at root")
|
|
createFolder(t, ctx, protonDrive, "", "src")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src"})
|
|
|
|
log.Println("Create a folder dst at root")
|
|
createFolder(t, ctx, protonDrive, "", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/dst"})
|
|
|
|
log.Println("Move folder src to under folder dst")
|
|
moveFolder(t, ctx, protonDrive, "src", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/dst", "/dst/src"})
|
|
|
|
log.Println("Delete folder dst")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "dst", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestCreateAndMoveAndDeleteFolderWithAFile(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a folder src at root")
|
|
createFolder(t, ctx, protonDrive, "", "src")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src"})
|
|
|
|
log.Println("Upload integrationTestImage.png to src")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage.png", 0)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png"})
|
|
downloadFile(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
|
|
log.Println("Create a folder dst at root")
|
|
createFolder(t, ctx, protonDrive, "", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png", "/dst"})
|
|
|
|
log.Println("Upload a new revision to replace integrationTestImage.png in src")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png", "/dst"})
|
|
|
|
log.Println("Move folder src to under folder dst")
|
|
moveFolder(t, ctx, protonDrive, "src", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/dst", "/dst/src", "/dst/src/integrationTestImage.png"})
|
|
|
|
log.Println("Delete folder dst")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "dst", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestCreateAndMoveAndDeleteAFileOneLevelFromRoot(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
log.Println("Create a folder src at root")
|
|
createFolder(t, ctx, protonDrive, "", "src")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src"})
|
|
|
|
log.Println("Upload integrationTestImage.png to src")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage.png", 0)
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png"})
|
|
downloadFile(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage.png", "")
|
|
|
|
log.Println("Create a folder dst at root")
|
|
createFolder(t, ctx, protonDrive, "", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png", "/dst"})
|
|
|
|
log.Println("Upload a new revision to replace integrationTestImage.png in src")
|
|
uploadFileByFilepath(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage2.png", 0) /* Add a revision */
|
|
checkRevisions(protonDrive, ctx, t, "integrationTestImage.png", 2, 1, 0, 1)
|
|
downloadFile(t, ctx, protonDrive, "src", "integrationTestImage.png", "testcase/integrationTestImage2.png", "")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/src/integrationTestImage.png", "/dst"})
|
|
|
|
log.Println("Move file integrationTestImage.png to under folder dst")
|
|
moveFile(t, ctx, protonDrive, "integrationTestImage.png", "dst")
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src", "/dst", "/dst/integrationTestImage.png"})
|
|
|
|
log.Println("Delete folder dst")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "dst", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/src"})
|
|
|
|
log.Println("Delete folder src")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, "src", true, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|
|
|
|
func TestUploadLargeNumberOfBlocks(t *testing.T) {
|
|
ctx, cancel, protonDrive := setup(t, false)
|
|
t.Cleanup(func() {
|
|
defer cancel()
|
|
defer tearDown(t, ctx, protonDrive)
|
|
})
|
|
|
|
// in order to simulate uploading large files
|
|
// we use 1KB for the UPLOAD_BLOCK_SIZE
|
|
// so a 1000KB file will generate 1000 blocks to test the uploading mechanism
|
|
// and also testing the downloading mechanism
|
|
ORIGINAL_UPLOAD_BLOCK_SIZE := UPLOAD_BLOCK_SIZE
|
|
defer func() {
|
|
UPLOAD_BLOCK_SIZE = ORIGINAL_UPLOAD_BLOCK_SIZE
|
|
}()
|
|
blocks := 100
|
|
UPLOAD_BLOCK_SIZE = 10
|
|
|
|
filename := "fileContent.txt"
|
|
file1Content := RandomString(UPLOAD_BLOCK_SIZE*blocks + 1) // intentionally make the data not aligned to a block
|
|
file1ContentReader := strings.NewReader(file1Content)
|
|
file2Content := RandomString(UPLOAD_BLOCK_SIZE*blocks + 5)
|
|
file2ContentReader := strings.NewReader(file2Content)
|
|
|
|
log.Println("Upload fileContent.txt")
|
|
uploadFileByReader(t, ctx, protonDrive, "", filename, file1ContentReader, 0)
|
|
checkRevisions(protonDrive, ctx, t, filename, 1, 1, 0, 0)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/" + filename})
|
|
downloadFile(t, ctx, protonDrive, "", filename, "", file1Content)
|
|
|
|
log.Println("Upload a new revision to replace fileContent.txt")
|
|
uploadFileByReader(t, ctx, protonDrive, "", filename, file2ContentReader, 0)
|
|
checkRevisions(protonDrive, ctx, t, filename, 2, 1, 0, 1)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{"/" + filename})
|
|
downloadFile(t, ctx, protonDrive, "", filename, "", file2Content)
|
|
|
|
log.Println("Delete file fileContent.txt")
|
|
deleteBySearchingFromRoot(t, ctx, protonDrive, filename, false, false)
|
|
checkActiveFileListing(t, ctx, protonDrive, []string{})
|
|
}
|