'encoding UTF-8 Do not remove or change this line! '************************************************************************* ' ' 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. ' '************************************************************************* '* '* short description : '* '\****************************************************************** dim cActFilter as string ' used filter for save Const cActFilterExt = ".sxm" ' used filter for save (extension) sub m_101_ cActFilter = gMathFilter Printlog Chr(13) + "-- File Menu --" ' tFileNew ' Call Autopilot 'in Inc\desktop\autopilo.inc ' Call tFileClose Call tFileSave Call tFileSaveAs Call tFilePassword ' check which filtertypes enable saving with password Call tFileOpen_1 ' just load all previous saved files in this test Call tFileOpen_2 ' load testfiles for filters gApplication = "WRITER" Call tToolsCatalog ' code is in m_105_.inc, but i want to print he result, so i needed to moove teh call to here gApplication = "MATH" Call tFilePrint ' writer dokument with math ole's ' Call tFileSaveAll ' Call tFileNewLoad ' Call tFileVersions ' tDocumentAsEmail ' Call tFileProperties ' Call tFilePrintersetting ' Call tFileEnd end sub testcase tFileSave dim sFileName as string ' test document & new created doc dim sFormula as string ' container for formula to create document with dim Exlist(30) as string dim sTemp as string dim i,x,y as integer '/// if not exists : gOfficePath + '\\user\\math\\level1\\', create it ///' if app.dir (ConvertPath ( gOfficePath + "user/work/math") ) = "" then app.mkdir ConvertPath ( gOfficePath + "user/work/math") endif if app.dir (ConvertPath ( gOfficePath + "user/work/math/level1")) = "" then app.mkdir ConvertPath ( gOfficePath + "user/work/math/level1") endif sFileName = ConvertPath ( gOfficePath + "user/work/math/level1") Printlog "'/// deleting all files in output directory: \\user\\work\\math\\level1\\ ///'" if gSamePC = TRUE then ' delete export directory GetFileList ( sFileName, "*.*", Exlist() ) if KillFileList ( Exlist() ) <> TRUE then Warnlog "Couldn't delete all Files in Output-Export-Directory, the followings are still there:" for i=1 to ListCount ( Exlist() ) printlog " <> " + Exlist(i) next i end if end if ' should be default format?! '/// take formulatext from loaded file -> language independant! ///' sFormula = TBOloadFormulaFromFile() if sFormula = "gehtnicht" then qaErrorlog "can not make document writeable - exiting test" goto endsub endif hNewDocument '/// write formula down ///' SchreibenInMathdok (sFormula) sleep 3 hFileSaveAsKill (sFileName + "filesave.sxm") ' Get used filter name FileSaveAs sleep 2 Kontext "SpeichernDlg" sTemp = Dateityp.GetSelText SpeichernDlg.Cancel '/// file save with default filter as: "\\user\\work\\math\\level1\\filesave...." ///' printlog " saved with filter: "+ sTemp Call hCloseDocument endcase testcase tFileSaveAs dim sFileName as string ' test document & new created doc dim sFormula as string ' container for formula to create document with dim sTemp as string dim sFilter (50) as string dim i,x,y as integer dim bAlienWarning as boolean sFilter (0) = 0 ' initalisize ;-)... '/// take formulatext from loaded file -> language independant! ///' sFormula = TBOloadFormulaFromFile if sFormula = "gehtnicht" then qaErrorlog "can not make document writeable - exiting test" goto endsub endif hNewDocument '/// write formula down ///' SchreibenInMathdok sFormula sleep 3 '/// start loop 3 times for: ///' '///+ StarOffice 6.0 Formula ///' '///+ StarMath 5.0 ///' '///+ MathML 1.01 ///' '/// to be language independant, select first, second last and last filter from list -> but try to check the names :-) ///' ' to use the helper fileSaveAs functions i get all available filters... ListAppend(sFilter(), "StarOffice XML (Math)") ListAppend(sFilter(), "math8") bAlienWarning = isCheckedWarnAlienFormat if (NOT bAlienWarning) then qaErrorLog "Somebody disabled 'Alien Warnings' in the options, will enable it again now." isCheckedWarnAlienFormat(true) endif for i = 1 to (ListCount(sFilter())) sFileName = convertpath( gOfficePath + "user/work/math/level1/fsas_"+(i)) sleep 1 printlog "going to save: '"+sFileName+"'" sleep 1 '----- try to WorkAround focus change --------- kontext "DocumentMath" DocumentMath.mouseDown 10,10 DocumentMath.mouseUp 10,10 '----------------------------------------------- hFileSaveAsWithFilterKill (sFileName, sFilter(i), TRUE ) '/// file save with filter as: "output\\math\\fsas_[0,1,2]" ///' ' Alien Warning has not to appear on the first one: Default format .odf Kontext "AlienWarning" if AlienWarning.exists(5) then if (1=i) then warnlog "- AlienWarning on default file format! Not OK!" else printlog "- AlienWarning" endif AlienWarning.ok endif printlog " saved with filter ("+i+"/2): "+ sFilter(i) next i '/// TODO: small check, if correct filter was used! ///' sleep 3 fileclose sleep 3 kontext "active" if active.exists then printlog "active about informationloss... :-) that's OK: '"+active.GetText+"'" active.yes endif endcase testcase tFileOpen_1 '/// a small loop, to load all files previous saved ///' dim sFileName as string ' test document & new created doc dim sFormula as string ' container for formula to create document with dim sFileList (30) as string dim sTemp as string dim i,x,y as integer '///load documents from "output\\math\\" /// sFileName = ConvertPath ( gOfficePath + "user/work/math/level1/" ) GetFileList ( sFileName, "*.*", sFileList() ) x = ListCount ( sFileList() ) for i = 1 to x printlog "("+i+"/"+x+"): "+sFileList(i) hFileOpen ( sFileList(i) ) Sleep 2 If hIsNamedDocLoaded (sFileList(i)) Then printlog " used filter: " + hGetUsedFilter() else warnlog "document didn't get loaded" endif hCloseDocument sleep 2 next i endcase testcase tFileOpen_2 '/// a small loop, to load a testfile for every non SO filter files ///' '/// files are taken from: http://www.dessci.com/en/products/mathtype/win/samples/ ///' dim sFileName as string ' test document & new created doc dim sFormula as string ' container for formula to create document with dim sFileList (30) as string dim sTemp as string dim i,x,y as integer '///load documents from "input\\math\\level1\\filter\\" /// sFileName = ConvertPath ( gTesttoolPath + "math/optional/input/level1/filter/" ) GetFileList ( sFileName, "*.*", sFileList() ) x = ListCount ( sFileList() ) for i = 1 to x printlog "("+i+"/"+x+"): "+sFileList(i) hFileOpen ( sFileList(i) ) Sleep 20 If hIsNamedDocLoaded (sFileList(i)) Then printlog " used filter: " + hGetUsedFilter() else warnlog "document didn't get loaded" endif hCloseDocument next i endcase testcase tFilePassword dim i,x as integer dim sTemp as string const cFilterCount = 3 dim sFilterName as string dim sFilter as string dim sFilterExt() as string Printlog "'///- Check each Filter if password is possible ///" ' make sure saving in latest math filter works, checking global filtername and if necessary change it sFilter = hGetUIFiltername("math8") sFilterExt() = hGetFilternameExtension("math8") sFilterName = sFilter + " (." + sFilterExt(0) + ")" printlog sFilterName printlog gMathFilter gMathFilter = sFilterName hNewDocument SchreibenInMathdok "a over b" FileSaveAs Kontext "SpeichernDlg" '/// check amount of available filters (6) ///' x = Dateityp.GetItemCount if x <> cFilterCount then warnlog " The Filter count is wrong! Have to be ("+cFilterCount+"), but are: "+x ' Check: (1): Open Office Formula (.oof) ' Check: (2): MathML 1.01 (.mml) ' Check: (6): StarOffice 6.0/7 Formula (.sxm) '/// check if any other then gMathFilter is password able; and if gMathFilter is password able ///' for i = 1 to x Dateityp.Select i sleep (5) sTemp = Dateityp.GetSelText printlog " Check: (" + i + "/" + x +"): " +sTemp if Passwort.isEnabled then if NOT((instr(sTemp,gMathFilter) = 1)OR(instr(sTemp," (.sxm)") > 1)) then if (4=i) then '#i112895# warnlog "(" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Enabled" else warnlog "(" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Enabled" endif endif else if (instr(sTemp,gMathFilter) = 1)OR(instr(sTemp," (.sxm)") > 1) then warnlog "(" + i + "/" + x +"): '"+sTemp+"' Password Checkbox: Disabled" endif endif next i SpeichernDlg.Cancel hCloseDocument endcase function TBOloadFormulaFromFile () as string '/// load an existing document: "input\\math\\101_1.sxm" /// '///+ take formula out of command window /// '///+ save it into a variable /// '/// close dokument /// Call hFileOpenLocally ( ConvertPath(gTesttoolPath + "math/optional/input/101_1.sxm") ) kontext "dokumentwriter" try EditSelectAllMath EditCopy TBOloadFormulaFromFile = GetClipboardText catch TBOloadFormulaFromFile = "gehtnicht" endcatch ' printlog "-----TBOloadFormulaFromFile: will return: '"+TBOloadFormulaFromFile+"'" hCloseDocument end function testcase tFilePrint '/// I create a writer document and insert the object formula from the standard testfile: ///' '///+ There will be a graphic, how it should look like and the object///' '///+ AND there was the formula already inserted as object!///' '///+ in different languages...///' '/// Document is called: "input\\math\\101_2.sxw /// '///+ Image is available at: "input\\math\\101_2.gif///' dim sFormula as string ' container for formula to create document with dim sFileName as string dim bChecked as boolean dim sTemp as string dim sTemp1 as string dim bLanguage as boolean dim bString as boolean dim iLanguage as integer dim sFoundLanguage as string dim bError as boolean dim iTimeOut as integer printlog "- File Print" bError = FALSE sFormula = TBOloadFormulaFromFile() if sFormula = "gehtnicht" then qaErrorlog "can not make document writeable - exiting test" goto endsub endif Call hFileOpenLocally ( ConvertPath(gTesttoolPath + "math/optional/input/101_2.sxw") ) '/// find the translated formula in the document and get the language it belongs to ///' '///+ compare it to the officelanguage ///' kontext "DocumentWriter" DocumentWriter.TypeKeys "" bLanguage = hFindeImDokument("{"+ iSprache +"}") kontext "DocumentWriter" DocumentWriter.TypeKeys "" hFindeImDokument ("\{"+ iSprache +"\}.*\{"+ iSprache +"\}", TRUE, TRUE) try editcopy catch printlog "editcopy failed." setClipboard("") endcatch sFoundLanguage = GetClipboardText If NOT bLanguage then qaErrorLog "This Language (" + iSprache + ") is not supported in this test right now! Add the following string to the document: " +ConvertPath(gTesttoolPath + "math/optional/input/101_2.sxw") else kontext "DocumentWriter" DocumentWriter.TypeKeys "" if bError then DocumentWriter.TypeKeys "" endif DocumentWriter.TypeKeys "" editcopy stemp = GetClipboardText if (left(sTemp,1) = "{") then ' language number is monadic sTemp = right(sTemp,1) endif iLanguage = val(sTemp) if (iSprache <> iLanguage) then warnlog "hmm, smth is wrong :-(; found translated text for language: "+val(GetClipboardText) + ", but looked for: "+iSprache endif endif kontext "DocumentWriter" DocumentWriter.TypeKeys "" bString = hFindeImDokument (sFormula) If NOT bString then if bLanguage then warnlog "The translation changed! If It is a ProductPatch, then this is a bug; else update the document by calling TBO.:" +ConvertPath(gTesttoolPath + "math/optional/input/101_2.sxw") endif printlog sFormula endif sleep 1 try editcopy catch If (bString AND bLanguage) then warnlog "Edit-Copy failed." endif endcatch printlog "found.......................... '"+GetClipboardText+"'" printlog "looked for..................... '"+sFormula+"'" printlog "found language............. '"+sFoundLanguage+"'" if (GetClipboardText <> sFormula) then If (bString AND bLanguage) then warnlog "difference to reference!" endif else printlog "FOUND entry for the language!: '"+ iLanguage +"'" endif kontext "DocumentWriter" DocumentWriter.TypeKeys "" DocumentWriter.TypeKeys gPCname + " " + iSprache + " " + gLanguage + " " + gPlatgroup + " " + gPlatform + "" '/// Insert the loaded and automatical 'translated' formulatext in writer as text ///' hFindeImDokument ("TBO_INSERTED") kontext "DocumentWriter" DocumentWriter.TypeKeys sFormula DocumentWriter.TypeKeys "" sleep (2) '/// call: Insert->Object->Formula ///' InsertObjectFormulaWriter '/// write formula down ///' SchreibenInMathdok (sFormula) sleep 3 '/// exit formula object ///' kontext "DokumentWriter" 'Commands'CommandsMath'DocumentMath don't work :-[ DokumentWriter.MouseDown 99,99 DokumentWriter.MouseUp 99,99 DokumentWriter.MouseDown 99,99 DokumentWriter.MouseUp 99,99 sFileName = convertpath( gOfficePath + "user/work/math/level1/ftc_a.odt") if (FileExists(sFileName)) then '/// goto end of page; insert page break ///' kontext "DokumentWriter" DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 '/// insert frame ///' try InsertFrame catch printlog "Catched because of failed mouse action, try to leafe math in oposite corner" kontext "DokumentWriter" DokumentWriter.MouseDown 1,1 ' TBO: i don't like to do it this way, DokumentWriter.MouseUp 1,1 ' but using .TypeKeys doesn't work DokumentWriter.MouseDown 1,1 ' that way i expected in math via ole :-[ DokumentWriter.MouseUp 1,1 kontext "DokumentWriter" DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 DokumentWriter.typeKeys "" sleep 1 '/// insert frame ///' InsertFrame endcatch sleep 1 Kontext active.setPage TabType kontext "TabType" RelativeWidth.check RelativeHeight.check Width.setText "100" Height.setText "98" RelativeWidth.unCheck RelativeHeight.unCheck AutoHoehe.Check TabType.OK kontext "DokumentWriter" sleep 1 DokumentWriter.typeKeys "" sleep 1 '/// load file from testcase 'tToolsCatalog' to get a hardcopy ///' InsertFileWriter Kontext "GeneralFileDialog" Dateiname.setText sFileName Oeffnen.click sleep 60 '/// do some nice formatting ///' FormatColumns Kontext "FormatColumn" Columns.setText "2" FormatColumn.TypeKeys "" iTimeOut = 1 while ((NOT AutoWidth.isEnabled) AND (iTimeOut < 30)) sleep 1 printlog "Waiting for control to be enabled: (" + iTimeOut + "/30)" iTimeOut = iTimeOut +1 Kontext "FormatColumn" FormatColumn.TypeKeys "" wend Kontext "FormatColumn" bChecked = AutoWidth.isChecked AutoWidth.UnCheck sTemp = Width1.getText Width1.typeKeys("") Width1.more sTemp1 = Width1.getText Width1.setText(sTemp) if (bChecked) then AutoWidth.UnCheck endif FormatColumn.OK FormatParagraph Kontext active.setPage TabTabulator kontext "TabTabulator" Position.setText sTemp Neu.click Position.setText sTemp1 Neu.click try TabTabulator.OK catch warnlog "Timeout on closing " iTimeOut = 1 while ((iTimeOut > 0) AND (iTimeOut < 30)) try Kontext "DocumentWriter" DocumentWriter.typeKeys "" iTimeOut = iTimeOut * (-1) catch sleep (10) inc(iTimeOut) endcatch wend printlog "Duration: " + (iTimeOut * 10) endcatch else qaErrorLog "File doesn't exists: '" + sFileName + "'" endif '/// print file ///' try Fileprint kontext if active.exists(2) then active.ok qaerrorlog "There is no printer available - please install one on your system!" Kontext "Printing" if ( Printing.exists( 2 ) ) then Printing.cancel else warnlog( "Printing dialog did not open" ) endif else Kontext "Printing" if ( Printing.exists( 2 ) ) then Printing.ok else warnlog( "Printing dialog did not open" ) endif endif kontext if active.exists(2) then active.ok qaerrorlog "There is no printer available - please install one on your system!" sleep 2 endif catch warnlog "FilePrint is not accessible, because closing Formula failed :-( ?!" endcatch hFileSaveAsWithFilterKill (convertpath( gOfficePath + "user/work/fileprint" + iSprache + ".odt"), "writer8") Call hCloseDocument endcase function isCheckedWarnAlienFormat (optional bChange as boolean) dim uno dim ap dim apara(1) As new com.sun.star.beans.PropertyValue dim xViewRoot dim temp() dim bLocal as boolean dim sFileFunction as string dim i as integer if isMissing(bChange) then ' should work, else give soffice the commandline try uno=getUnoApp catch qaErrorLog (sFileFunction+"UNO-Port wasn't set on startup of office; will set it now again.") uno=hGetUnoService() endcatch if (isNull(ap)) then warnlog(sFileFunction+"Couldn't create Uno access") ' think about switching to do it manual? exit function endif ap=uno.createInstance("com.sun.star.configuration.ConfigurationProvider") if (isNull(ap)) then warnlog(sFileFunction+"Couldn't create Configuration access") exit function endif apara(0).Name="nodepath" apara(1).Name="lazywrite" apara(1).Value=False '() Tools->Options->Load/Save->General '/org.openoffice.Office.Common/Save/Document WarnAlienFormat apara(0).Value="/org.openoffice.Office.Common/Save/Document" xViewRoot=ap.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPara()) bLocal = xViewRoot.getByName("WarnAlienFormat") xViewRoot.dispose() else ToolsOptions call hToolsOptions ("LoadSave", "General") bLocal = WarnWhenSavingAlienFormat.isChecked if bChange then WarnWhenSavingAlienFormat.check else WarnWhenSavingAlienFormat.unCheck endif Kontext "ExtrasOptionenDlg" ExtrasOptionenDlg.OK sleep 4 endif isCheckedWarnAlienFormat = bLocal end function function hSpeichernUnterMitFilterKillTBO (sFileName as String, sFilterName, optional bAutoFileExtension as boolean) as boolean Dim sDerName as string Dim sDerText as string Dim ApplicatStrg as string Dim bFileSaved as boolean Dim bAlienNotAllowed as boolean sDerName = ConvertPath (sFileName) if ( not hDeleteFile( sDerName ) ) then warnlog( "Aborting function because the file could not be deleted: " & sDerName ) hSpeichernUnterMitFilterKillTBO() = FALSE exit function endif sleep (1) FileSaveAs Kontext "SpeichernDlg" if SpeichernDlg.Exists(2) then DateiTyp.Select sFilterName sleep (3) DateiName.SetText sDerName sleep (3) 'Saving the document Speichern.Click sleep (1) Kontext if Active.Exists(2) then if Active.GetRT = 304 then sDerText = Active.GetText warnlog sDerText try Active.OK printlog "OK" catch active.yes printlog "YES" endcatch Kontext "SpeichernDlg" if SpeichernDlg.Exists(1) then SpeichernDlg.Cancel end if bFileSaved = FALSE end if end if else warnlog "'Save'-dialog is not visible. Document has not been saved!" end if end function