diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-afs.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-afs.ts
index 6998395b88f026bc6ef3611f9d1efb1956007e29..feb32446f5411bb3483e4c48a1538e1f6e669419 100644
--- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-afs.ts
+++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-afs.ts
@@ -14,24 +14,56 @@ exports.default = new Promise((resolve) => {
         var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) {
             QUnit.module(moduleName)
 
+            async function deleteFile(facade: openbis.openbis, owner: string, source: string) {
+                try {
+                    await facade.getAfsServerFacade().delete(owner, source)
+                } catch (error) {
+                    if (!error.includes("NoSuchFileException")) {
+                        throw error
+                    }
+                }
+            }
+
             function assertFileEquals(c: common.CommonClass, actualFile: openbis.File, expectedPath: string, expectedDirectory: boolean) {
                 c.assertEqual(actualFile.getPath(), expectedPath, "File path")
                 c.assertEqual(actualFile.getDirectory(), expectedDirectory, "File directory")
             }
 
+            async function assertFileExists(c: common.CommonClass, owner: string, source: string) {
+                try {
+                    await facade.getAfsServerFacade().read(owner, source, 0, 0)
+                    c.assertTrue(true)
+                } catch (error) {
+                    c.fail()
+                }
+            }
+
+            async function assertFileDoesNotExist(c: common.CommonClass, owner: string, source: string) {
+                try {
+                    await facade.getAfsServerFacade().read(owner, source, 0, 0)
+                    c.fail()
+                } catch (error) {
+                    c.assertTrue(error.includes("NoSuchFileException"))
+                }
+            }
+
             QUnit.test("list()", async function (assert) {
+                const testFolder = "test-list"
+
                 try {
                     var c = new common(assert, dtos)
                     c.start()
 
                     await c.login(facade)
 
-                    await facade.getAfsServerFacade().write("test-list", "test-file-1", 0, "test-content-1")
-                    await facade.getAfsServerFacade().write("test-list/test-folder-1", "test-file-2", 0, "test-content-2")
-                    await facade.getAfsServerFacade().write("test-list/test-folder-1", "test-file-3", 0, "test-content-3")
-                    await facade.getAfsServerFacade().write("test-list/test-folder-2", "test-file-4", 0, "test-content-4")
+                    await deleteFile(facade, testFolder, "")
+
+                    await facade.getAfsServerFacade().write(testFolder, "test-file-1", 0, "test-content-1")
+                    await facade.getAfsServerFacade().write(testFolder + "/test-folder-1", "test-file-2", 0, "test-content-2")
+                    await facade.getAfsServerFacade().write(testFolder + "/test-folder-1", "test-file-3", 0, "test-content-3")
+                    await facade.getAfsServerFacade().write(testFolder + "/test-folder-2", "test-file-4", 0, "test-content-4")
 
-                    var list = await facade.getAfsServerFacade().list("test-list", "", true)
+                    var list = await facade.getAfsServerFacade().list(testFolder, "", true)
 
                     list.sort((file1, file2) => {
                         return file1.getPath().localeCompare(file2.getPath())
@@ -53,18 +85,23 @@ exports.default = new Promise((resolve) => {
                 }
             })
 
-            QUnit.test("read()", async function (assert) {
+            QUnit.test("read() / write()", async function (assert) {
+                const testFolder = "test-read-write"
+                const testFile = "test-file"
+                const testContent = "test-content"
+
                 try {
                     var c = new common(assert, dtos)
                     c.start()
 
                     await c.login(facade)
 
-                    const originalContent = "test-content"
-                    await facade.getAfsServerFacade().write("test-read", "test-file", 0, originalContent)
+                    await deleteFile(facade, testFolder, "")
 
-                    var readContent = await facade.getAfsServerFacade().read("test-read", "test-file", 0, originalContent.length)
-                    c.assertEqual(await readContent.text(), originalContent)
+                    await facade.getAfsServerFacade().write(testFolder, testFile, 0, testContent)
+
+                    var content = await facade.getAfsServerFacade().read(testFolder, testFile, 0, testContent.length)
+                    c.assertEqual(await content.text(), testContent)
 
                     c.finish()
                 } catch (error) {
@@ -73,6 +110,116 @@ exports.default = new Promise((resolve) => {
                 }
             })
 
+            QUnit.test("delete()", async function (assert) {
+                const testFolder = "test-delete"
+                const testFile = "test-file"
+                const testContent = "test-content"
+
+                try {
+                    var c = new common(assert, dtos)
+                    c.start()
+
+                    await c.login(facade)
+
+                    await deleteFile(facade, testFolder, "")
+
+                    await facade.getAfsServerFacade().write(testFolder, testFile, 0, testContent)
+
+                    var content = await facade.getAfsServerFacade().read(testFolder, testFile, 0, testContent.length)
+                    c.assertEqual(await content.text(), testContent)
+
+                    await facade.getAfsServerFacade().delete(testFolder, testFile)
+
+                    await assertFileDoesNotExist(c, testFolder, testFile)
+
+                    c.finish()
+                } catch (error) {
+                    c.fail(error)
+                    c.finish()
+                }
+            })
+
+            QUnit.test("copy()", async function (assert) {
+                const testFolder = "test-copy"
+                const testFileToCopy = "test-file-to-copy"
+                const testFileCopied = "test-file-copied"
+                const testContent = "test-content"
+
+                try {
+                    var c = new common(assert, dtos)
+                    c.start()
+
+                    await c.login(facade)
+
+                    await deleteFile(facade, testFolder, "")
+
+                    await facade.getAfsServerFacade().write(testFolder, testFileToCopy, 0, testContent)
+                    await facade.getAfsServerFacade().copy(testFolder, testFileToCopy, testFolder, testFileCopied)
+
+                    var contentToCopy = await facade.getAfsServerFacade().read(testFolder, testFileToCopy, 0, testContent.length)
+                    c.assertEqual(await contentToCopy.text(), testContent)
+
+                    var contentCopied = await facade.getAfsServerFacade().read(testFolder, testFileCopied, 0, testContent.length)
+                    c.assertEqual(await contentCopied.text(), testContent)
+
+                    c.finish()
+                } catch (error) {
+                    c.fail(error)
+                    c.finish()
+                }
+            })
+
+            QUnit.test("move()", async function (assert) {
+                const testFolder = "test-move"
+                const testFileToMove = "test-file-to-move"
+                const testFileMoved = "test-file-moved"
+                const testContent = "test-content"
+
+                try {
+                    var c = new common(assert, dtos)
+                    c.start()
+
+                    await c.login(facade)
+
+                    await deleteFile(facade, testFolder, "")
+
+                    await facade.getAfsServerFacade().write(testFolder, testFileToMove, 0, testContent)
+                    await facade.getAfsServerFacade().move(testFolder, testFileToMove, testFolder, testFileMoved)
+
+                    await assertFileDoesNotExist(c, testFolder, testFileToMove)
+
+                    var content = await facade.getAfsServerFacade().read(testFolder, testFileMoved, 0, testContent.length)
+                    c.assertEqual(await content.text(), testContent)
+
+                    c.finish()
+                } catch (error) {
+                    c.fail(error)
+                    c.finish()
+                }
+            })
+
+            QUnit.test("create()", async function (assert) {
+                const testFolder = "test-create"
+                const testFile = "test-file"
+
+                try {
+                    var c = new common(assert, dtos)
+                    c.start()
+
+                    await c.login(facade)
+
+                    await deleteFile(facade, testFolder, "")
+                    await assertFileDoesNotExist(c, testFolder, testFile)
+
+                    await facade.getAfsServerFacade().create(testFolder, testFile, false)
+                    await assertFileExists(c, testFolder, testFile)
+
+                    c.finish()
+                } catch (error) {
+                    c.fail(error)
+                    c.finish()
+                }
+            })
         }
 
         resolve(function () {