'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (the ' "License"); you may not use this file except in compliance ' with the License. You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the License. ' '************************************************************************* ' Be sure that all variables are dimensioned: option explicit Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.ucb.XSimpleFileAccess '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim testDir As String Dim cSubFolder As String Dim cFile1 As String Dim cFile2 As String Dim cFile3 As String Dim oFC As Variant Dim oDT As Object Dim oOS As Object Dim oIS As Object Dim cFileName As String Dim cCrDate As String Dim cType As String Dim i As Integer Dim k As Integer Dim oIH As Object Dim Bytes(5) As Integer for i = 0 to 5 Bytes(i) = i next i testDir = utils.Path2URL(cTestDocsDir + "XSimpleFileAccessBASIC") Out.Log("Test directory is '" + testDir + "'") cSubFolder = utils.getTempFileURL( + "/SubFolder") cFile1 = utils.Path2URL(testDir + "/File1.txt") cFile2 = utils.Path2URL(testDir + "/File2.txt") cFile3 = utils.Path2URL(cSubFolder + "/File3.txt") if FileExists(cFile3) then kill(cFile3) if (FileExists(cSubFolder)) then rmDir(cSubFolder) Out.Log("Test that files are in place...") bOK = true bOK = bOK AND FileExists(cFile1) bOK = bOK AND FileExists(cFile2) if (NOT bOK) then Out.Log("Can't find '" + cFile1 + "' and/or '" + cFile2 + "'") Exit Sub end if Test.StartMethod("createFolder()") bOK = true Out.Log("Creating subfolder '" + cSubFolder + "'") oObj.createFolder(cSubFolder) bOK = bOK AND FileExists(cSubFolder) Test.MethodTested("createFolder()", bOK) Test.StartMethod("isFolder()") bOK = true bOK = bOK AND oObj.isFolder(cSubFolder) bOK = bOK AND NOT oObj.isFolder(cFile1) Test.MethodTested("isFolder()", bOK) Test.StartMethod("getFolderContents()") bOK = true Out.Log("Getting content of folder '" + utils.Path2URL(cTestDocsDir) + "'") oFC = oObj.getFolderContents(utils.Path2URL(cTestDocsDir), False) ' Getting files amount (without folders) cFileName = Dir(utils.Path2URL(cTestDocsDir)) i = 0 Out.Log("File list :") while (cFileName <> "") Out.Log(" " + cFileName) i = i + 1 cFileName = Dir() wend bOK = bOK AND ubound(oFC) = i - 1 if (bOK) then for k = 0 to i - 1 bOK = bOK AND FileExists(oFC(k)) next k else Out.Log("Amount of files in list is wrong: " + (ubound(oFC) + 1) + "," + i) end if Test.MethodTested("getFolderContents()", bOK) Test.StartMethod("move()") bOK = true oObj.move(cFile2, cFile3) bOK = bOK AND FileExists(cFile3) AND NOT FileExists(cFile2) Test.MethodTested("move()", bOK) Test.StartMethod("copy()") bOK = true oObj.copy(cFile3, cFile2) bOK = bOK AND FileExists(cFile3) AND FileExists(cFile2) Test.MethodTested("copy()", bOK) Test.StartMethod("openFileWrite()") bOK = true Test.StartMethod("kill()") bOK = true oObj.kill(cFile3) bOK = bOK AND NOT FileExists(cFile3) Test.MethodTested("kill()", bOK) Test.StartMethod("exists()") bOK = true bOK = bOK AND oObj.exists(cFile1) = FileExists(cFile1) AND oObj.exists(cFile3) = FileExists(cFile3) Test.MethodTested("exists()", bOK) Out.Log("creating a new file '" + cFile3 + "'") oOS = oObj.openFileWrite(cFile3) bOK = bOK AND NOT isNULL(oOS) bOK = bOK AND FileExists(cFile3) if (bOK) then oOS.writeBytes(Bytes()) oOS.closeOutput() end if Test.MethodTested("openFileWrite()", bOK) Test.StartMethod("getSize()") bOK = true Out.Log("Actual: " + oObj.getSize(cFile3) + " Expected: " + (ubound(Bytes()) + 1)) bOK = bOK AND oObj.getSize(cFile3) = (ubound(Bytes()) + 1) Test.MethodTested("getSize()", bOK) Test.StartMethod("setReadOnly()") Test.StartMethod("isReadOnly()") bOK = true oObj.setReadOnly(cSubFolder, true) bOK = bOK AND oObj.isReadOnly(cSubFolder) oObj.setReadOnly(cSubFolder, false) bOK = bOK AND NOT oObj.isReadOnly(cSubFolder) Test.MethodTested("isReadOnly()", bOK) Test.MethodTested("setReadOnly()", bOK) Test.StartMethod("getContentType()") bOK = true cType = oObj.getContentType(cFile3) Out.Log("Content Type is '" + cType + "'") Test.MethodTested("getContentType()", bOK) Test.StartMethod("getDateTimeModified()") bOK = true oDT = oObj.getDateTimeModified(cFile3) cCrDate = Date() bOK = bOK AND Day(cCrDate) = oDT.Day bOK = bOK AND Month(cCrDate) = oDT.Month bOK = bOK AND Year(cCrDate) = oDT.Year if (NOT bOK) then Out.Log("FileDateTime returned '" + cCrDate + "'") Out.Log("getDateTimeModified returned '" + oDT.Day + "/" _ + oDT.Month + "/" _ + oDT.Year + " " _ + oDT.Hours + ":" _ + oDT.Minutes + ":" _ + oDT.Seconds + "'") end if Test.MethodTested("getDateTimeModified()", bOK) Test.StartMethod("openFileRead()") bOK = true oIS = oObj.openFileRead(cFile3) bOK = bOK AND NOT isNULL(oIS) Dim rData(10) As Integer Dim nRb As Integer nRb = oIS.readBytes(rData(), 100) bOK = bOK AND nRb = ubound(Bytes()) + 1 if (NOT bOK) then Out.Log("Amount of read files is wrong") else for i = 0 to nRb - 1 bOK = bOK AND Bytes(i) = rData(i) next i end if oIS.closeInput() Test.MethodTested("openFileRead()", bOK) Test.StartMethod("openFileReadWrite()") bOK = true oIS = oObj.openFileReadWrite(cFile3) bOK = bOK AND hasUnoInterfaces(oIS, "com.sun.star.io.XStream") Test.MethodTested("openFileReadWrite()", bOK) Test.StartMethod("setInteractionHandler()") bOK = true oIH = createUNOInterface("com.sun.star.sdb.InteractionHandler") oObj.setInteractionHandler(oIH) Test.MethodTested("setInteractionHandler()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub