diff options
Diffstat (limited to 'automation/source/inc')
-rw-r--r-- | automation/source/inc/cmdbasestream.hxx | 88 | ||||
-rw-r--r-- | automation/source/inc/icommstream.hxx | 67 | ||||
-rw-r--r-- | automation/source/inc/rcontrol.hxx | 499 | ||||
-rw-r--r-- | automation/source/inc/sttresid.hxx | 45 | ||||
-rw-r--r-- | automation/source/inc/svcommstream.hxx | 59 | ||||
-rw-r--r-- | automation/source/inc/testapp.hxx | 198 | ||||
-rw-r--r-- | automation/source/inc/testtool.hxx | 75 |
7 files changed, 1031 insertions, 0 deletions
diff --git a/automation/source/inc/cmdbasestream.hxx b/automation/source/inc/cmdbasestream.hxx new file mode 100644 index 000000000000..0170b08aefe0 --- /dev/null +++ b/automation/source/inc/cmdbasestream.hxx @@ -0,0 +1,88 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +/************************************************************************* + * + * ATTENTION + * This file is intended to work inside and outside the StarOffice environment. + * Only adaption of file commtypes.hxx should be necessary. Else it is a bug! + * + ************************************************************************/ + +#ifndef _CMDBASESTREAM_HXX_ +#define _CMDBASESTREAM_HXX_ + +#include <automation/commtypes.hxx> +#include "icommstream.hxx" + +class CmdBaseStream +{ +protected: + ICommStream* pCommStream; + CmdBaseStream(); + virtual ~CmdBaseStream(); + +public: + + void GenError( SmartId *pUId, comm_String *pString ); + + void GenReturn( comm_USHORT nRet, comm_ULONG nNr ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_String *pString ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_BOOL bBool ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr, comm_String *pString, comm_BOOL bBool ); + +// MacroRecorder + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString, comm_BOOL bBool ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_BOOL bBool ); + void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_ULONG nNr ); + + void Read ( comm_USHORT &nNr ); + void Read ( comm_ULONG &nNr ); + void Read (comm_UniChar* &aString, comm_USHORT &nLenInChars ); + void Read ( comm_BOOL &bBool ); + comm_USHORT GetNextType(); + + void Write( comm_USHORT nNr ); + void Write( comm_ULONG nNr ); + void Write( const comm_UniChar* aString, comm_USHORT nLenInChars ); + void Write( comm_BOOL bBool ); + +// Complex Datatypes to be handled system dependent + virtual void Read ( comm_String *&pString ); + virtual void Read ( SmartId* &pId ); + + virtual void Write( comm_String *pString ); + virtual void Write( SmartId* pId ); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/icommstream.hxx b/automation/source/inc/icommstream.hxx new file mode 100644 index 000000000000..adc9be16063e --- /dev/null +++ b/automation/source/inc/icommstream.hxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +/************************************************************************* + * + * ATTENTION + * This file is intended to work inside and outside the StarOffice environment. + * Only adaption of file commtypes.hxx should be necessary. Else it is a bug! + * + ************************************************************************/ + +#ifndef _AUTOMATION_ICOMMSTREAM_HXX_ +#define _AUTOMATION_ICOMMSTREAM_HXX_ + +#include <automation/commtypes.hxx> + +class ICommStream +{ +public: + + ICommStream(){} + virtual ~ICommStream(){} + + virtual ICommStream& operator>>( comm_USHORT& rUShort )=0; + virtual ICommStream& operator>>( comm_ULONG& rULong )=0; + virtual ICommStream& operator>>( comm_BOOL& rChar )=0; + + virtual ICommStream& operator<<( comm_USHORT nUShort )=0; + virtual ICommStream& operator<<( comm_ULONG nULong )=0; + virtual ICommStream& operator<<( comm_BOOL nChar )=0; + + virtual comm_ULONG Read( void* pData, comm_ULONG nSize )=0; + virtual comm_ULONG Write( const void* pData, comm_ULONG nSize )=0; + + virtual comm_BOOL IsEof() const=0; + virtual comm_ULONG SeekRel( long nPos )=0; + +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/rcontrol.hxx b/automation/source/inc/rcontrol.hxx new file mode 100644 index 000000000000..f3609b9de3d9 --- /dev/null +++ b/automation/source/inc/rcontrol.hxx @@ -0,0 +1,499 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +/************************************************************************* + * + * ATTENTION + * This file is intended to work inside and outside the StarOffice environment. + * Only adaption of file commtypes.hxx should be necessary. Else it is a bug! + * + ************************************************************************/ + +#ifndef _RCONTROL_HXX +#define _RCONTROL_HXX + + +#define UID_ACTIVE 0 + + +#define SI_IPCCommandBlock 1 +#define SI_SocketCommandBlock SI_IPCCommandBlock // Zumindest erstmal +#define SI_DirectCommandBlock 2 +#define SIControl 3 +#define SISlot 4 +#define SIFlow 5 +#define SICommand 6 +#define SIUnoSlot 7 +#define SIStringControl 8 + +#define SIReturnBlock 11 +#define SIReturn 12 +#define SIReturnError 13 + +// Typisierung im Stream +#define BinUSHORT 11 +#define BinULONG 14 +#define BinString 12 +#define BinBool 13 +#define BinSbxValue 15 + + +// Classes +// !!!Diese Defines duerfen niemals geaendert werden!!! +#define C_NoType -1 +// Maximale 32 einfache Controls +#define C_TabControl 0 +#define C_RadioButton 1 +#define C_CheckBox 2 +#define C_TriStateBox 3 +#define C_Edit 4 +#define C_MultiLineEdit 5 +#define C_MultiListBox 6 +#define C_ListBox 7 +#define C_ComboBox 8 +#define C_PushButton 9 + +#define C_SpinField 10 +#define C_PatternField 11 +#define C_NumericField 12 +#define C_MetricField 13 +#define C_CurrencyField 14 +#define C_DateField 15 +#define C_TimeField 16 + +#define C_ImageRadioButton 17 +#define C_NumericBox 18 +#define C_MetricBox 19 +#define C_CurrencyBox 20 +#define C_DateBox 21 +#define C_TimeBox 22 + +#define C_ImageButton 23 +#define C_MenuButton 24 +#define C_MoreButton 25 + +// Maximale 7 Container +#define C_TabPage 32 +#define C_ModalDlg 33 +#define C_FloatWin 34 +#define C_ModelessDlg 35 +#define C_WorkWin 36 +#define C_DockingWin 37 + +// Diese Defines koennen geaendert werden +#define C_MessBox 40 +#define C_InfoBox 41 +#define C_WarningBox 42 +#define C_ErrorBox 43 +#define C_QueryBox 44 + +#define C_TabDlg 45 +#define C_SingleTabDlg 46 + +#define C_Window 47 + + +#define C_PatternBox 60 +#define C_ToolBox 61 +#define C_ValueSet 62 +#define C_Control 63 +#define C_TreeListBox 64 // Hurray the TreeListBox finally got its own Window Type + +#define C_OkButton 65 +#define C_CancelButton 66 +#define C_ButtonDialog 67 + +#define C_Dialog 68 + + + + +#define M_WITH_RETURN 0x0200 // Die Variable wird zum Aufnehmen des Wertes gespeichert +#define M_KEY_STRING 0x0400 // Key Befehle werden umgewandelt i.e. "<return><up>" +#define M_SOFFICE 0x0800 // Command valid for Star/Open Office +#define M_MOZILLA 0x1000 // Command valid for Mozilla +// for MacroRecorder +#define M_RET_NUM_CONTROL 0x2000 // decode ULong as Control (For Tabpages, Toolboxes, ... ) + +// Methoden +#define M_Select 21 +#define M_SetNoSelection 22 +#define M_SetText 23 +#define M_More 24 +#define M_Less 25 +#define M_ToMin 26 +#define M_ToMax 27 +#define M_Check 28 +#define M_UnCheck 29 +#define M_TriState 30 +#define M_SetPage 31 +#define M_Click 32 + +#define M_Close 33 // Push Buttons on Dialog (Auch More Button) +#define M_Cancel 34 +#define M_OK 35 +#define M_Help 36 +#define M_Default 37 // Push defaultbutton on Dialog + +#define M_Yes 38 +#define M_No 39 +#define M_Repeat 40 + +#define M_Open 41 +#define M_Pick 42 +#define M_Move 43 +#define M_Size 44 +#define M_Minimize 45 +#define M_Maximize 46 +#define M_Dock 47 +#define M_Undock 48 + + + +#define M_TypeKeys ( M_KEY_STRING | 50 ) +#define M_MouseDown 51 +#define M_MouseUp 52 +#define M_MouseMove 53 +#define M_MouseDoubleClick 54 +#define M_SnapShot 55 +#define M_SetNextToolBox 56 +#define M_OpenContextMenu 57 +#define M_MultiSelect 58 + +// Filedialog +#define M_SetPath 60 +#define M_SetCurFilter 61 + +// Printdialog +#define M_SetPrinter 70 +#define M_CheckRange 71 +#define M_SetRangeText 72 +#define M_SetFirstPage 73 +#define M_SetLastPage 74 +#define M_CheckCollate 75 +#define M_SetPageId 76 +#define M_SetPageNr 77 + +#define M_AnimateMouse 78 +#define M_TearOff 79 + +#define M_FadeIn 80 +#define M_FadeOut 81 +#define M_Pin 82 + +#define M_UseMenu 83 // Use the menu of the next possible parent of given Window + +#define M_OpenMenu 84 // MenuButtons and Menus in ToolBoxes + +#define M_Restore 85 // Window Control together with M_Maximize and M_Minimize + +#define M_DisplayPercent 200 // Zum Anzeigen der Prozente des Windows + +#define M_LAST_NO_RETURN 200 + +#if ( M_LAST_NO_RETURN >= M_WITH_RETURN ) +#error "Bereich überschritten" +#endif + +#define M_Exists ( M_WITH_RETURN | 1 ) +#define M_NotExists ( M_WITH_RETURN | 2 ) +#define M_IsEnabled ( M_WITH_RETURN | 3 ) +#define M_IsVisible ( M_WITH_RETURN | 4 ) +#define M_IsWritable ( M_WITH_RETURN | 5 ) + +#define M_GetPage ( M_WITH_RETURN | 6 ) +#define M_IsChecked ( M_WITH_RETURN | 7 ) +#define M_IsTristate ( M_WITH_RETURN | 8 ) +#define M_GetState ( M_WITH_RETURN | 9 ) +#define M_GetText ( M_WITH_RETURN | 10 ) +#define M_GetSelCount ( M_WITH_RETURN | 11 ) +#define M_GetSelIndex ( M_WITH_RETURN | 12 ) +#define M_GetSelText ( M_WITH_RETURN | 13 ) +#define M_GetItemCount ( M_WITH_RETURN | 14 ) +#define M_GetItemText ( M_WITH_RETURN | 15 ) +#define M_IsOpen ( M_WITH_RETURN | 16 ) +#define M_Caption ( M_WITH_RETURN | 17 ) +#define M_IsMax ( M_WITH_RETURN | 18 ) +#define M_IsDocked ( M_WITH_RETURN | 19 ) +#define M_GetRT ( M_WITH_RETURN | 20 ) +#define M_GetPageId ( M_WITH_RETURN | 21 ) +#define M_GetPageCount ( M_WITH_RETURN | 22 ) +#define M_GetPosX ( M_WITH_RETURN | 23 ) +#define M_GetPosY ( M_WITH_RETURN | 24 ) +#define M_GetSizeX ( M_WITH_RETURN | 25 ) +#define M_GetSizeY ( M_WITH_RETURN | 26 ) +#define M_GetNextToolBox ( M_WITH_RETURN | 27 ) +#define M_GetButtonCount ( M_WITH_RETURN | 28 ) +#define M_GetButtonId ( M_WITH_RETURN | 29 ) + +#define M_IsFadeIn ( M_WITH_RETURN | 30 ) +#define M_IsPin ( M_WITH_RETURN | 31 ) + +// Statusbar +#define M_StatusGetText ( M_WITH_RETURN | 32 ) +#define M_StatusIsProgress ( M_WITH_RETURN | 33 ) +#define M_StatusGetItemCount ( M_WITH_RETURN | 34 ) +#define M_StatusGetItemId ( M_WITH_RETURN | 35 ) + +// +#define M_GetMouseStyle ( M_WITH_RETURN | 36 ) + +// support for Messagebox with checkbox +#define M_GetCheckBoxText ( M_WITH_RETURN | 37 ) + +// Scrollbars +#define M_HasScrollBar ( M_WITH_RETURN | 38 ) +#define M_IsScrollBarEnabled ( M_WITH_RETURN | 39 ) + +// Dieser befehl wird nur intern im Controller (sts library) verwendet. Sie tauchen nicht im Testtool auf! +#define _M_IsEnabled ( M_WITH_RETURN | 50 ) + + +#define M_GetFixedTextCount ( M_WITH_RETURN | 51 ) +#define M_GetFixedText ( M_WITH_RETURN | 52 ) + + +#define M_IsMin ( M_WITH_RETURN | 53 ) +#define M_IsRestore ( M_WITH_RETURN | 54 ) + +#define M_GetItemType ( M_WITH_RETURN | 55 ) + +// Commands for (Edit)BrowseBox +#define M_GetColumnCount ( M_WITH_RETURN | 56 ) +#define M_GetRowCount ( M_WITH_RETURN | 57 ) +#define M_IsEditing ( M_WITH_RETURN | 58 ) + +#define M_IsItemEnabled ( M_WITH_RETURN | 59 ) + +//#define M_SOFFICE 0x0800 // Command valid for Star/Open Office +//#define M_MOZILLA 0x1000 // Command valid for Mozilla + + +// RemoteCommands +#define RC_AppAbort ( M_SOFFICE | M_MOZILLA | 1 ) +#define RC_SetClipboard ( M_SOFFICE | M_MOZILLA | 2 ) +#define RC_NoDebug ( M_SOFFICE | M_MOZILLA | 3 ) +#define RC_Debug ( M_SOFFICE | M_MOZILLA | 4 ) +#define RC_GPF ( M_SOFFICE | M_MOZILLA | 5 ) +#define RC_DisplayHid ( M_SOFFICE | M_MOZILLA | 6 ) +#define RC_AppDelay ( M_SOFFICE | M_MOZILLA | 7 ) +#define RC_UseBindings ( M_SOFFICE | 8 ) +#define RC_Profile ( M_SOFFICE | M_MOZILLA | 9 ) +// (Popup)Menu +#define RC_MenuSelect ( M_SOFFICE | M_MOZILLA | 10 ) +#define RC_SetControlType ( M_SOFFICE | 11 ) // deprecated since RTTI +// RemoteFileAccess +#define RC_Kill ( M_SOFFICE | 12 ) +#define RC_RmDir ( M_SOFFICE | 13 ) +#define RC_MkDir ( M_SOFFICE | 14 ) +#define RC_FileCopy ( M_SOFFICE | 15 ) +#define RC_Name ( M_SOFFICE | 16 ) + +#define RC_CaptureAssertions (M_SOFFICE | M_MOZILLA | 17 ) +#define RC_Assert ( M_SOFFICE | M_MOZILLA | 18 ) + +#define RC_MenuOpen ( M_SOFFICE | M_MOZILLA | 19 ) + +#define RC_TypeKeysDelay ( M_SOFFICE | M_MOZILLA | 20 ) + +#define RC_ShowBar ( M_MOZILLA | 21 ) + +#define RC_LoadURL ( M_MOZILLA | 22 ) + +#define RC_CloseSysDialog ( M_SOFFICE | 23 ) + +#define RC_SAXRelease ( M_SOFFICE | 24 ) + +#define RC_RecordMacro ( M_SOFFICE | 25 ) + +#define RC_ActivateDocument ( M_SOFFICE | 26 ) + +#define RC_CatchGPF ( M_SOFFICE | 27 ) + +#define _RC_LAST_NO_RETURN 27 + +#if ( _RC_LAST_NO_RETURN >= M_WITH_RETURN ) +#error "Bereich überschritten" +#endif + +// Befehle mit Returnwert +#define RC_GetClipboard ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 1 ) +#define RC_WinTree ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 2 ) +#define RC_ResetApplication ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 3 ) +#define RC_GetNextCloseWindow ( M_SOFFICE | M_WITH_RETURN | 4 ) +#define RC_ApplicationBusy ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 5 ) +// (Popup)Menu +#define RC_MenuGetItemCount ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 6 ) +#define RC_MenuGetItemId ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 7 ) +#define RC_MenuGetItemPos ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 8 ) +#define RC_MenuIsSeperator ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 9 ) +#define RC_MenuIsItemChecked ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 10 ) +#define RC_MenuIsItemEnabled ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 11 ) +#define RC_MenuGetItemText ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 12 ) +// RemoteFileAccess +#define RC_Dir ( M_SOFFICE | M_WITH_RETURN | 18 ) +#define RC_FileLen ( M_SOFFICE | M_WITH_RETURN | 19 ) +#define RC_FileDateTime ( M_SOFFICE | M_WITH_RETURN | 20 ) + +#define RC_Translate ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 21 ) +#define RC_GetMouseStyle ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 22 ) +#define RC_UnpackStorage ( M_SOFFICE | M_WITH_RETURN | 23 ) + +#define RC_IsBarVisible ( M_MOZILLA | M_WITH_RETURN | 24 ) + +#define RC_MenuGetItemCommand ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 25 ) + +#define RC_ExistsSysDialog ( M_SOFFICE | M_WITH_RETURN | 26 ) + +#define RC_SAXCheckWellformed ( M_SOFFICE | M_WITH_RETURN | 27 ) +#define RC_SAXReadFile ( M_SOFFICE | M_WITH_RETURN | 28 ) + +#define RC_SAXGetNodeType ( M_SOFFICE | M_WITH_RETURN | 29 ) +#define RC_SAXGetElementName ( M_SOFFICE | M_WITH_RETURN | 30 ) +#define RC_SAXGetChars ( M_SOFFICE | M_WITH_RETURN | 31 ) +#define RC_SAXGetChildCount ( M_SOFFICE | M_WITH_RETURN | 32 ) +#define RC_SAXGetAttributeCount ( M_SOFFICE | M_WITH_RETURN | 33 ) +#define RC_SAXGetAttributeName ( M_SOFFICE | M_WITH_RETURN | 34 ) +#define RC_SAXGetAttributeValue ( M_SOFFICE | M_WITH_RETURN | 35 ) +#define RC_SAXSeekElement ( M_SOFFICE | M_WITH_RETURN | 36 ) +#define RC_SAXHasElement ( M_SOFFICE | M_WITH_RETURN | 37 ) +#define RC_SAXGetElementPath ( M_SOFFICE | M_WITH_RETURN | 38 ) + +#define RC_GetDocumentCount ( M_SOFFICE | M_WITH_RETURN | 39 ) + +#define RC_GetSystemLanguage ( M_SOFFICE | M_WITH_RETURN | 40 ) + +#define RC_IsProduct ( M_SOFFICE | M_WITH_RETURN | 41 ) + +#define RC_MenuHasSubMenu ( M_SOFFICE | M_WITH_RETURN | 42 ) + +#define RC_UsePostEvents ( M_SOFFICE | M_WITH_RETURN | 43 ) + +#define RC_WaitSlot ( M_SOFFICE | M_WITH_RETURN | 44 ) + +// Flow Control +#define F_EndCommandBlock 101 // Initiiert Rückmeldung des Status +#define F_Sequence 102 // Übergibt Sequence Nummer (1. in jedem Stream) + +// Return codes +#define RET_Sequence 132 // Übergibt Sequence Nummer (1. in jedem Stream) +#define RET_Value 133 // Übergibt Return-wert +#define RET_WinInfo 134 // Information über aktuelles Fenster/Control +#define RET_ProfileInfo 135 // Profile Information +#define RET_DirectLoging 136 // Direktes Übertragen von Informationen in das Log +#define RET_MacroRecorder 137 // MakroRecorder Befehl übertragen + + + +// Subcodes die in nUId geliefert werden +// für F_ProfileInfo +#define S_ProfileReset 201 // nNr1 = Anzahl Borders + // Achtung!! Diese Defines müssen aufeinanderfolgende Nummern haben!! +#define S_ProfileBorder1 202 // nNr1 = Border1 in ms +#define S_ProfileBorder2 203 // nNr1 = Border2 in ms +#define S_ProfileBorder3 204 // nNr1 = Border3 in ms +#define S_ProfileBorder4 205 // nNr1 = Border4 in ms + // Achtung Ende +#define S_ProfileTime 210 // nNr1 = remote Zeit des Befehls +#define S_ProfileDump 211 // Gibt die daten aus. + +// für F_DirectLoging +#define S_AssertError 220 +#define S_AssertWarning 221 +#define S_AssertTrace 222 +#define S_QAError 223 + + + +// Constants which are available in VCLTestTool scripts + +// Different types of controls recognized via RTTI +#define CONST_CTBrowseBox 100 +#define CONST_CTValueSet 103 +#define CONST_CTORoadmap 104 +#define CONST_CTIExtensionListBox 105 +#define CONST_CTTableControl 106 +#define CONST_CTUnknown 199 + +// Konstanten für das ALignment des gesuchten Splitters +#define CONST_ALIGN_LEFT 120 +#define CONST_ALIGN_TOP 121 +#define CONST_ALIGN_RIGHT 122 +#define CONST_ALIGN_BOTTOM 123 + +/// What dialog to use in RC_CloseSysDialog or RC_ExistsSysDialog +#define CONST_FilePicker 301 +#define CONST_FolderPicker 302 + +/// NodeTypes of the SAX Parser +#define CONST_NodeTypeCharacter 555 +#define CONST_NodeTypeElement 556 +#define CONST_NodeTypeComment 557 + +/// ItemTypes for TreeListBox and maybe others +#define CONST_ItemTypeText 602 +#define CONST_ItemTypeBMP 601 +#define CONST_ItemTypeCheckbox 600 +#define CONST_ItemTypeContextBMP 603 +#define CONST_ItemTypeUnknown 604 + +/// Return values for WaitSlot +#define CONST_WSTimeout 701 +#define CONST_WSAborted 702 +#define CONST_WSFinished 703 + +// Beschreibt die Parametertypen als Bitfeld Reihenfolge immer! +// wie hier Aufgelistet +#define PARAM_NONE 0x0000 +#define PARAM_USHORT_1 0x0001 +#define PARAM_USHORT_2 0x0002 +#define PARAM_USHORT_3 0x0100 // Nicht in der Reihe!! +#define PARAM_USHORT_4 0x0200 // Nicht in der Reihe!! +#define PARAM_ULONG_1 0x0004 +#define PARAM_ULONG_2 0x0008 +#define PARAM_STR_1 0x0010 +#define PARAM_STR_2 0x0020 +#define PARAM_BOOL_1 0x0040 +#define PARAM_BOOL_2 0x0080 +#define PARAM_SBXVALUE_1 0x0400 // hier mit 0x0400 Weiter!!! Siehe Oben! + +// Zusätzliche Beschreibung!! wird auch mit dem Rest verodert +//#define PARAM_STR_RAW 0x8000 // Der Zeichensatz der Strings wird nicht konvertiert(für Fareastern) + + +#define ERR_SEND_TIMEOUT 100 +#define ERR_EXEC_TIMEOUT 101 +#define ERR_RESTART_FAIL 102 +#define ERR_RESTART 103 +#define ERR_NO_WIN 104 // Keine *.Win Dateien gefunden +#define ERR_NO_SID 105 // Keine *.Sid Dateien gefunden +#define ERR_NO_FILE 106 // Datei nicht gefunden + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/sttresid.hxx b/automation/source/inc/sttresid.hxx new file mode 100644 index 000000000000..3ccfe483a8f4 --- /dev/null +++ b/automation/source/inc/sttresid.hxx @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _STTRESID_HXX_ +#define _STTRESID_HXX_ + +#include <tools/resmgr.hxx> +#include <tools/resid.hxx> + +class SttResId : public ResId +{ + static ResMgr* getSttResMgr(); + public: + SttResId( sal_uInt32 nId ) : ResId( nId, *getSttResMgr() ) {} +}; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/svcommstream.hxx b/automation/source/inc/svcommstream.hxx new file mode 100644 index 000000000000..0cf289147f04 --- /dev/null +++ b/automation/source/inc/svcommstream.hxx @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#include <tools/stream.hxx> + +#include <automation/commtypes.hxx> +#include "icommstream.hxx" + + +class SvCommStream : public ICommStream +{ +protected: + SvStream* pStream; +public: + + SvCommStream( SvStream* pIO ); + ~SvCommStream(); + + ICommStream& operator>>( comm_USHORT& rUShort ); + ICommStream& operator>>( comm_ULONG& rULong ); + ICommStream& operator>>( comm_BOOL& rChar ); + + ICommStream& operator<<( comm_USHORT nUShort ); + ICommStream& operator<<( comm_ULONG nULong ); + ICommStream& operator<<( comm_BOOL nChar ); + + comm_ULONG Read( void* pData, comm_ULONG nSize ); + comm_ULONG Write( const void* pData, comm_ULONG nSize ); + + comm_BOOL IsEof() const; + comm_ULONG SeekRel( long nPos ); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/testapp.hxx b/automation/source/inc/testapp.hxx new file mode 100644 index 000000000000..6760fb229af7 --- /dev/null +++ b/automation/source/inc/testapp.hxx @@ -0,0 +1,198 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef TESTAPP_HXX +#define TESTAPP_HXX + +#include <basic/sbmod.hxx> +#include <basic/testtool.hxx> +#include <vcl/smartid.hxx> + +class CommunicationLink; +class CommunicationManagerClientViaSocketTT; +class CNames; +class ControlItemUId; +class CRevNames; +//class SbxTransportVariableRef; +class ControlsRef; +class CmdStream; +class FloatingLoadConf; +class TestToolObj; +class ControlDef; + +class SbxTransportMethod; +class Application; + +class SotStorage; + +class ImplTestToolObj; +class MyBasic; + +class ErrorEntry +{ +public: + ErrorEntry(ULONG nNr, String aStr = String()) : nError(nNr),aText(aStr),nLine(0),nCol1(0),nCol2(0) {} + ErrorEntry(ULONG nNr, String aStr, xub_StrLen l, xub_StrLen c1, xub_StrLen c2 ) + : nError(nNr),aText(aStr),nLine(l),nCol1(c1),nCol2(c2) {} + ULONG nError; + String aText; + xub_StrLen nLine; + xub_StrLen nCol1; + xub_StrLen nCol2; +}; + +SV_DECL_PTRARR_DEL(CErrors, ErrorEntry*, 1, 1) + +struct ControlDefLoad { + const char* Kurzname; + ULONG nUId; +}; + +class TestToolObj: public SbxObject +{ + friend class TTBasic; + friend class Controls; +public: + TestToolObj( String aName, String aFilePath ); // Alle Dateien in FilePath, Kein IPC + TestToolObj( String aName, MyBasic* pBas ); // Pfade aus INI, IPC benutzen + ~TestToolObj(); + void LoadIniFile(); // Laden der IniEinstellungen, die durch den ConfigDialog geändert werden können + void DebugFindNoErrors( BOOL bDebugFindNoErrors ); + +private: + BOOL bWasPrecompilerError; // True wenn beim letzten Precompile ein Fehler auftrat + BOOL CError( ULONG, const String&, xub_StrLen, xub_StrLen, xub_StrLen ); + void CalcPosition( String const &aSource, xub_StrLen nPos, xub_StrLen &l, xub_StrLen &c ); + xub_StrLen ImplSearch( const String &aSource, const xub_StrLen nStart, const xub_StrLen nEnd, const String &aSearch, const xub_StrLen nSearchStart = 0 ); + xub_StrLen PreCompilePart( String &aSource, xub_StrLen nStart, xub_StrLen nEnd, String aFinalErrorLabel, USHORT &nLabelCount ); + void PreCompileDispatchParts( String &aSource, String aStart, String aEnd, String aFinalLable ); +public: + String GetRevision(String const &aSourceIn); // find Revision in the sourcecode + String PreCompile(String const &aSourceIn); // try catch; testcase endcase .. + BOOL WasPrecompilerError(); // True wenn beim letzten Precompile ein Fehler auftrat + void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& ); + virtual SbxVariable* Find( const String&, SbxClassType ); +// String aKeyPlusClasses; // Pfad für keycodes & classes & res_type (Aus Configdatei) + DECL_LINK( ReturnResultsLink, CommunicationLink* ); + BOOL ReturnResults( SvStream *pIn ); // Rücklieferung des Antwortstreams über IPC oder TCP/IP oder direkt + + void SetLogHdl( const Link& rLink ) { aLogHdl = rLink; } + const Link& GetLogHdl() const { return aLogHdl; } + + void SetWinInfoHdl( const Link& rLink ) { aWinInfoHdl = rLink; } + const Link& GetWinInfoHdl() const { return aWinInfoHdl; } + + void SetModuleWinExistsHdl( const Link& rLink ) { aModuleWinExistsHdl = rLink; } + const Link& GetModuleWinExistsHdl() const { return aModuleWinExistsHdl; } + + void SetCErrorHdl( const Link& rLink ) { aCErrorHdl = rLink; } + const Link& GetCErrorHdl() const { return aCErrorHdl; } + + void SetWriteStringHdl( const Link& rLink ) { aWriteStringHdl = rLink; } + const Link& GetWriteStringHdl() const { return aWriteStringHdl; } + + SfxBroadcaster& GetTTBroadcaster(); + +private: + ImplTestToolObj *pImpl; // Alles was von der Implementation abhängt + static const CErrors* GetFehlerListe() { return pFehlerListe; } + BOOL bUseIPC; + Link aLogHdl; // Zum Logen der Fehlermeldungen im Testtool + Link aWinInfoHdl; // Anzeigen der Windows/Controls der zu testenden App + Link aModuleWinExistsHdl; // Prüft ob das Modul schon im Editor geladen ist + Link aCErrorHdl; // Melden von Compilererror + Link aWriteStringHdl; // Schreiben von text (e.g. MakroRecorder) + BOOL bReturnOK; // Bricht WaitForAnswer ab + CRevNames *pShortNames; // Aktuell verwendete Controls, zur gewinnung des Namens aus Fehlermeldung + ULONG nSequence; // Sequence um Antwort und Anfrage zu syncronisieren + SmartId aNextReturnId; // Id des Returnwertes i.e. UId + void ReplaceNumbers(String &aText); // Zahlen im String mit speziellem Format in Namen umwandeln + + String aLastRecordedKontext;// Keeps the last kontext recorded by the Macro Recorder + +#define FLAT TRUE + String ProgPath; // Dateiname der zu Testenden APP; Gesetzt über Start + String aLogFileName; // Momentaner Logfilename (Wie Programmdatei aber mit .res) + BOOL IsBlock; // Innerhalb Begin/EndBlock + BOOL SingleCommandBlock; // Implizit um jedes kommando ein Begin/EndBlock + CmdStream *In; + + void AddName(String &aBisher, String &aNeu ); // Name eventuell mit / anhängen + void AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem ); // + CNames *m_pControls; + CNames *m_pNameKontext; // Zeigt auf den aktuellen Namenskontext, der über 'Kontext' gesetzt wurde + CNames *m_pSIds; + CNames *m_pReverseSlots; // Slots mit Kurznamen nach Nummer + CNames *m_pReverseControls; // Controls mit Kurznamen nach Nummer + CNames *m_pReverseControlsSon;// Controls mit Kurznamen nach Nummer nach Fenstern (Son) + CNames *m_pReverseUIds; // Langnamen nach Nummer + + + USHORT nMyVar; // Wievielte Var aus Pool ist dran + + void InitTestToolObj(); + CommunicationManagerClientViaSocketTT *pCommunicationManager; + void SendViaSocket(); + + BOOL Load( String aFileName, SbModule *pMod ); + + void ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, BOOL bIsFlat = FALSE ); + void ReadFlat( String Filename, CNames *&pNames, BOOL bSortByName ); + BOOL ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pControls ); + BOOL WriteNamesBin( String Filename, CNames *pSIds, CNames *pControls ); + void ReadHidLstByNumber(); + void SortControlsByNumber( BOOL bIncludeActive = FALSE ); + + String GetMethodName( ULONG nMethodId ); + String GetKeyName( USHORT nKeyCode ); + + void WaitForAnswer (); + DECL_LINK( IdleHdl, Application* ); + DECL_LINK( CallDialogHandler, Application* ); + String aDialogHandlerName; + USHORT nWindowHandlerCallLevel; + + USHORT nIdleCount; + // wenn DialogHandler gesetzt wird er im IdleHandler inkrementiert und + // in WaitForAnswer rückgesetzt. Übersteigt er einen gewissen wert, gehe ich davon aus, + // daß WaitForAnswer still ligt und rufe die DialogHander Sub im BASIC auf. + + void BeginBlock(); + void EndBlock(); + + SbTextType GetSymbolType( const String &rSymbol, BOOL bWasControl ); + static ControlDefLoad const arR_Cmds[]; + static CNames *pRCommands; + + static CErrors *pFehlerListe; // Hier werden die Fehler des Testtools gespeichert + +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/automation/source/inc/testtool.hxx b/automation/source/inc/testtool.hxx new file mode 100644 index 000000000000..78a56b3160eb --- /dev/null +++ b/automation/source/inc/testtool.hxx @@ -0,0 +1,75 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef SVTOOLS_TESTTOOL_HXX +#define SVTOOLS_TESTTOOL_HXX + +#include <tools/solar.h> +#include <tools/link.hxx> +#include <vcl/timer.hxx> + +class Application; +class SvStream; + +class StatementFlow; +class CommunicationManager; +class CommunicationLink; +#if OSL_DEBUG_LEVEL > 1 +class EditWindow; +#endif +class ImplRC; + +class ImplRemoteControl +{ + friend class StatementFlow; + + BOOL m_bIdleInserted; + AutoTimer m_aIdleTimer; + BOOL m_bInsideExecutionLoop; +#if OSL_DEBUG_LEVEL > 1 + EditWindow *m_pDbgWin; +#endif + +public: + ImplRemoteControl(); + ~ImplRemoteControl(); + BOOL QueCommands( ULONG nServiceId, SvStream *pIn ); + SvStream* GetReturnStream(); + + DECL_LINK( IdleHdl, Application* ); + DECL_LINK( CommandHdl, Application* ); + + DECL_LINK( QueCommandsEvent, CommunicationLink* ); + +protected: + CommunicationManager *pServiceMgr; + SvStream *pRetStream; +}; + +#endif // SVTOOLS_TESTTOOL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |