diff options
Diffstat (limited to 'qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba')
-rw-r--r-- | qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba b/qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba new file mode 100644 index 000000000000..12d14e6f2c9c --- /dev/null +++ b/qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba @@ -0,0 +1,253 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> +<script:module xmlns:script="http://openoffice.org/2000/script" script:name="io_XMarkableStream" script:language="StarBasic"> + + +'************************************************************************* +' +' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' This file is part of OpenOffice.org. +' +' OpenOffice.org is free software: you can redistribute it and/or modify +' it under the terms of the GNU Lesser General Public License version 3 +' only, as published by the Free Software Foundation. +' +' OpenOffice.org is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU Lesser General Public License version 3 for more details +' (a copy is included in the LICENSE file that accompanied this code). +' +' You should have received a copy of the GNU Lesser General Public License +' version 3 along with OpenOffice.org. If not, see +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +'************************************************************************* +'************************************************************************* + + + +' Be sure that all variables are dimensioned: +option explicit + + + +Sub RunTest() + +'************************************************************************* +' INTERFACE: +' com.sun.star.io.XMarkableStream +'************************************************************************* +On Error Goto ErrHndl + Dim bOK As Boolean + Dim Bytes(20) As Integer + Dim rBytes(0) + Dim lastRByte As Integer + Dim i As Integer + Dim oOutStream As Object + Dim oInStream As Object + Dim iMark1 As Integer + Dim iMark2 As Integer + Dim iByte As Integer + Dim iBytes As Integer + Dim iByteAfterMark As Integer + Dim iByteAfterMark1 As Integer + Dim iByteAfterMark2 As Integer + Dim iOffset As Integer + Dim sFileStr As String + + if (cObjectName = "stm.MarkableInputStream" OR cObjectName = "stm.ObjectInputStream") then + + for i = 0 to ubound(Bytes()) + Bytes(i) = i * 2 + next i + + Out.Log("First reset streams and write some bytes...") + oOutStream = getOutStream() + oOutStream.writeBytes(Bytes()) + ResetStreams() + + Test.StartMethod("createMark()") + bOK = true + Out.Log("Skip 3 bytes.") + oObj.skipBytes(3) + iMark1 = oObj.createMark() + Out.Log("Mark" + iMark1 + " was created.") + + oObj.readBytes(rBytes(), 1) + iByteAfterMark1 = rBytes(0) + Out.Log("Byte after Mark" + iMark1 + " is " + int(iByteAfterMark1)) + + Out.Log("Skip 5 bytes.") + oObj.skipBytes(5) + iMark2 = oObj.createMark() + Out.Log("Mark" + iMark2 + " was created.") + + oObj.readBytes(rBytes(), 1) + iByteAfterMark2 = rBytes(0) + Out.Log("Byte after Mark" + iMark2 + " is " + int(iByteAfterMark2)) + + Out.Log("Skip 7 bytes.") + oObj.skipBytes(7) + oObj.readBytes(rBytes(), 1) + lastRByte = rBytes(0) + + Out.Log("Jump to Mark" + iMark2) + oObj.jumpToMark(iMark2) + oObj.readBytes(rBytes(), 1) + iByteAfterMark = rBytes(0) + Out.Log("Byte after Mark" + iMark2 + " is " + int(iByteAfterMark) + ", expected " + int(iByteAfterMark2)) + bOK = bOK AND iByteAfterMark = iByteAfterMark2 + + Out.Log("Jump to Mark" + iMark1) + oObj.jumpToMark(iMark1) + oObj.readBytes(rBytes(), 1) + iByteAfterMark = rBytes(0) + Out.Log("Byte after Mark" + iMark1 + " is " + int(iByteAfterMark) + ", expected " + int(iByteAfterMark1)) + bOK = bOK AND iByteAfterMark = iByteAfterMark1 + + Test.MethodTested("createMark()", bOK) + Test.MethodTested("jumpToMark()", bOK) + + Test.StartMethod("offsetToMark()") + bOK = true + iOffset = oObj.offsetToMark(iMark2) + Out.Log("Offset from current position to Mark" + iMark2 + " is " + iOffset) + bOK = bOK AND iOffset = -5 + Test.MethodTested("offsetToMark()", bOK) + + Test.StartMethod("deleteMark()") + bOK = true + Out.Log("Delete Mark" + iMark1) + oObj.deleteMark(iMark1) + On Error goto ErrHndl1 + Out.Log("Trying to jump to deleted mark") + oObj.jumpToMark(iMark1) + Out.Log("No exception occurred. FAILED") + bOK = false + goto Cont1 + ErrHndl1: + Out.Log("Expected exception: " + error) + Cont1: + Test.MethodTested("deleteMark()", bOK) + + Test.StartMethod("jumpToFurthest()") + bOK = true + oObj.readBytes(rBytes(), 1) + iByte = rBytes(0) + Out.Log("Perform a reading operation from the current position. Byte " + int(iByte) + " was read.") + Out.Log("Changing position.") + oObj.jumpToMark(iMark2) + Out.Log("Changing position with jumpToFurthest()") + oObj.jumpToFurthest() + oObj.readBytes(rBytes(), 1) + Out.Log("From the current position byte " + int(rBytes(0)) + " was read. Expected byte is " + int(lastRByte) + 2) + bOK = bOK AND lastRByte + 2 = rBytes(0) + Test.MethodTested("jumpToFurthest()", bOK) + else + bOK = true + Out.Log("Write 3 bytes to stream") + ReDim Bytes(2) As Integer + for i = 0 to ubound(Bytes()) + Bytes(i) = i + next i + oObj.writeBytes(Bytes()) + Out.Log("Creating a Mark.") + iMark1 = oObj.createMark() + Out.Log("Write 4 bytes to stream") + ReDim Bytes(3) As Integer + for i = 0 to ubound(Bytes()) + Bytes(i) = i + 3 + next i + oObj.writeBytes(Bytes()) + Out.Log("Creating a Mark.") + iMark2 = oObj.createMark() + + iOffset = oObj.offsetToMark(iMark1) + Out.Log("Offset from current position to Mark" + iMark1 + " is " + iOffset) + bOK = bOK AND iOffset = 4 + Test.MethodTested("offsetToMark()", bOK) + + Out.Log("Write 5 bytes to stream") + ReDim Bytes(4) As Integer + for i = 0 to ubound(Bytes()) + Bytes(i) = i + 7 + next i + oObj.writeBytes(Bytes()) + + Out.Log("Testing jumpToMark()") + Out.Log("Testing deleteMark()") + bOK = true + Out.Log("Deleting Mark1") + oObj.deleteMark(iMark2) + On Error goto ErrHndl2 + Out.Log("Trying to jump to Mark1") + oObj.jumpToMark(iMark2) + Out.Log("No exception occurred - FAILED") + bOK = false + goto Cont2 + ErrHndl2: + Out.Log("Expected exception: " + error) + Cont2: + + Test.MethodTested("deleteMark()", bOK) + + bOK = true + + Out.Log("Jump to Mark0") + oObj.jumpToMark(iMark1) + Test.MethodTested("jumpToMark()", bOK) + Test.MethodTested("createMark()", bOK) + + bOK = true + Out.Log("Write 2 bytes to stream") + ReDim Bytes(1) As Integer + + for i = 0 to ubound(Bytes()) + Bytes(i) = i + 12 + next i + + oObj.writeBytes(Bytes()) + Out.Log("Changing position") + oObj.jumpToMark(iMark1) + Out.Log("Changing position with jumpToFurthest()") + oObj.jumpToFurthest() + + Out.Log("Write 2 bytes to stream") + ReDim Bytes(1) As Integer + for i = 0 to ubound(Bytes()) + Bytes(i) = i + 14 + next i + oObj.writeBytes(Bytes()) + + Out.Log("Comparing file with expected {0, 1, 2, 12, 13, 5, 6, 7, 8, 9, 10, 11, 14, 15}") + oInStream = getInStream() + iBytes = oInStream.readBytes(rBytes(), 20) + Out.Log("There are " + iBytes + " in stream:") + sFileStr = "" + int(rBytes(0)) + for i = 1 to ubound(rBytes()) + sFileStr = sFileStr + ", " + int(rBytes(i)) + next i + Out.Log("They are {" + sFileStr + "}") + bOK = bOK AND sFileStr = "0, 1, 2, 12, 13, 5, 6, 7, 8, 9, 10, 11, 14, 15" + + Test.MethodTested("jumpToFurthest()", bOK) + end if + + ResetStreams() + DisposeObj() + CreateObj() + +Exit Sub +ErrHndl: + Test.Exception() + bOK = false + resume next +End Sub +</script:module> |