summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qadevOOo/runner/convwatch/OfficePrint.java65
-rw-r--r--qadevOOo/runner/graphical/BuildID.java6
-rw-r--r--qadevOOo/runner/graphical/DirectoryHelper.java6
-rw-r--r--qadevOOo/runner/graphical/EnhancedComplexTestCase.java52
-rw-r--r--qadevOOo/runner/graphical/FileHelper.java30
-rw-r--r--qadevOOo/runner/graphical/GlobalLogWriter.java17
-rw-r--r--qadevOOo/runner/graphical/HTMLResult.java2
-rw-r--r--qadevOOo/runner/graphical/IDocument.java2
-rw-r--r--qadevOOo/runner/graphical/IniFile.java47
-rw-r--r--qadevOOo/runner/graphical/JPEGComparator.java482
-rw-r--r--qadevOOo/runner/graphical/JPEGCreator.java53
-rw-r--r--qadevOOo/runner/graphical/MSOfficePostscriptCreator.java95
-rw-r--r--qadevOOo/runner/graphical/Office.java1
-rw-r--r--qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java180
-rw-r--r--qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java280
-rw-r--r--qadevOOo/runner/graphical/ParameterHelper.java16
-rw-r--r--qadevOOo/runner/graphical/PerformanceContainer.java18
-rw-r--r--qadevOOo/runner/graphical/PropertyName.java2
-rw-r--r--qadevOOo/runner/graphical/TimeHelper.java45
-rw-r--r--qadevOOo/runner/graphical/Tolerance.java23
-rw-r--r--qadevOOo/runner/graphical/makefile.mk3
-rw-r--r--qadevOOo/runner/helper/OfficeProvider.java30
-rw-r--r--qadevOOo/runner/lib/MultiPropertyTest.java20
-rw-r--r--qadevOOo/runner/org/openoffice/Runner.java5
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySet.java484
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java34
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java4
-rw-r--r--qadevOOo/tests/java/ifc/chart/_LineDiagram.java6
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_LineProperties.java16
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java19
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccArea.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccAxis.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataPoint.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataSeries.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDiagram.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccFloor.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccGrid.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegend.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegendEntry.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccTitle.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccWall.java8
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartAxis.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartData.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDocument.java14
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartView.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataPoint.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataRow.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartArea.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartGrid.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLegend.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLine.java7
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartTitle.java7
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java9
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java12
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java9
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java12
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java9
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java14
-rwxr-xr-xsmoketestoo_native/data/smoketestdoc.sxwbin35384 -> 35550 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/loadsave/ch2_losa.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/ch2_updt_calc.bas0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_file.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_format.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_format1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_insert.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_insert_ctl.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_menu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_ole.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_toolbars.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_view.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_window.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/required/includes/ch2_wizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_axes.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_chart_type.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_common.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_data_labels.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_grids.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_legend.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_statistics.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_tab_borders_lines.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_tab_pages.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/chart2/tools/ch_tools_titles.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/ctrl_Grid.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc0
-rwxr-xr-xtestautomation/dbaccess/optional/includes/ctrl_Several1.inc2
-rwxr-xr-xtestautomation/dbaccess/optional/includes/ctrl_Several2.inc9
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/ctrl_TextControl.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_ADOAccess.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_AdabasD.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Dbase.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_DbaseFunction.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_IndexDesign.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Mozilla.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Query.inc0
-rwxr-xr-xtestautomation/dbaccess/optional/includes/db_Relations.inc14
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Spreadsheet.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Text.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_Windows.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/db_hsqldb.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/frm_Forms.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_DateTime.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_Formating.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_Grouping.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_PageNumber.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc0
-rwxr-xr-xtestautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc31
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/wiz_FormWizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/wiz_TableWizard.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/optional/includes/xf_Submission.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/required/includes/Forms.inc0
-rwxr-xr-xtestautomation/dbaccess/required/includes/MainApp.inc5
-rwxr-xr-xtestautomation/dbaccess/required/includes/Query.inc7
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/required/includes/ReportBuilder01.inc0
-rwxr-xr-xtestautomation/dbaccess/required/includes/Table.inc5
-rwxr-xr-xtestautomation/dbaccess/required/includes/TableDesign.inc5
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/required/includes/Wizards.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/required/includes/Xforms01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/tools/controltools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/tools/dbinit.inc0
-rwxr-xr-xtestautomation/dbaccess/tools/formtools.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/tools/querytools.inc0
-rwxr-xr-xtestautomation/dbaccess/tools/reporttools.inc12
-rwxr-xr-xtestautomation/dbaccess/tools/tabletools.inc9
-rwxr-xr-xtestautomation/extensions/optional/e_issues.bas55
-rw-r--r--testautomation/extensions/optional/e_taskpane.bas49
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/display_name.inc0
-rw-r--r--testautomation/extensions/optional/includes/e_taskpane.inc74
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/extensions.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/fileopen.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/help.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/identifiers.inc0
-rwxr-xr-xtestautomation/extensions/optional/includes/issue110083.inc79
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/location.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/meta-inf.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/online_update.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/options.inc0
-rwxr-xr-xtestautomation/extensions/optional/includes/platforms.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/optional/includes/publisher.inc0
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/build.xml72
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-impl.xml794
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-uno-impl.xml462
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/genfiles.properties8
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/config.properties0
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/private.properties6
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project-uno.properties18
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.properties67
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.xml14
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu23
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/Factories.xcu35
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/CentralRegistrationClass.java140
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/TaskPaneComponent.java116
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanel.java56
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanelUIElement.java153
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/description.xml5
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/toolpanels/TaskPaneComponentUI.xdl8
-rwxr-xr-xtestautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/uno-extension-manifest.xml9
-rwxr-xr-xtestautomation/extensions/optional/input/extensions/TaskPaneComponent/TaskPaneComponent.oxtbin0 -> 9884 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/issues/Logging.xcu24
-rw-r--r--testautomation/extensions/optional/input/issues/LoggingOptions.xcs19
-rwxr-xr-xtestautomation/extensions/optional/input/platform/extensions.info2
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/required/includes/e_update.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/extensions/required/includes/e_update_oooimprovement.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/f_basic_gridcontrol.bas0
-rwxr-xr-xtestautomation/framework/optional/f_basic_vba-compat.bas11
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_delete_modules.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_documents.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_eventbinding.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_formcontrols.inc0
-rwxr-xr-xtestautomation/framework/optional/includes/basic_gridcontrol.inc99
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_ide.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_library_export.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_library_import.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_macros.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_modulehide.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_modulenames.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_modules.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_package_export.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_package_import.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_protected_libraries.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_spectemplate.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_usertemplate.inc0
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_application-union.inc132
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc33
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc76
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc35
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc143
-rwxr-xr-xtestautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc187
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/basic_vba_compat_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/extras_file_open.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/extras_labels.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/extras_modify_objects.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/extras_preview.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/extras_table_autoformat.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/f_usage_tracking.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_allowed_names.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_autocomplete.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_cjk_files.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_cjk_folders.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_document_properties.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_filternames.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders6.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_folders7.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_multiselection.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_passwords.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_rename.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/filedlg_triggers.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/fontworkgallery.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_bookmarks.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_compare_applications.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_compare_content.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_compare_topics.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_search.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/help_view_topics.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/loadsave_files.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/loadsave_new.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/menuentries.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/ole_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/ole_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/ole_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/ole_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_asia.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_data.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_int1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_lan1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_loadsave_general.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_loadsave_html.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_loadsave_msoffice.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_loadsave_vba.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ls_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_accessibility.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_appearance.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_colors.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_fontreplacement.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_general.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_java.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_memory.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_paths.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_print.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_security.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_userdata.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/options_ooo_view.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/scripting_basics.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/scripting_organizers.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_broken_signature.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_certification_dialogs.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_certified_docs.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_evilmacro1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_evilmacro2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_evilmacro3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_macrosecurity.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_recommend_password.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/security_trusted_path.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/standardbar2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/toolbar_behavior.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/optional/includes/w_grid_layout1.inc0
-rwxr-xr-xtestautomation/framework/optional/input/gridcontrol.odtbin11602 -> 12600 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-application-union.xlsbin0 -> 31744 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-project.xlsbbin0 -> 19603 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-project.xlsmbin0 -> 20276 bytes
-rw-r--r--testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xlsbin0 -> 39424 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/basic_dialog_export.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/basic_dialog_i18n.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/basic_dialog_i18n_import.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/basic_macroassignment.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/basic_organizer.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/first.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/graphics_import.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/help_browser.inc0
-rwxr-xr-xtestautomation/framework/required/includes/script_organizers.inc49
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/security_dialogs.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/smoketest.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/standard_toolbar_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/standard_toolbar_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/standard_toolbar_4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/standard_toolbar_5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/standard_toolbar_6.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/tools_customize.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/tools_options.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/topten.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_agenda.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_documentconverter.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_euroconverter.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_fax.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_letter.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_mailmerge.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_presentation.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/required/includes/wizard_webpage.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/apicalls.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/arrayfuncs.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/customize_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/filedlg_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/fileoperations.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/formcontrols.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/help_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/i18n_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/init_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/javatools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/options_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/pbrowser_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/performance.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/private_environment.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/scriptorganizer_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/signature_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/spadmin_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/tabpages.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/template_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/toolbar_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/webtools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/window_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/framework/tools/includes/wizards.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/input/officeinfo.txt8
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_001.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_009.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_customize.inc0
-rw-r--r--testautomation/global/required/includes/g_findbar.inc159
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_numberformatter1.inc0
-rwxr-xr-xtestautomation/global/required/includes/g_option.inc18
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_option_application.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/required/includes/g_printing.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/sid/all.sid4
-rw-r--r--[-rwxr-xr-x]testautomation/global/sid/e_all.sid8
-rw-r--r--[-rwxr-xr-x]testautomation/global/system/includes/declare.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/system/includes/inivalue.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/system/includes/sysinfo.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_accels.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_basic_ide_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_control_objects.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_ctrl_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_ctrl_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_docfuncs.inc0
-rwxr-xr-xtestautomation/global/tools/includes/optional/t_extension_manager_tools.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_filetools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_key_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_listfuncs.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_locale_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_macro_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_ole.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_proxy_info.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_server_info.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_set_standard_controls.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_stringtools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_toolbar_calc.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_toolbar_impress.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_toolbar_writer.inc0
-rwxr-xr-xtestautomation/global/tools/includes/optional/t_treelist_tools.inc10
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_ui_filters.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_user_info.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_xml1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_xml2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/optional/t_xml_filter1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_dir.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_dirloc.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_doc1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_files.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_filters.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_lists.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_option.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_option2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_tools1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_tools2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/global/tools/includes/required/t_tools3.inc0
-rwxr-xr-xtestautomation/global/win/bars.win7
-rwxr-xr-xtestautomation/global/win/dial_d_h.win6
-rwxr-xr-xtestautomation/global/win/dial_p_s.win13
-rwxr-xr-xtestautomation/global/win/dial_t_z.win12
-rwxr-xr-xtestautomation/global/win/edia_d_h.win12
-rwxr-xr-xtestautomation/global/win/edia_t_z.win13
-rwxr-xr-xtestautomation/global/win/tab_a_d.win1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_accessability.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_convertto.bas145
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_crossfading.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_customshapes.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_group.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_line.bas2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_ole.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_savepictureas.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/g_tools.bas4
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/i_animation.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/i_saveloadlayout.bas6
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/i_slidecopy.bas1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/draw/d_002_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/draw/d_003_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/draw/d_005_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/draw/d_007.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/export_graphic.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/export_graphic_2.inc21
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_accessability.inc29
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_area.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_arrangealign.inc3
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_autocorrection.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_character.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_clipboard.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_clipexport.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_clipexport2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_clipexport3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_convertto.inc3
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_crossfading.inc3
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_customshapes.inc9
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_demoguide.inc58
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_dimensions.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_edit.inc74
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_export_html.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_format.inc5
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_group.inc3
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_imagemap.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_insert.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_line.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_load_save.inc11
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_mediaplayer.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_navigator.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_ole.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_paneview.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_paragraph.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_savepictureas.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_shaddow.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_slidelayer.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_spellcheck.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_tables.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_toolbars.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_tools.inc349
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/g_zoom.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/gallery2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_001.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_002.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_003.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_004.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_006.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_007.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_008.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_009.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/global/id_011.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_animation.inc3
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_headerfooter.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_pengine.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_pengine1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_pengine2.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc338
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_shape.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_slidecopy.inc71
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_slidelayer.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_slideshow2.inc6
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_slideshow3.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_stylist.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_us2_present.inc8
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_us_present.inc185
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/i_view.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_002_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_003_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_004_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_005_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_007_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/im_011_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/optional/includes/impress/options.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/d_updt.bas2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/i_updt_1.bas2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/draw/d_002_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/draw/d_003_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/draw/d_005_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/draw/d_007.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/gallery.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/gallery2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_001.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_002.inc13
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_003.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_004.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_005.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_006.inc210
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_007.inc6
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_008.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_009.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_011.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_opt_1.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/global/id_opt_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/i_opt_1_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_002_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_003_.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_004_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_005_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_007_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/includes/impress/im_011_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_3.odpbin13728 -> 12737 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_31.odpbin13837 -> 14160 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_33.odpbin12994 -> 13251 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_34.odpbin14831 -> 19479 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_36.odpbin14284 -> 14155 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_39.odpbin11319 -> 12338 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_46.odpbin15605 -> 19434 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_48.odpbin12666 -> 13346 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_49.odpbin13159 -> 12783 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/required/input/recht_55.odpbin13487 -> 18380 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/tools/id_tools.inc10
-rw-r--r--[-rwxr-xr-x]testautomation/graphics/tools/id_tools_2.inc33
-rw-r--r--[-rwxr-xr-x]testautomation/math/optional/includes/m_101_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/optional/includes/m_105.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/optional/includes/m_106_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_001_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_002_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_003_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_004_.inc0
-rwxr-xr-xtestautomation/math/required/includes/m_005_.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_006_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_007_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_010_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_020_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/c_validity.bas0
-rwxr-xr-xtestautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc12
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/optional/includes/validity/c_validity.inc0
-rwxr-xr-x[-rw-r--r--]testautomation/spreadsheet/optional/input/validity.odsbin22633 -> 22633 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_datamenu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_editmenu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc0
-rwxr-xr-xtestautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc50
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_cell_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_l10n_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_select_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_tool_options.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/tools/includes/c_validity_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/autotext/w_autotext.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/calculate/w_calculate.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_210_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_211_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_212_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_213_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_214_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_215_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_216_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_217_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_218_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_219_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_220_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_221_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/clipboard/w_222_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/fields/w_fields1.inc10
-rwxr-xr-xtestautomation/writer/optional/includes/fields/w_fields2.inc68
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/fields/w_fields3.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/fields/w_fields4.inc5
-rwxr-xr-xtestautomation/writer/optional/includes/fields/w_fields5.inc156
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/fields/w_fields6.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/fields/w_fields7.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/filter/w_filter.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/fontwork/w_fontwork1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatpage/w_formatpage1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatpage/w_formatpage2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatpage/w_formatpage3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatpage/w_formatpage4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/hyphenation/w_hyphenation.inc20
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/loadsave/w_loadsave.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/navigator/w_navigator.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/number/w_205_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/number/w_205a_.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/number/w_206_.inc20
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/number/w_207_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wh_o_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wh_o_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wh_o_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/option/wr_o_a.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/redlining/w_redlining1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/redlining/w_redlining2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/regexp/regular.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/regexp/search.inc8
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/section/w_section_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/section/w_section_2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/section/w_section_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/section/w_section_4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/section/w_section_tools.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/shortcut/w_shortcuts.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/sorting/w_sorting1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/sorting/w_sorting2.inc0
-rwxr-xr-xtestautomation/writer/optional/includes/spellcheck/w_spellcheck.inc309
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/table/w_204_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/table/w_204a_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/table/w_204b_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/textframes/w_textframes1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/textframes/w_textframes2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/textframes/w_textframes3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/textframes/w_textframes4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/textframes/w_textframes5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/tools/tools1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/tools/tools2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/undo/w_undo1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/undo/w_undo_history_3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/includes/undo/w_undo_history_4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_001_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_001a_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_001b_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_003_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_004_.inc0
-rwxr-xr-xtestautomation/writer/required/includes/w_005_.inc43
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_005b_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_006_.inc0
-rwxr-xr-xtestautomation/writer/required/includes/w_007_.inc29
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_008_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_009_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_010_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_010_1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_020_.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_get_locale_strings.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool2.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool3.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool4.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool5.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool6.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tool7.inc0
-rwxr-xr-xtestautomation/writer/tools/includes/w_tools.inc5
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tools_autocorrection.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tools_drawing.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tools_hyphenation.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/writer/tools/includes/w_tools_undo.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/c_datapilot_pagefields.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/c_xml_print_scale.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/c_xml_scenario.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/docbook_001.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/f_xml_save_ms_ole.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxc7_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxc7_02.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxc7_03.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxd7_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxd7_02.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxd7_03.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxd7_04.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxd7_05.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxi7_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxm7_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxw7_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxw7_01a.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxw7_02.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/sxw7_03.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/optional/includes/w_xml_vertical_alignment.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/required/includes/oasis_graphics_01.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/tools/includes/itools1.inc0
-rw-r--r--[-rwxr-xr-x]testautomation/xml/tools/includes/xmltool1.inc0
-rw-r--r--testgraphical/document-pool/demo/CurrentTime.odsbin0 -> 8299 bytes
-rw-r--r--testgraphical/document-pool/demo/knownissues.xcl8
-rw-r--r--testgraphical/document-pool/singletest/eis-test.odtbin0 -> 9623 bytes
-rw-r--r--testgraphical/prechecks/makefile.mk56
-rw-r--r--testgraphical/prechecks/softwaretests.pl564
-rwxr-xr-xtestgraphical/prj/build.lst7
-rwxr-xr-xtestgraphical/prj/d.lst0
-rw-r--r--testgraphical/qa/graphical/Test.java113
-rw-r--r--testgraphical/qa/graphical/makefile.mk57
-rw-r--r--testgraphical/references/unxlngi/demo/CurrentTime.ods.pdfbin0 -> 13916 bytes
-rw-r--r--testgraphical/references/unxlngi/demo/CurrentTime.ods.ps576
-rw-r--r--testgraphical/references/unxlngi/singletest/eis-test.odt.pdfbin0 -> 14356 bytes
-rw-r--r--testgraphical/references/unxlngi/singletest/eis-test.odt.ps565
-rw-r--r--testgraphical/references/unxlngi/singletest/tolerance.ini_4
-rw-r--r--testgraphical/references/unxsoli/singletest/eis-test.odt.pdfbin0 -> 9162 bytes
-rw-r--r--testgraphical/references/wntmsci/demo/CurrentTime.ods.pdfbin0 -> 13916 bytes
-rw-r--r--testgraphical/references/wntmsci/demo/CurrentTime.ods.ps499
-rw-r--r--testgraphical/references/wntmsci/singletest/eis-test.odt.pdfbin0 -> 9142 bytes
-rw-r--r--testgraphical/references/wntmsci/singletest/eis-test.odt.ps1984
-rw-r--r--testgraphical/source/CallExternals.pm539
-rw-r--r--testgraphical/source/ConvwatchHelper.pm574
-rw-r--r--testgraphical/source/compare.pl408
-rw-r--r--testgraphical/source/cwstestresult.pl208
-rw-r--r--testgraphical/source/cwstestresulthelper.pm268
-rw-r--r--testgraphical/source/dbhelper.pm209
-rw-r--r--testgraphical/source/filehelper.pm358
-rw-r--r--testgraphical/source/fill_documents_loop.pl423
-rw-r--r--testgraphical/source/graphical_compare.pm586
-rw-r--r--testgraphical/source/loghelper.pm94
-rw-r--r--testgraphical/source/makefile.mk112
-rw-r--r--testgraphical/source/oshelper.pm110
-rw-r--r--testgraphical/source/solarenvhelper.pm63
-rw-r--r--testgraphical/source/stringhelper.pm69
-rw-r--r--testgraphical/source/timehelper.pm99
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/build.xml74
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jarbin0 -> 28271 bytes
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/makefile.mk71
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/manifest.mf3
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml805
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties8
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties0
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties7
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml4
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties71
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml15
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form286
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java535
-rw-r--r--testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java718
-rw-r--r--testgraphical/ui/java/makefile.mk53
-rw-r--r--testgraphical/util/makefile.pmk34
755 files changed, 17026 insertions, 2335 deletions
diff --git a/qadevOOo/runner/convwatch/OfficePrint.java b/qadevOOo/runner/convwatch/OfficePrint.java
index 7f9b86f2f920..c9a656ac84b4 100644
--- a/qadevOOo/runner/convwatch/OfficePrint.java
+++ b/qadevOOo/runner/convwatch/OfficePrint.java
@@ -49,10 +49,10 @@ import com.sun.star.uno.AnyConverter;
import helper.URLHelper;
import helper.PropertyHelper;
import helper.OSHelper;
-import convwatch.FileHelper;
-import convwatch.MSOfficePrint;
-import convwatch.GraphicalTestArguments;
-import convwatch.ConvWatchCancelException;
+// import convwatch.FileHelper;
+// import convwatch.MSOfficePrint;
+// import convwatch.GraphicalTestArguments;
+// import convwatch.ConvWatchCancelException;
// import helper.Parameter;
@@ -118,7 +118,7 @@ public class OfficePrint {
*/
static String getDocumentType( XComponent _aDoc )
{
- XModel xModel = (XModel) UnoRuntime.queryInterface( XModel.class, _aDoc);
+ XModel xModel = UnoRuntime.queryInterface( XModel.class, _aDoc);
PropertyValue[] aArgs = xModel.getArgs();
for (int i=0;i<aArgs.length;i++)
{
@@ -145,6 +145,9 @@ public class OfficePrint {
* the GraphicalTestArguments must contain a living MultiServiceFactory object
* or we crash here.
* Be aware, the ownership of the document gets to you, you have to close it.
+ * @param _aGTA
+ * @param _sInputURL
+ * @return
*/
public static XComponent loadFromURL(GraphicalTestArguments _aGTA,
String _sInputURL)
@@ -158,7 +161,7 @@ public class OfficePrint {
return null;
}
Object oDsk = _aGTA.getMultiServiceFactory().createInstance("com.sun.star.frame.Desktop");
- XDesktop aDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, oDsk);
+ XDesktop aDesktop = UnoRuntime.queryInterface(XDesktop.class, oDsk);
if (aDesktop != null)
{
@@ -172,7 +175,7 @@ public class OfficePrint {
// set here the loadComponentFromURL() properties
// at the moment only 'Hidden' is set, so no window is opened at work
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// check which properties should set and count it.
// if (_aGTA.isHidden())
@@ -209,7 +212,7 @@ public class OfficePrint {
GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
// GlobalLogWriter.get().flush();
- XComponentLoader aCompLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
+ XComponentLoader aCompLoader = UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
// XComponent aDoc = null;
@@ -251,11 +254,11 @@ public class OfficePrint {
static boolean exportToPDF(XComponent _xComponent, String _sDestinationName)
{
XServiceInfo xServiceInfo =
- (XServiceInfo) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XServiceInfo.class, _xComponent
);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
PropertyValue aFiltername = new PropertyValue();
aFiltername.Name = "FilterName";
aFiltername.Value = getFilterName_forPDF(xServiceInfo);
@@ -266,7 +269,7 @@ public class OfficePrint {
try
{
XStorable store =
- (XStorable) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XStorable.class, _xComponent
);
store.storeToURL(_sDestinationName, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
@@ -371,6 +374,10 @@ public class OfficePrint {
* Due to the fact we use a printer to convert the file to postscript, the default printer
* to create such postscript format must be installed, this is not tested here.
*
+ * @param _aGTA
+ * @param _sInputURL
+ * @param _sOutputURL
+ * @param _sPrintFileURL
* @return true, if print has been done.
* Be careful, true means only print returns with no errors, to be sure print is really done
* check existance of _sPrintFileURL
@@ -532,7 +539,7 @@ public class OfficePrint {
if (_aGTA.isStoreAllowed())
{
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _aDoc);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _aDoc);
if (aStorable != null)
{
PropertyValue [] szEmptyArgs = new PropertyValue [0];
@@ -571,7 +578,7 @@ public class OfficePrint {
// Change Pagesettings to DIN A4
GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
- XPrintable aPrintable = (XPrintable) UnoRuntime.queryInterface( XPrintable.class, _aDoc);
+ XPrintable aPrintable = UnoRuntime.queryInterface( XPrintable.class, _aDoc);
if (aPrintable != null)
{
// System.out.println(" Set PaperFormat to DIN A4");
@@ -595,7 +602,7 @@ public class OfficePrint {
{
if (_aGTA.getPrinterName() != null)
{
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// PropertyValue [] aPrintProps = new PropertyValue[1];
PropertyValue Arg = new PropertyValue();
Arg.Name = "Name";
@@ -619,20 +626,20 @@ public class OfficePrint {
// int nPropsCount = 0;
// If we are a SpreadSheet (calc), we need to set PrintAllSheets property to 'true'
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
Object aSettings = xMSF.createInstance( "com.sun.star.sheet.GlobalSheetSettings" );
if (aSettings != null)
{
- XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, aSettings );
+ XPropertySet xPropSet = UnoRuntime.queryInterface( XPropertySet.class, aSettings );
xPropSet.setPropertyValue( "PrintAllSheets", new Boolean( true ) );
GlobalLogWriter.get().println("PrintAllSheets := true");
}
}
- ArrayList aPrintProps = new ArrayList();
+ ArrayList<PropertyValue> aPrintProps = new ArrayList<PropertyValue>();
// GlobalLogWriter.get().println("Property FileName:=" + _sPrintFileURL);
// PropertyValue [] aPrintProps = new PropertyValue[nProperties];
@@ -730,6 +737,9 @@ public class OfficePrint {
/**
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
* @return true, if the reference (*.prrn file) based on given output path and given input path exist.
* If OVERWRITE_REFERENCE is set, always return false.
*/
@@ -783,6 +793,11 @@ public class OfficePrint {
* if is null, print only near the Input file path
* _sPrintType ".prn" Print input file with StarOffice/OpenOffice.org and the default printer as PostScript
*
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
+ * @return
+ * @throws ConvWatchCancelException
*/
public static boolean buildReference(GraphicalTestArguments _aGTA,
String _sAbsoluteOutputPath,
@@ -933,7 +948,7 @@ public class OfficePrint {
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
@@ -975,7 +990,7 @@ public class OfficePrint {
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
@@ -1066,7 +1081,7 @@ public class OfficePrint {
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
if (! aNameAccess.hasByName(_sFilterName))
@@ -1134,7 +1149,7 @@ public class OfficePrint {
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection =UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
@@ -1143,7 +1158,7 @@ public class OfficePrint {
}
if (aTypeDetection != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
if (aNameAccess != null)
{
@@ -1242,12 +1257,12 @@ public class OfficePrint {
// TODO: Do we need to wait?
TimeHelper.waitInSeconds(1, "wait after loadFromURL.");
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
// String sFilter = getFilterName_forExcel(xServiceInfo);
// System.out.println("Filter is " + sFilter);
// store the document in an other directory
- XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, aDoc);
+ XStorable xStorable = UnoRuntime.queryInterface( XStorable.class, aDoc);
if (xStorable == null)
{
GlobalLogWriter.get().println("com.sun.star.frame.XStorable is null");
@@ -1266,7 +1281,7 @@ public class OfficePrint {
// initialize PropertyArray
// PropertyValue [] aStoreProps = new PropertyValue[ nPropertyCount ];
// int nPropertyIndex = 0;
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
String sExtension = "";
diff --git a/qadevOOo/runner/graphical/BuildID.java b/qadevOOo/runner/graphical/BuildID.java
index 4c5907ff34ad..cf9188d84a47 100644
--- a/qadevOOo/runner/graphical/BuildID.java
+++ b/qadevOOo/runner/graphical/BuildID.java
@@ -93,7 +93,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("soffice executable not found.");
+ GlobalLogWriter.println("soffice executable not found.");
}
// int dummy = 0;
@@ -119,7 +119,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("Property Build, can't open file '" + sOfficePath + "', please check.");
+ GlobalLogWriter.println("Property Build, can't open file '" + sOfficePath + "', please check.");
}
return sBuildID;
}
@@ -144,7 +144,7 @@ public class BuildID
}
else
{
- GlobalLogWriter.get().println("Property Build, can't open file '" + sOfficePath + "', please check.");
+ GlobalLogWriter.println("Property Build, can't open file '" + sOfficePath + "', please check.");
}
return sBuildID;
}
diff --git a/qadevOOo/runner/graphical/DirectoryHelper.java b/qadevOOo/runner/graphical/DirectoryHelper.java
index f3349da2800a..46930d19425f 100644
--- a/qadevOOo/runner/graphical/DirectoryHelper.java
+++ b/qadevOOo/runner/graphical/DirectoryHelper.java
@@ -38,7 +38,7 @@ import java.util.ArrayList;
*/
public class DirectoryHelper
{
- ArrayList m_aFileList = new ArrayList();
+ ArrayList<String> m_aFileList = new ArrayList<String>();
boolean m_bRecursiveIsAllowed = true;
void setRecursiveIsAllowed(boolean _bValue)
@@ -73,6 +73,10 @@ public class DirectoryHelper
* System.out.println(aEntry);
* }
*
+ * @param _sDirectory
+ * @param _aFileFilter
+ * @param _bRecursiveIsAllowed
+ * @return list of directories
*/
public static Object[] traverse( String _sDirectory, FileFilter _aFileFilter, boolean _bRecursiveIsAllowed )
{
diff --git a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
index b465437f578f..c3ec2b3e8336 100644
--- a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
+++ b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
@@ -44,8 +44,8 @@ abstract public class EnhancedComplexTestCase extends ComplexTestCase implements
private void callEntry(String _sEntry, ParameterHelper _aParam)
{
- log.println("- next file is: ------------------------------");
- log.println(_sEntry);
+ // log.println("- next file is: ------------------------------");
+ log.println("File: " + _sEntry);
// TODO: check if 'sEntry' is a guilty document.
File aFile = new File(_aParam.getInputPath());
String sPath = _aParam.getInputPath();
@@ -79,7 +79,8 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
// sNewDiffPath = FileHelper.appendPath(sNewDiffPath, sNewSubDir);
// }
}
- log.println("sEntry: " + _sEntry + " " /* + sNewReferencePath + " " */ + sNewOutputPath);
+ // log.println("sEntry: " + _sEntry + " " /* + sNewReferencePath + " " */ + sNewOutputPath);
+ log.println("Outputpath: " + sNewOutputPath);
// call interface with parameters
@@ -187,12 +188,34 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
}
else
{
- String sPath = FileHelper.getPath(sInputPath);
- String sBasename = FileHelper.getBasename(sInputPath);
+ String sInputPathWithPDF = sInputPath + ".pdf";
+ File aInputPathWithPDF = new File(sInputPathWithPDF);
- // there exist an index file, therefore we assume the given
- // file is already converted to postscript or pdf
- runThroughEveryReportInIndex(sPath, sBasename, _aParam);
+ if (aInputPathWithPDF.exists() &&
+ _aParam.getReferenceType().toLowerCase().equals("pdf"))
+ {
+ // create PDF only if a pdf file exists and creatortype is set to PDF
+ callEntry(sInputPathWithPDF, _aParam);
+ }
+ else
+ {
+ String sInputPathWithPS = sInputPath + ".ps";
+
+ File aInputPathWithPS = new File(sInputPathWithPS);
+ if (aInputPathWithPS.exists())
+ {
+ callEntry(sInputPathWithPS, _aParam);
+ }
+ else
+ {
+ String sPath = FileHelper.getPath(sInputPath);
+ String sBasename = FileHelper.getBasename(sInputPath);
+
+ // there exist an index file, therefore we assume the given
+ // file is already converted to postscript or pdf
+ runThroughEveryReportInIndex(sPath, sBasename, _aParam);
+ }
+ }
}
}
}
@@ -210,7 +233,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
{
// special case for odb files
int nFileCount = aIniFile.getIntValue(_sBasename, "reportcount", 0);
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
for (int i=0;i<nFileCount;i++)
{
String sValue = aIniFile.getValue(_sBasename, "report" + i);
@@ -230,7 +253,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
// get the bad status and store it into the
for (int i=0;i<aList.size();i++)
{
- String sEntry = (String)aList.get(i);
+ String sEntry = aList.get(i);
callEntry(sEntry, _aParam);
// we want to know the current status of the run through
@@ -265,7 +288,12 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
}
}
}
+ else
+ {
+ assure("File '" + sIndexFile + "' doesn't exists.", aIndexFile.exists(), true);
+ }
}
+
private String getPSorPDFNameFromIniFile(IniFile _aIniFile, String _sName)
{
boolean bHasPostscriptOrPDF = false;
@@ -419,7 +447,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
{
// special case for odb files
int nFileCount = aIniFile.getIntValue(sBasename, "reportcount", 0);
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
for (int i=0;i<nFileCount;i++)
{
String sValue = aIniFile.getValue(sBasename, "report" + i);
@@ -439,7 +467,7 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
for (int i=0;i<aList.size();i++)
{
- String sPSFile = (String)aList.get(i);
+ String sPSFile = aList.get(i);
// TODO: this information has to come out of the ini files
String sStatusRunThrough = "";
diff --git a/qadevOOo/runner/graphical/FileHelper.java b/qadevOOo/runner/graphical/FileHelper.java
index feb9e152e5d9..892f652567c1 100644
--- a/qadevOOo/runner/graphical/FileHelper.java
+++ b/qadevOOo/runner/graphical/FileHelper.java
@@ -50,9 +50,9 @@ public class FileHelper
String sOSArch = System.getProperty("os.arch");
String sOSVersion = System.getProperty("os.version");
- GlobalLogWriter.get().println(sOSName);
- GlobalLogWriter.get().println(sOSArch);
- GlobalLogWriter.get().println(sOSVersion);
+ GlobalLogWriter.println(sOSName);
+ GlobalLogWriter.println(sOSArch);
+ GlobalLogWriter.println(sOSVersion);
}
@@ -110,7 +110,7 @@ public class FileHelper
}
catch (NullPointerException e)
{
- GlobalLogWriter.get().println("Exception caught. FileHelper.isDir('" + _sDir + "')");
+ GlobalLogWriter.println("Exception caught. FileHelper.isDir('" + _sDir + "')");
e.printStackTrace();
}
return false;
@@ -258,7 +258,7 @@ public class FileHelper
}
catch (java.io.IOException e)
{
- GlobalLogWriter.get().println("Exception caught. FileHelper.makeDirectories('" + new_dir.getAbsolutePath() + "')");
+ GlobalLogWriter.println("Exception caught. FileHelper.makeDirectories('" + new_dir.getAbsolutePath() + "')");
}
}
}
@@ -361,9 +361,9 @@ public class FileHelper
{
if (m_bDebugTextShown == false)
{
- GlobalLogWriter.get().println("Found file: " + sName);
- GlobalLogWriter.get().println("Activate debug mode.");
- GlobalLogWriter.get().println("If debug mode is no longer necessary, remove the above file.");
+ GlobalLogWriter.println("Found file: " + sName);
+ GlobalLogWriter.println("Activate debug mode.");
+ GlobalLogWriter.println("If debug mode is no longer necessary, remove the above file.");
m_bDebugTextShown = true;
}
bDebug = true;
@@ -463,6 +463,16 @@ public class FileHelper
{
return false;
}
+ // leave out files starts with '.~lock.' these are OpenOffice.org lock files
+ if (pathname.getName().startsWith(".~lock."))
+ {
+ return false;
+ }
+ // leave out files ends with '#' these could be temp files
+ if (pathname.getName().endsWith("#"))
+ {
+ return false;
+ }
if (pathname.getName().endsWith(".prn"))
{
return false;
@@ -592,7 +602,7 @@ public class FileHelper
if (_sFile.startsWith("file://"))
{
sFilename = FileHelper.getSystemPathFromFileURL(_sFile);
- GlobalLogWriter.get().println("CreateInfoFile: '" + sFilename + "'" );
+ GlobalLogWriter.println("CreateInfoFile: '" + sFilename + "'" );
}
else
{
@@ -682,7 +692,7 @@ public class FileHelper
}
catch (java.io.IOException e)
{
- GlobalLogWriter.get().println("can't create Info file.");
+ GlobalLogWriter.println("can't create Info file.");
e.printStackTrace();
}
aIniFile.close();
diff --git a/qadevOOo/runner/graphical/GlobalLogWriter.java b/qadevOOo/runner/graphical/GlobalLogWriter.java
index a8deabfbce0a..478d3323abda 100644
--- a/qadevOOo/runner/graphical/GlobalLogWriter.java
+++ b/qadevOOo/runner/graphical/GlobalLogWriter.java
@@ -33,11 +33,22 @@ import stats.SimpleLogWriter;
public class GlobalLogWriter
{
private static LogWriter m_aGlobalLogWriter = null;
- public static synchronized void println(String _sMsg)
+
+ /**
+ * This is just a helper to get clearer code.
+ * use this GlobalLogWriter.println(...)
+ * @param _sMsg
+ */
+ protected static synchronized void println(String _sMsg)
{
get().println(_sMsg);
}
- public static synchronized LogWriter get()
+
+ /**
+ * @deprecated use GlobalLogWriter.println(...) direct
+ * @return
+ */
+ protected static synchronized LogWriter get()
{
if (m_aGlobalLogWriter == null)
{
@@ -52,7 +63,7 @@ public class GlobalLogWriter
// get().initialize(null, true);
// }
- public static synchronized void set(LogWriter _aLog)
+ protected static synchronized void set(LogWriter _aLog)
{
m_aGlobalLogWriter = _aLog;
}
diff --git a/qadevOOo/runner/graphical/HTMLResult.java b/qadevOOo/runner/graphical/HTMLResult.java
index 85ee0e88d356..af2a31a308ea 100644
--- a/qadevOOo/runner/graphical/HTMLResult.java
+++ b/qadevOOo/runner/graphical/HTMLResult.java
@@ -59,7 +59,7 @@ public class HTMLResult
catch (java.io.IOException e)
{
e.printStackTrace();
- GlobalLogWriter.get().println("ERROR: Can't create HTML Outputter");
+ GlobalLogWriter.println("ERROR: Can't create HTML Outputter");
// return null;
}
// m_sFilename = sFilename;
diff --git a/qadevOOo/runner/graphical/IDocument.java b/qadevOOo/runner/graphical/IDocument.java
index 3f724d5c5d9c..e23ddd4b91a1 100644
--- a/qadevOOo/runner/graphical/IDocument.java
+++ b/qadevOOo/runner/graphical/IDocument.java
@@ -40,7 +40,7 @@ public interface IDocument
* @param _sDocument
* @param _sResult
* @param _aParams
- * @throws graphical.DocumentLoaderException
+ * @throws OfficeException
*/
public void checkOneFile(String _sDocument, String _sResult, ParameterHelper _aParams) throws OfficeException;
}
diff --git a/qadevOOo/runner/graphical/IniFile.java b/qadevOOo/runner/graphical/IniFile.java
index 832aef795e71..bd54a66b65fd 100644
--- a/qadevOOo/runner/graphical/IniFile.java
+++ b/qadevOOo/runner/graphical/IniFile.java
@@ -26,7 +26,7 @@
************************************************************************/
package graphical;
-import java.io.BufferedReader;
+// import java.io.BufferedReader;
import java.io.File;
import java.io.RandomAccessFile;
import java.util.ArrayList;
@@ -44,7 +44,7 @@ public class IniFile implements Enumeration
* Problem, if ini file changed why other write something difference, we don't realise this.
*/
private String m_sFilename;
- private ArrayList m_aList;
+ private ArrayList<String> m_aList;
boolean m_bListContainUnsavedChanges = false;
private int m_aEnumerationPos = 0;
@@ -76,13 +76,13 @@ public class IniFile implements Enumeration
}
}
- private ArrayList loadLines()
+ private ArrayList<String> loadLines()
{
File aFile = new File(m_sFilename);
- ArrayList aLines = new ArrayList();
+ ArrayList<String> aLines = new ArrayList<String>();
if (!aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file '" + m_sFilename + "', will be created.");
+ // GlobalLogWriter.println("couldn't find file '" + m_sFilename + "', will be created.");
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
// m_bListContainUnsavedChanges = false;
return aLines;
@@ -104,14 +104,14 @@ public class IniFile implements Enumeration
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception occurs while reading from file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception occurs while reading from file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
try
@@ -120,8 +120,8 @@ public class IniFile implements Enumeration
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Couldn't close file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Couldn't close file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
return aLines;
@@ -165,7 +165,7 @@ public class IniFile implements Enumeration
private String getItem(int i)
{
- return (String) m_aList.get(i);
+ return m_aList.get(i);
}
private String buildSectionName(String _sSectionName)
@@ -380,7 +380,7 @@ public class IniFile implements Enumeration
}
catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
+ GlobalLogWriter.println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
}
}
return nValue;
@@ -395,6 +395,8 @@ public class IniFile implements Enumeration
write back the ini file to the disk, only if there exist changes
* @deprecated use close() instead!
*/
+
+ // TODO: make private
public void store()
{
if (m_bListContainUnsavedChanges == false)
@@ -411,7 +413,7 @@ public class IniFile implements Enumeration
aFile.delete();
if (aFile.exists())
{
- GlobalLogWriter.get().println("Couldn't delete the file " + m_sFilename);
+ GlobalLogWriter.println("Couldn't delete the file " + m_sFilename);
return;
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "Couldn't delete the file " + m_sFilename);
}
@@ -439,14 +441,14 @@ public class IniFile implements Enumeration
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file for writing " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file for writing " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception occurs while writing to file " + m_sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception occurs while writing to file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
// DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
}
}
@@ -467,7 +469,10 @@ public class IniFile implements Enumeration
1. section doesn't exist, goto end and insert a new section, insert a new key value pair
2. section exist but key not, search section, search key, if key is -1 get last known key position and insert new key value pair there
3. section exist and key exist, remove the old key and insert the key value pair at the same position
- */
+ * @param _sSection
+ * @param _sKey
+ * @param _sValue
+ */
public void insertValue(String _sSection, String _sKey, String _sValue)
{
int i = findSection(_sSection);
@@ -637,7 +642,7 @@ public class IniFile implements Enumeration
{
while (i < m_aList.size())
{
- String sLine = (String) m_aList.get(i);
+ String sLine = m_aList.get(i);
if (sLine.startsWith("["))
{
return i;
@@ -657,7 +662,7 @@ public class IniFile implements Enumeration
int nLineWithSection = findNextSection(m_aEnumerationPos);
if (nLineWithSection != -1)
{
- String sSection = (String) m_aList.get(nLineWithSection);
+ String sSection = m_aList.get(nLineWithSection);
m_aEnumerationPos = findNextSection(nLineWithSection + 1);
sSection = sectionToString(sSection);
return sSection;
diff --git a/qadevOOo/runner/graphical/JPEGComparator.java b/qadevOOo/runner/graphical/JPEGComparator.java
index ed3417e04c9c..a643b2b333c3 100644
--- a/qadevOOo/runner/graphical/JPEGComparator.java
+++ b/qadevOOo/runner/graphical/JPEGComparator.java
@@ -26,18 +26,19 @@
*
* ***********************************************************************
*/
-
package graphical;
import helper.OSHelper;
import helper.ProcessHandler;
import java.io.File;
+import java.io.IOException;
/**
* Helper class to interpret a jpg filename
*/
class NameDPIPage
{
+
String Name;
int DPI;
int Page;
@@ -69,20 +70,20 @@ class NameDPIPage
String sDPI = sNameNoSuffix.substring(nDPIStart + 1, sNameNoSuffix.length() - 8);
try
{
- nDPI = Integer.valueOf(sDPI).intValue();
+ nDPI = Integer.valueOf(sDPI).intValue();
}
- catch(java.lang.NumberFormatException e)
+ catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("DPI: Number format exception");
+ GlobalLogWriter.println("DPI: Number format exception");
}
String sPage = sNameNoSuffix.substring(sNameNoSuffix.length() - 4);
try
{
- nPage = Integer.valueOf(sPage).intValue();
+ nPage = Integer.valueOf(sPage).intValue();
}
- catch(java.lang.NumberFormatException e)
+ catch (java.lang.NumberFormatException e)
{
- GlobalLogWriter.get().println("Page: Number format exception");
+ GlobalLogWriter.println("Page: Number format exception");
}
}
}
@@ -95,6 +96,77 @@ class NameDPIPage
}
}
+class CountNotXXXPixelsFromImage extends Thread
+{
+
+ private String m_sFilename;
+ protected int m_nValue;
+
+ CountNotXXXPixelsFromImage(String _sFilename)
+ {
+ m_sFilename = _sFilename;
+ }
+
+ public int getValue()
+ {
+ return m_nValue;
+ }
+
+ protected void setValue(int _nValue)
+ {
+ m_nValue = _nValue;
+ }
+
+ protected String getFilename()
+ {
+ return m_sFilename;
+ }
+}
+
+class CountNotWhitePixelsFromImage extends CountNotXXXPixelsFromImage
+{
+
+ CountNotWhitePixelsFromImage(String _sFilename)
+ {
+ super(_sFilename);
+ }
+
+ public void run()
+ {
+ try
+ {
+ final int nNotWhiteCount = PixelCounter.countNotWhitePixelsFromImage(getFilename());
+ setValue(nNotWhiteCount);
+ }
+ catch (java.io.IOException e)
+ {
+ m_nValue = -1;
+ }
+ }
+}
+
+class CountNotBlackPixelsFromImage extends CountNotXXXPixelsFromImage
+{
+
+ CountNotBlackPixelsFromImage(String _sFilename)
+ {
+ super(_sFilename);
+ }
+
+ public void run()
+ {
+ try
+ {
+ final int nNotBlackCount = PixelCounter.countNotBlackPixelsFromImage(getFilename());
+ setValue(nNotBlackCount);
+ }
+ catch (java.io.IOException e)
+ {
+ m_nValue = -1;
+ }
+ }
+}
+
/**
*
* @author ll93751
@@ -102,10 +174,12 @@ class NameDPIPage
public class JPEGComparator extends EnhancedComplexTestCase
{
// @Override
+
public String[] getTestMethodNames()
{
return new String[]{"CompareJPEGvsJPEG"};
}
+ private Tolerance m_aTolerance;
/**
* test function.
@@ -121,8 +195,8 @@ public class JPEGComparator extends EnhancedComplexTestCase
public void checkOneFile(String _sDocumentName, String _sResult, ParameterHelper _aParams) throws OfficeException
{
- // private void callEveryPictureInIniFile(IniFile _aIniFile, String _sSectionName, ParameterHelper _aParam)
- // {
+ // private void callEveryPictureInIniFile(IniFile _aIniFile, String _sSectionName, ParameterHelper _aParam)
+ // {
String sPath = FileHelper.getPath(_sDocumentName);
String sSectionName = FileHelper.getBasename(_sDocumentName);
@@ -141,8 +215,9 @@ public class JPEGComparator extends EnhancedComplexTestCase
// only which has 'pages' has also pictures
int nPages = aIniFile.getIntValue(sSectionName, "pages", 0);
String sJPEGSchema = aIniFile.getValue(sSectionName, "jpegschema");
-
- for (int i=1 ; i<=nPages ; i++)
+ int nTolerance = aIniFile.getIntValue(sSectionName, "tolerance", 0);
+ m_aTolerance = new Tolerance(nTolerance);
+ for (int i = 1; i <= nPages; i++)
{
String sJPEGFilename = JPEGCreator.getFilenameForJPEGSchema(sJPEGSchema, i);
// String sPath = FileHelper.getPath(_aParam.getInputPath());
@@ -171,7 +246,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
evaluateResult(sResultIniFile, _aParams);
}
-
private void evaluateResult(String _sDocument, ParameterHelper _aParams)
{
String sResultIniFile = _sDocument + ".ini";
@@ -185,7 +259,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
IniFile aResultIniFile = new IniFile(sResultIniFile);
int nPages = aResultIniFile.getIntValue("global", "pages", 0);
- for (int i=0;i<nPages;i++)
+ for (int i = 0; i < nPages; i++)
{
String sCurrentPage = "page" + String.valueOf(i + 1);
int nPercent = aResultIniFile.getIntValue(sCurrentPage, "percent", -1);
@@ -195,13 +269,13 @@ public class JPEGComparator extends EnhancedComplexTestCase
}
else if (nPercent <= 5)
{
- bad ++;
- ok_status=2;
+ bad++;
+ ok_status = 2;
}
else
{
- ugly ++;
- ok_status=3;
+ ugly++;
+ ok_status = 3;
}
}
@@ -226,7 +300,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
sBad = " bad:=" + bad;
sStatusMessage += sBad;
}
- if (ugly > 0)
+ if (ugly > 0)
{
sUgly = " ugly:=" + ugly;
sStatusMessage += sUgly;
@@ -263,53 +337,67 @@ public class JPEGComparator extends EnhancedComplexTestCase
_aParams.getTestParameters().put("current_ok_status", ok_status);
// if we have a ugly page, we must return this as a FAILED STATUS in Log file!
- // assure( "There exist pages marked as ugly.", ugly == 0)
+ assure("There exist pages marked as ugly.", ugly == 0);
}
private void checkOnePicture(String _sDocumentName, String _sResult, ParameterHelper _aParams)
{
GlobalLogWriter.println("JPEG: Compare difference between '" + _sDocumentName + "' and '" + _sResult + "'");
- File aResultFile = new File(_sResult);
- if (aResultFile.isDirectory())
- {
- // result is just a directory, so we search for the basename of the source and take this.
- String sBasename = FileHelper.getBasename(_sDocumentName);
- String sResultFilename = FileHelper.appendPath(_sResult, sBasename);
- aResultFile = new File(sResultFilename);
- if (aResultFile.exists())
- {
- // Original and Result exists
- String sInputPath = _aParams.getInputPath();
- if (sInputPath.toLowerCase().endsWith("index.ini"))
- {
- // special case
- // we want to get the buildid from the info file.
-
- }
-
- compareJPEG(_sDocumentName, sResultFilename, _aParams);
-
- }
- else
- {
- GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + sResultFilename + "'");
- }
- }
- else
- {
- // result is also a file
- if (aResultFile.exists())
- {
- compareJPEG(_sDocumentName, _sResult, _aParams);
- }
- else
- {
- GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + _sResult + "'");
- }
- }
- }
+ File aResultFile = new File(_sResult);
+ if (aResultFile.isDirectory())
+ {
+ // result is just a directory, so we search for the basename of the source and take this.
+ String sBasename = FileHelper.getBasename(_sDocumentName);
+ String sResultFilename = FileHelper.appendPath(_sResult, sBasename);
+ aResultFile = new File(sResultFilename);
+ if (aResultFile.exists())
+ {
+ // Original and Result exists
+ String sInputPath = _aParams.getInputPath();
+ if (sInputPath.toLowerCase().endsWith("index.ini"))
+ {
+ // special case
+ // we want to get the buildid from the info file.
+ }
+ compareJPEG(_sDocumentName, sResultFilename, _aParams);
+ }
+ else
+ {
+ String sResultFilenamePDF = util.utils.replaceAll13(sResultFilename, ".ps_", ".pdf_");
+ File aResultPDFFile = new File(sResultFilenamePDF);
+ if (aResultPDFFile.exists())
+ {
+ // Original and Result exists
+ String sInputPath = _aParams.getInputPath();
+ if (sInputPath.toLowerCase().endsWith("index.ini"))
+ {
+ // special case
+ // we want to get the buildid from the info file.
+ }
+
+ compareJPEG(_sDocumentName, sResultFilenamePDF, _aParams);
+ }
+ else
+ {
+ GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + sResultFilename + "'");
+ }
+ }
+ }
+ else
+ {
+ // result is also a file
+ if (aResultFile.exists())
+ {
+ compareJPEG(_sDocumentName, _sResult, _aParams);
+ }
+ else
+ {
+ GlobalLogWriter.println("Warning: Result JPEG doesn't exists '" + _sResult + "'");
+ }
+ }
+ }
/**
* compare 2 JPEGs, it is a need, that both _sDocumentName and _sResultFilename exist.
@@ -318,7 +406,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
* @param _aParams
* @return 0=no difference !=0 both files differ
*/
-
private void compareJPEG(String _sDocumentName, String _sResult, ParameterHelper _aParams)
{
NameDPIPage aNameDPIPage = NameDPIPage.interpret(_sDocumentName);
@@ -328,7 +415,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
String sDestinationBasename = FileHelper.getBasename(_sResult);
String sDestinationPath = FileHelper.getPath(_sResult);
- if (! sSourcePath.equals(sDestinationPath))
+ if (!sSourcePath.equals(sDestinationPath))
{
// we want to have all in one Directory, Original, Reference and the Difference result.
// copy the original file to the reference path
@@ -354,9 +441,23 @@ public class JPEGComparator extends EnhancedComplexTestCase
// this means, 1=only one color, no differences found.
int nResult = identify(sDifference);
int nPercentColorDiffer = 0;
- String sResult = "NO";
+
+ String sResult = "YES";
+
+ if (m_aTolerance != null)
+ {
+ final int nAcceptedTolerance = m_aTolerance.getAccept();
+ if (nResult <= nAcceptedTolerance)
+ {
+ nResult = 1;
+ sResult = "IN TOLERANCE";
+ GlobalLogWriter.println("The differences are in tolerance.");
+
+ }
+ }
if (nResult != 1)
{
+ sResult = "NO";
try
{
nPercentColorDiffer = estimateGfx(sSource, sDestination, sDifference);
@@ -366,10 +467,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
GlobalLogWriter.println("Can't estimate the different colors. " + e.getMessage());
}
}
- else
- {
- sResult = "YES";
- }
// store the result in a result.ini file
String sResultFile = FileHelper.appendPath(sDestinationPath, aNameDPIPage.Name + ".ini");
@@ -380,14 +477,16 @@ public class JPEGComparator extends EnhancedComplexTestCase
}
IniFile aResultIni = new IniFile(sResultFile);
- String[] aComment = {
+ String[] aComment =
+ {
"; This file is automatically created by a graphical.JPEGComparator run",
"; ",
"; If you see this file in a browser you may have forgotten to set the follows in the property file",
"; " + PropertyName.DOC_COMPARATOR_HTML_OUTPUT_PREFIX + "=http://<computer>/gfxcmp_ui/cw.php?inifile=",
"; Please check the documentation if you got confused.",
"; ",
- "; "};
+ "; "
+ };
aResultIni.insertFirstComment(aComment);
// write down the global flags
@@ -396,7 +495,7 @@ public class JPEGComparator extends EnhancedComplexTestCase
// INIoutput.writeValue("buildid", _sBuildID);
// INIoutput.writeValue("refbuildid", _sRefBuildID);
- String sRefBuildId = (String)_aParams.getTestParameters().get("RefBuildId");
+ String sRefBuildId = (String) _aParams.getTestParameters().get("RefBuildId");
if (sRefBuildId == null)
{
sRefBuildId = "";
@@ -410,8 +509,8 @@ public class JPEGComparator extends EnhancedComplexTestCase
// write down flags for each page
String sSection = "page" + String.valueOf(nPage);
- aResultIni.insertValue(sSection, "oldgfx", sSource);
- aResultIni.insertValue(sSection, "newgfx", sDestination);
+ aResultIni.insertValue(sSection, "oldgfx", sSource);
+ aResultIni.insertValue(sSection, "newgfx", sDestination);
aResultIni.insertValue(sSection, "diffgfx", sDifference);
aResultIni.insertValue(sSection, "percent", nPercentColorDiffer);
aResultIni.insertValue(sSection, "BM", "false");
@@ -490,8 +589,6 @@ public class JPEGComparator extends EnhancedComplexTestCase
// INIoutput.close();
// return bResultIsOk;
// }
-
-
/**
* count how much pixel differ and between Old or New and the Difference graphics
*
@@ -517,75 +614,119 @@ public class JPEGComparator extends EnhancedComplexTestCase
* @return the count of different pixels
* @throws java.io.IOException if file access is not possible
*/
-
public static int estimateGfx(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
- throws java.io.IOException
- {
- // new count pixels
- final int nNotWhiteCount_OldGraphic = PixelCounter.countNotWhitePixelsFromImage(_sOldGfx);
- final int nNotWhiteCount_NewGraphic = PixelCounter.countNotWhitePixelsFromImage(_sNewGfx);
- final int nNotBlackCount_DiffGraphic = PixelCounter.countNotBlackPixelsFromImage(_sDiffGfx);
+ throws java.io.IOException
+ {
+ TimeHelper a = new TimeHelper();
+ a.start();
+ // Count Pixels
+ final int nNotWhiteCount_OldGraphic = PixelCounter.countNotWhitePixelsFromImage(_sOldGfx);
+ final int nNotWhiteCount_NewGraphic = PixelCounter.countNotWhitePixelsFromImage(_sNewGfx);
+ final int nNotBlackCount_DiffGraphic = PixelCounter.countNotBlackPixelsFromImage(_sDiffGfx);
+
+ // Count Pixels in different threads
+// CountNotWhitePixelsFromImage t1 = new CountNotWhitePixelsFromImage(_sOldGfx);
+// CountNotWhitePixelsFromImage t2 = new CountNotWhitePixelsFromImage(_sNewGfx);
+// CountNotBlackPixelsFromImage t3 = new CountNotBlackPixelsFromImage(_sDiffGfx);
+// t1.start();
+// t2.start();
+// t3.start();
+// try
+// {
+// t1.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 1 failed: " + ex.getMessage());
+// }
+// try
+// {
+// t2.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 2 failed: " + ex.getMessage());
+// }
+// try
+// {
+// t3.join();
+// }
+// catch (InterruptedException ex)
+// {
+// GlobalLogWriter.get().println("Thread 3 failed: " + ex.getMessage());
+// }
+// final int nNotWhiteCount_OldGraphic = t1.getValue();
+// final int nNotWhiteCount_NewGraphic = t2.getValue();
+// final int nNotBlackCount_DiffGraphic = t3.getValue();
+
+ a.stop();
+ GlobalLogWriter.println("Thread Time is: " + a.getTime());
- int nMinNotWhiteCount = Math.min(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
+ int nMinNotWhiteCount = Math.min(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
- // check if not zero
+ // check if not zero
+ if (nMinNotWhiteCount == 0)
+ {
+ nMinNotWhiteCount = Math.max(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
if (nMinNotWhiteCount == 0)
{
- nMinNotWhiteCount = Math.max(nNotWhiteCount_NewGraphic, nNotWhiteCount_OldGraphic);
- if (nMinNotWhiteCount == 0)
- {
- nMinNotWhiteCount = 1;
- }
+ nMinNotWhiteCount = 1;
}
-
- int nPercent = Math.abs(nNotBlackCount_DiffGraphic * 100 / nMinNotWhiteCount);
- GlobalLogWriter.get().println( "Graphics check, pixel based:" + String.valueOf(nPercent) + "% pixel differ ");
- return nPercent;
}
- private static int compareJPEG(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
+ int nPercent = Math.abs(nNotBlackCount_DiffGraphic * 100 / nMinNotWhiteCount);
+ GlobalLogWriter.println("Graphics check, pixel based:" + String.valueOf(nPercent) + "% pixel differ ");
+ return nPercent;
+ }
+
+ private static int compareJPEG(String _sOldGfx, String _sNewGfx, String _sDiffGfx)
+ {
+ String sComposite = "composite";
+ if (OSHelper.isWindows())
{
- String sComposite = "composite";
- if (OSHelper.isWindows())
+ sComposite = "composite.exe";
+ String sIMPath = (String) param.get("imagemagick.path");
+ if (sIMPath != null)
{
- sComposite = "composite.exe";
+ sComposite = FileHelper.appendPath(sIMPath, sComposite);
}
+ }
- // String sCommand = sComposite + " -compose difference " +
- // StringHelper.doubleQuoteIfNeed(_sOldGfx) + " " +
- // StringHelper.doubleQuoteIfNeed(_sNewGfx) + " " +
- // StringHelper.doubleQuoteIfNeed(_sDiffGfx);
+ // String sCommand = sComposite + " -compose difference " +
+ // StringHelper.doubleQuoteIfNeed(_sOldGfx) + " " +
+ // StringHelper.doubleQuoteIfNeed(_sNewGfx) + " " +
+ // StringHelper.doubleQuoteIfNeed(_sDiffGfx);
- String[] sCommandArray =
- {
- sComposite,
- "-compose",
- "difference",
- _sOldGfx,
- _sNewGfx,
- _sDiffGfx
- };
-
- ProcessHandler aHandler = new ProcessHandler(sCommandArray);
- boolean bBackValue = aHandler.executeSynchronously();
- int nExitCode = aHandler.getExitCode();
- if (nExitCode != 0)
- {
- GlobalLogWriter.println("'" + sComposite + "' return with ");
- String sBack = aHandler.getOutputText();
- GlobalLogWriter.get().println("'" + sBack + "'");
- }
- else
+ String[] sCommandArray =
+ {
+ sComposite,
+ "-compose",
+ "difference",
+ _sOldGfx,
+ _sNewGfx,
+ _sDiffGfx
+ };
+
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+ if (nExitCode != 0)
+ {
+ GlobalLogWriter.println("'" + sComposite + "' return with ");
+ String sBack = aHandler.getOutputText();
+ GlobalLogWriter.println("'" + sBack + "'");
+ }
+ else
+ {
+ // creates an extra smaller difference picture
+ File aDiffFile = new File(_sDiffGfx);
+ if (aDiffFile.exists())
{
- // creates an extra smaller difference picture
- File aDiffFile = new File(_sDiffGfx);
- if (aDiffFile.exists())
- {
- JPEGCreator.convertToNearSameFileWithWidth340(_sDiffGfx);
- }
+ JPEGCreator.convertToNearSameFileWithWidth340(_sDiffGfx);
}
- return nExitCode;
}
+ return nExitCode;
+ }
/**
* wrapper for ImageMagick identify,
@@ -593,58 +734,60 @@ public class JPEGComparator extends EnhancedComplexTestCase
* if it's only one color (nResult==1), like background color, there is no difference.
*/
int identify(String _sDiffGfx)
+ {
+ int nResult = 0;
+ // would like to know what the meaning of %k is for ImageMagick's 'identify'
+ String sIM_Format = "%k";
+ // if (OSHelper.isWindows())
+ // {
+ // sIM_Format = "%%k";
+ // }
+
+ String sIdentify = "identify";
+ if (OSHelper.isWindows())
{
- int nResult = 0;
- // would like to know what the meaning of %k is for ImageMagick's 'identify'
- String sIM_Format = "%k";
- // if (OSHelper.isWindows())
- // {
- // sIM_Format = "%%k";
- // }
-
- String sIdentify = "identify";
- if (OSHelper.isWindows())
+ sIdentify = "identify.exe";
+ String sIMPath = (String) param.get("imagemagick.path");
+ if (sIMPath != null)
{
- sIdentify = "identify.exe";
+ sIdentify = FileHelper.appendPath(sIMPath, sIdentify);
}
+ }
- // String sCommand = sIdentify + " " + sIM_Format + " " + StringHelper.doubleQuoteIfNeed(_sDiffGfx);
-
- String[] sCommandArray =
- {
- sIdentify,
- "-format",
- sIM_Format,
- _sDiffGfx
- };
- ProcessHandler aHandler = new ProcessHandler(sCommandArray);
- boolean bBackValue = aHandler.executeSynchronously();
- int nExitCode = aHandler.getExitCode();
-
- String sBack = aHandler.getOutputText();
- GlobalLogWriter.get().println("'" + sBack + "'");
+ // String sCommand = sIdentify + " " + sIM_Format + " " + StringHelper.doubleQuoteIfNeed(_sDiffGfx);
- // try to interpret the result, which we get as a String
- try
- {
- int nIdx = sBack.indexOf("\n");
- if (nIdx > 0)
- {
- sBack = sBack.substring(0, nIdx);
- }
-
- nResult = Integer.valueOf(sBack).intValue();
- }
- catch(java.lang.NumberFormatException e)
+ String[] sCommandArray =
+ {
+ sIdentify,
+ "-format",
+ sIM_Format,
+ _sDiffGfx
+ };
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+
+ String sBack = aHandler.getOutputText();
+ GlobalLogWriter.println("'" + sBack + "'");
+
+ // try to interpret the result, which we get as a String
+ try
+ {
+ int nIdx = sBack.indexOf("\n");
+ if (nIdx > 0)
{
- GlobalLogWriter.get().println("identify(): Number format exception");
- nResult = 0;
+ sBack = sBack.substring(0, nIdx);
}
- return nResult;
- }
-
-
+ nResult = Integer.valueOf(sBack).intValue();
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ GlobalLogWriter.println("identify(): Number format exception");
+ nResult = 0;
+ }
+ return nResult;
+ }
// public static void main(String [] _args)
// {
//// give an index.ini file, ok
@@ -670,5 +813,4 @@ public class JPEGComparator extends EnhancedComplexTestCase
//
// org.openoffice.Runner.main(args);
// }
-
}
diff --git a/qadevOOo/runner/graphical/JPEGCreator.java b/qadevOOo/runner/graphical/JPEGCreator.java
index 5f6343d9780d..a4336229e448 100644
--- a/qadevOOo/runner/graphical/JPEGCreator.java
+++ b/qadevOOo/runner/graphical/JPEGCreator.java
@@ -75,18 +75,35 @@ public class JPEGCreator extends EnhancedComplexTestCase
{
createSmallPictures(sJPEGNameSchema);
+ // read out tolerance file
+ String sFileDir = FileHelper.getPath(_sDocumentName);
+ String sBasename = FileHelper.getBasename(_sDocumentName);
+ int nTolerance = 0;
+ String sToleranceFile = FileHelper.appendPath(sFileDir, "tolerance.ini");
+ File aToleranceFile = new File(sToleranceFile);
+ if (aToleranceFile.exists())
+ {
+ IniFile aIniFile = new IniFile(sToleranceFile);
+ nTolerance = aIniFile.getIntValue(sBasename, "accept", 0); // default for all pages
+ aIniFile.close();
+ }
+
String sIndexFile = FileHelper.appendPath(_sResult, "index.ini");
File aIndexFile = new File(sIndexFile);
if (aIndexFile.exists())
{
// store only if an index file exists
IniFile aIniFile = new IniFile(sIndexFile);
- String sBasename = FileHelper.getBasename(_sDocumentName);
aIniFile.insertValue(sBasename, "jpegschema", sJPEGNameSchema);
aIniFile.insertValue(sBasename, "pages", nPages);
+ aIniFile.insertValue(sBasename, "tolerance", nTolerance);
aIniFile.close();
}
}
+ else
+ {
+ assure("There are no pages in document:'" + _sDocumentName + "', maybe document currupt?", false, true);
+ }
}
/**
@@ -96,6 +113,12 @@ public class JPEGCreator extends EnhancedComplexTestCase
*/
public void createSmallPictures(String _sJPEGSchema)
{
+ ParameterHelper aParam = new ParameterHelper(param);
+ if (! aParam.createSmallPictures())
+ {
+ return;
+ }
+
int nPages = 0;
if (_sJPEGSchema.length() > 0)
{
@@ -124,6 +147,11 @@ public class JPEGCreator extends EnhancedComplexTestCase
*/
public static void convertToNearSameFileWithWidth340(String _sJPEGFilename)
{
+ ParameterHelper aParam = new ParameterHelper(param);
+ if (! aParam.createSmallPictures())
+ {
+ return;
+ }
String sJPEGFilename = _sJPEGFilename.replaceAll("\\\\", "/");
// if (OSHelper.isWindows())
// {
@@ -160,7 +188,13 @@ private static void convertToWidth340(String _sFrom, String _To)
{
// TODO!
// HACK Hard coded!
- sConvertEXE = "C:\\Programme\\ImageMagick-6.0.3-q8\\convert.exe";
+ // sConvertEXE = "C:\\Programme\\ImageMagick-6.0.3-q8\\convert.exe";
+ sConvertEXE = "convert.exe";
+ String sConvertPath = (String)param.get("imagemagick.path");
+ if (sConvertPath != null)
+ {
+ sConvertEXE = FileHelper.appendPath(sConvertPath, sConvertEXE);
+ }
}
String[] sCommandArray =
@@ -178,7 +212,7 @@ private static void convertToWidth340(String _sFrom, String _To)
String sBack = aHandler.getOutputText();
if (sBack.length() > 0)
{
- GlobalLogWriter.get().println("'" + sBack + "'");
+ GlobalLogWriter.println("'" + sBack + "'");
}
// try to interpret the result, which we get as a String
// try
@@ -223,7 +257,7 @@ private static void convertToWidth340(String _sFrom, String _To)
}
else
{
- GlobalLogWriter.get().println("File: '" + _sFile + "' doesn't exist.");
+ GlobalLogWriter.println("File: '" + _sFile + "' doesn't exist.");
return "";
}
String sFileDir = FileHelper.getPath(_sFile);
@@ -291,6 +325,16 @@ private static void convertToWidth340(String _sFrom, String _To)
if (OSHelper.isWindows())
{
sGhostscriptEXE = "gswin32c.exe";
+ String sGhostscriptEXE2 = (String)param.get("gs.exe");
+ if (sGhostscriptEXE2 != null)
+ {
+ sGhostscriptEXE = sGhostscriptEXE2;
+ }
+ String sGhostscriptPath = (String)param.get("gs.path");
+ if (sGhostscriptPath != null)
+ {
+ sGhostscriptEXE = FileHelper.appendPath(sGhostscriptPath, sGhostscriptEXE);
+ }
}
// String sCommand = sGhostscriptEXE + " -dNOPROMPT -dBATCH -sDEVICE=jpeg -r" + String.valueOf(_nResolutionInDPI) + " -dNOPAUSE -sOutputFile=" + StringHelper.doubleQuoteIfNeed(sJPGFilename) + " " + StringHelper.doubleQuoteIfNeed(sOriginalFile);
@@ -333,6 +377,7 @@ private static void convertToWidth340(String _sFrom, String _To)
{
// return only a valid schema name if there at least one page.
sJPEGNameSchema = "";
+ assure("Document '" + sPostscriptOrPDFFile + "' doesn't create pages.", false, true);
}
}
else
diff --git a/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java b/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
index 8a85c6b32afd..86eb28143ed2 100644
--- a/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
+++ b/qadevOOo/runner/graphical/MSOfficePostscriptCreator.java
@@ -88,14 +88,14 @@ public class MSOfficePostscriptCreator implements IOffice
if (! isMSOfficeDocumentFormat(m_sDocumentName))
{
- GlobalLogWriter.get().println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
+ GlobalLogWriter.println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
throw new OfficeException("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
}
}
public void storeAsPostscript() throws OfficeException
{
- GlobalLogWriter.get().println("USE MSOFFICE AS EXPORT FORMAT.");
+ GlobalLogWriter.println("USE MSOFFICE AS EXPORT FORMAT.");
try
{
String sDocumentName = m_sDocumentName + ".ps";
@@ -112,12 +112,12 @@ public class MSOfficePostscriptCreator implements IOffice
catch(OfficeException e)
{
e.printStackTrace();
- GlobalLogWriter.get().println(e.getMessage());
+ GlobalLogWriter.println(e.getMessage());
throw new OfficeException("Exception caught. Problem with MSOffice printer methods.");
}
catch(java.io.IOException e)
{
- GlobalLogWriter.get().println(e.getMessage());
+ GlobalLogWriter.println(e.getMessage());
throw new OfficeException("IOException caught. Problem with MSOffice printer methods.");
}
}
@@ -177,11 +177,11 @@ public class MSOfficePostscriptCreator implements IOffice
private boolean isMSOfficeDocumentFormat(String _sFile)
{
String sDocumentSuffix = FileHelper.getSuffix(_sFile);
- if (isWordDocument(sDocumentSuffix)) return true;
- if (isExcelDocument(sDocumentSuffix)) return true;
- if (isPowerPointDocument(sDocumentSuffix)) return true;
+ if (isWordDocument(sDocumentSuffix)) {return true;}
+ if (isExcelDocument(sDocumentSuffix)) {return true;}
+ if (isPowerPointDocument(sDocumentSuffix)) {return true;}
// if suffix is xml, return also true, but we can't decide if word or excel
- if (sDocumentSuffix.toLowerCase().endsWith(".xml")) return true;
+ if (sDocumentSuffix.toLowerCase().endsWith(".xml")) {return true;}
return false;
}
@@ -191,7 +191,7 @@ public class MSOfficePostscriptCreator implements IOffice
{
String sDocumentSuffix = FileHelper.getSuffix(_sInputFile);
String sFilterName = _aGTA.getExportFilterName();
- ArrayList aStartCommand = new ArrayList();
+ ArrayList<String> aStartCommand = new ArrayList<String>();
if (isWordDocument(sDocumentSuffix))
{
aStartCommand = createWordStoreHelper();
@@ -222,7 +222,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("No Microsoft Office document format found.");
+ GlobalLogWriter.println("No Microsoft Office document format found.");
throw new WrongSuffixException("No MS office document format found.");
}
@@ -249,6 +249,11 @@ public class MSOfficePostscriptCreator implements IOffice
// -----------------------------------------------------------------------------
/**
* print the given file (_sInputFile) to the file name (_sPrintFile)
+ * @param _aGTA
+ * @param _sInputFile
+ * @param _sPrintFilename
+ * @throws OfficeException
+ * @throws java.io.IOException
*/
public void printToFileWithMSOffice( ParameterHelper _aGTA,
String _sInputFile,
@@ -258,7 +263,7 @@ public class MSOfficePostscriptCreator implements IOffice
setPrinterName(_aGTA.getPrinterName());
- ArrayList aStartCommand = new ArrayList();
+ ArrayList<String> aStartCommand = new ArrayList<String>();
if (isWordDocument(sDocumentSuffix))
{
aStartCommand = createWordPrintHelper();
@@ -293,7 +298,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("No Microsoft Office document format found.");
+ GlobalLogWriter.println("No Microsoft Office document format found.");
// TODO: use a better Exception!!!
throw new WrongSuffixException("No Mircosoft Office document format found.");
}
@@ -368,7 +373,13 @@ public class MSOfficePostscriptCreator implements IOffice
}
- ArrayList createWordPrintHelper() throws java.io.IOException
+ private String getPerlExe()
+ {
+ final String sPerlExe = System.getProperty("perl.exe", "perl");
+ return sPerlExe;
+ }
+
+ ArrayList<String> createWordPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -376,7 +387,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaWord = "printViaWord.pl";
- ArrayList aList = searchLocalFile(sPrintViaWord);
+ ArrayList<String> aList = searchLocalFile(sPrintViaWord);
if (aList.isEmpty() == false)
{
return aList;
@@ -465,30 +476,30 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sFileName);
return aList;
}
// TODO: Maybe give a possibility to say where search the script from outside
- ArrayList searchLocalFile(String _sScriptName)
+ ArrayList<String> searchLocalFile(String _sScriptName)
{
String userdir = System.getProperty("user.dir");
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
String sFileName = FileHelper.appendPath(userdir, _sScriptName);
File aPerlScript = new File(sFileName);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("Search for local existance of " + aPerlScript.getAbsolutePath());
+ GlobalLogWriter.println("Search for local existance of " + aPerlScript.getAbsolutePath());
}
if (aPerlScript.exists())
{
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("OK, found it, use this instead the internal one.");
+ GlobalLogWriter.println("OK, found it, use this instead the internal one.");
}
String sName = aPerlScript.getAbsolutePath();
@@ -501,7 +512,7 @@ public class MSOfficePostscriptCreator implements IOffice
return aList;
}
- ArrayList createWordStoreHelper() throws java.io.IOException
+ ArrayList<String> createWordStoreHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -510,7 +521,7 @@ public class MSOfficePostscriptCreator implements IOffice
// ArrayList aList = new ArrayList();
String sSaveViaWord = "saveViaWord.pl";
- ArrayList aList = searchLocalFile(sSaveViaWord);
+ ArrayList<String> aList = searchLocalFile(sSaveViaWord);
if (aList.isEmpty() == false)
{
return aList;
@@ -519,7 +530,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sSaveViaWord);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a perl script: " + sName);
+ GlobalLogWriter.println("No local found, create a perl script: " + sName);
}
File aFile = new File(sName);
@@ -577,13 +588,13 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "$Word->Quit(); " + ls );
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createExcelPrintHelper() throws java.io.IOException
+ ArrayList<String> createExcelPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -591,7 +602,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaExcel = "printViaExcel.pl";
- ArrayList aList = searchLocalFile(sPrintViaExcel);
+ ArrayList<String> aList = searchLocalFile(sPrintViaExcel);
if (aList.isEmpty() == false)
{
return aList;
@@ -599,14 +610,20 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sPrintViaExcel);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a perl script: " + sName);
+ GlobalLogWriter.println("No local found, create a perl script: " + sName);
}
File aFile = new File(sName);
FileWriter out = new FileWriter(aFile);
- out.write( "eval 'exec perl -wS $0 ${1+\"$@\"}' " + ls );
- out.write( " if 0; " + ls );
+ // out.write( "eval 'exec perl -wS $0 ${1+\"$@\"}' " + ls );
+ // out.write( " if 0; " + ls );
+ out.write("#BEGIN" + ls);
+ out.write("#{" + ls);
+ out.write("#" + ls);
+ out.write("# # insert HACK" + ls);
+ out.write("# unshift(@INC, '');" + ls);
+ out.write("#}" + ls);
out.write( "use strict; " + ls );
out.write( " " + ls );
out.write( "if ( $^O ne \"MSWin32\") " + ls );
@@ -675,12 +692,12 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createExcelStoreHelper() throws java.io.IOException
+ ArrayList<String> createExcelStoreHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -688,7 +705,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sSaveViaExcel = "saveViaExcel.pl";
- ArrayList aList = searchLocalFile(sSaveViaExcel);
+ ArrayList<String> aList = searchLocalFile(sSaveViaExcel);
if (aList.isEmpty() == false)
{
return aList;
@@ -696,7 +713,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sSaveViaExcel);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a script: " + sName);
+ GlobalLogWriter.println("No local found, create a script: " + sName);
}
File aFile = new File(sName);
@@ -764,12 +781,12 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "$Excel->Quit(); " + ls );
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
- ArrayList createPowerPointPrintHelper() throws java.io.IOException
+ ArrayList<String> createPowerPointPrintHelper() throws java.io.IOException
{
// create a program in tmp file
String sTmpPath = util.utils.getUsersTempDir();
@@ -777,7 +794,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sPrintViaPowerPoint = "printViaPowerPoint.pl";
- ArrayList aList = searchLocalFile(sPrintViaPowerPoint);
+ ArrayList<String> aList = searchLocalFile(sPrintViaPowerPoint);
if (aList.isEmpty() == false)
{
return aList;
@@ -785,7 +802,7 @@ public class MSOfficePostscriptCreator implements IOffice
String sName = FileHelper.appendPath(sTmpPath, sPrintViaPowerPoint);
if (FileHelper.isDebugEnabled())
{
- GlobalLogWriter.get().println("No local found, create a script: " + sName);
+ GlobalLogWriter.println("No local found, create a script: " + sName);
}
File aFile = new File(sName);
@@ -865,7 +882,7 @@ public class MSOfficePostscriptCreator implements IOffice
out.write( "}" + ls);
out.close();
- aList.add("perl");
+ aList.add(getPerlExe());
aList.add(sName);
return aList;
}
@@ -879,7 +896,7 @@ public class MSOfficePostscriptCreator implements IOffice
File aFile = new File(_sFilename);
if (! aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file " + _sFilename);
+ GlobalLogWriter.println("couldn't find file " + _sFilename);
return "";
}
RandomAccessFile aReader = null;
@@ -911,7 +928,7 @@ public class MSOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("Unknown/unsupported data file: " + aLine);
+ GlobalLogWriter.println("Unknown/unsupported data file: " + aLine);
}
}
}
diff --git a/qadevOOo/runner/graphical/Office.java b/qadevOOo/runner/graphical/Office.java
index 88aeebc6b049..8ecee36cc742 100644
--- a/qadevOOo/runner/graphical/Office.java
+++ b/qadevOOo/runner/graphical/Office.java
@@ -48,6 +48,7 @@ public class Office implements IOffice
m_sResult = _sResult;
if (_aParam.getReferenceType().toLowerCase().equals("ooo") ||
+ _aParam.getReferenceType().toLowerCase().equals("ps") ||
_aParam.getReferenceType().toLowerCase().equals("pdf"))
{
m_aOffice = new OpenOfficePostscriptCreator(_aParam, m_sResult);
diff --git a/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java b/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
index a325ba5aaf0d..a0592d5ce143 100644
--- a/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
+++ b/qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java
@@ -64,7 +64,7 @@ class PropertySetHelper
XPropertySet m_xPropertySet;
public PropertySetHelper(Object _aObj)
{
- m_xPropertySet = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, _aObj);
+ m_xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, _aObj);
}
/**
@@ -115,12 +115,12 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
try
{
XInterface xInterface = (XInterface) getMultiServiceFactory().createInstance( "com.sun.star.frame.Desktop" );
- m_xDesktop = (XDesktop) UnoRuntime.queryInterface(XDesktop.class, xInterface);
+ m_xDesktop = UnoRuntime.queryInterface(XDesktop.class, xInterface);
}
catch (com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("ERROR: uno.Exception caught");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: uno.Exception caught");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
return m_xDesktop;
@@ -149,7 +149,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
{
if (m_xMultiServiceFactory == null)
{
- m_xMultiServiceFactory = (XMultiServiceFactory)m_aParameterHelper.getMultiServiceFactory();
+ m_xMultiServiceFactory = m_aParameterHelper.getMultiServiceFactory();
}
return m_xMultiServiceFactory;
}
@@ -192,95 +192,11 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
/**
* This is the main test Function of current ReportDesignerTest
+ * @param _sDocument
+ * @return
*/
-// public void load(String _sDocumentName)
-// {
-// // convwatch.GlobalLogWriter.set(log);
-//
-// // GlobalLogWriter.get().println("Set office watcher");
-// // OfficeWatcher aWatcher = (OfficeWatcher)m_aParameterHelper.getTestParameters().get("Watcher");
-// // GlobalLogWriter.get().setWatcher(aWatcher);
-//
-// try
-// {
-//
-// // -------------------- preconditions, try to find an office --------------------
-//
-//// String sAppExecutionCommand = (String) m_aParameterHelper.getTestParameters().get("AppExecutionCommand");
-//// GlobalLogWriter.get().println("sAppExecutionCommand='" + sAppExecutionCommand + "'");
-////
-//// String sUser = System.getProperty("user.name");
-//// GlobalLogWriter.get().println("user.name='" + sUser + "'");
-////
-//// // String sVCSID = System.getProperty("VCSID");
-//// // GlobalLogWriter.get().println("VCSID='" + sVCSID + "'");
-//// // m_sMailAddress = sVCSID + "@openoffice.org";
-//// m_sMailAddress = System.getProperty("MailAddress");
-//// GlobalLogWriter.get().println("Assumed mail address: " + m_sMailAddress);
-////
-//// m_sParentDistinct = System.getProperty("ParentDistinct");
-////
-//// m_sSourceVersion = System.getProperty("SourceVersion");
-//// m_sSourceName = System.getProperty("SourceName");
-//// m_sDestinationVersion = System.getProperty("DestinationVersion");
-//// m_sDestinationName = System.getProperty("DestinationName");
-//// // createDBEntry();
-//// // GlobalLogWriter.get().println("Current CWS: " + m_sCWS_WORK_STAMP);
-//// // GlobalLogWriter.get().println("Current MWS: " + m_sUPDMinor);
-////
-//// if (m_sSourceVersion == null)
-//// {
-//// System.out.println("Error, Sourceversion is null.");
-//// System.exit(1);
-//// }
-////
-//// sAppExecutionCommand = sAppExecutionCommand.replaceAll( "\\$\\{USERNAME\\}", sUser);
-//// GlobalLogWriter.get().println("sAppExecutionCommand='" + sAppExecutionCommand + "'");
-//
-// // an other way to replace strings
-// // sAppExecutionCommand = utils.replaceAll13(sAppExecutionCommand, "${USERNAME}", sUser);
-//
-// // checkIfOfficeExists(sAppExecutionCommand);
-// // param.put("AppExecutionCommand", new String(sAppExecutionCommand));
-//
-// // System.exit(1);
-//
-// // --------------------------- Start the given Office ---------------------------
-//
-// // startOffice();
-//
-// // ------------------------------ Start a test run ------------------------------
-//
-// // String sCurrentDirectory = System.getProperty("user.dir");
-// // GlobalLogWriter.get().println("Current Dir: " + sCurrentDirectory);
-//// String sDocument = (String) m_aParameterHelper.getTestParameters().get(convwatch.PropertyName.DOC_COMPARATOR_INPUT_PATH);
-//// sDocument = helper.StringHelper.removeQuoteIfExists( sDocument );
-// startTestForFile(_sDocumentName);
-// // if (sDocument.toLowerCase().indexOf("writer") >= 0)
-// // {
-// // startTestForFile(sDocument, WRITER);
-// // }
-// // else if (sDocument.toLowerCase().indexOf("calc") >= 0)
-// // {
-// // startTestForFile(sDocument, CALC);
-// // }
-// // else
-// // {
-// // assure("Can't identify the document no 'writer' nor 'calc' in it's name given.", false);
-// // }
-// }
-// catch (AssureException e)
-// {
-// // stopOffice();
-// // throw new AssureException(e.getMessage());
-// }
-//
-// // ------------------------------ Office shutdown ------------------------------
-// // stopOffice();
-// }
-// -----------------------------------------------------------------------------
- public ArrayList load(String _sDocument /*, int _nType*/)
+ public ArrayList<String> load(String _sDocument /*, int _nType*/)
{
// We need to copy the database file to a place where we have write access, NEVER use the docpool for this
String sOutputPath = m_aParameterHelper.getOutputPath();
@@ -295,9 +211,9 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
assure("There exists no file: " + sDestinationFile, FileHelper.exists(sDestinationFile));
String sFileURL = URLHelper.getFileURLFromSystemPath(sDestinationFile);
- GlobalLogWriter.get().println("File URL: " + sFileURL);
+ GlobalLogWriter.println("File URL: " + sFileURL);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// FYI: it is not allowed to open the document read only
// PropertyValue aReadOnly = new PropertyValue(); // always overwrite already exist files
@@ -307,7 +223,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
XComponent xDocComponent = loadComponent(sFileURL, getXDesktop(), aPropertyList);
- GlobalLogWriter.get().println("Load done");
+ GlobalLogWriter.println("Load done");
// context = createUnoService("com.sun.star.sdb.DatabaseContext")
// oDataBase = context.getByName("hh")
// oDBDoc = oDataBase.DatabaseDocument
@@ -318,35 +234,35 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
// reportContainer = oDBDoc.getReportDocuments()
// report = reportContainer.loadComponentFromURL("Report40","",0,args)
- ArrayList aList = null;
+ ArrayList<String> aList = null;
try
{
// XInterface x = (XInterface)getMultiServiceFactory().createInstance("com.sun.star.sdb.DatabaseContext");
// assure("can't create instance of com.sun.star.sdb.DatabaseContext", x != null);
-// GlobalLogWriter.get().println("createInstance com.sun.star.sdb.DatabaseContext done");
+// GlobalLogWriter.println("createInstance com.sun.star.sdb.DatabaseContext done");
// XNameAccess xNameAccess = (XNameAccess) UnoRuntime.queryInterface(XNameAccess.class, x);
// showElements(xNameAccess);
// Object aObj = xNameAccess.getByName(sFileURL);
-// GlobalLogWriter.get().println("1");
+// GlobalLogWriter.println("1");
// PropertySetHelper aHelper = new PropertySetHelper(aObj);
// XDocumentDataSource xDataSource = (XDocumentDataSource)UnoRuntime.queryInterface(XDocumentDataSource.class, aObj);
// Object aDatabaseDocument = aHelper.getPropertyValueAsObject("DatabaseDocument");
// XOfficeDatabaseDocument xOfficeDBDoc = xDataSource.getDatabaseDocument();
- XOfficeDatabaseDocument xOfficeDBDoc = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDocComponent);
+ XOfficeDatabaseDocument xOfficeDBDoc = UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDocComponent);
// XOfficeDatabaseDocument xOfficeDBDoc = (XOfficeDatabaseDocument)UnoRuntime.queryInterface(XOfficeDatabaseDocument.class, xDataSource);
assure("can't access DatabaseDocument", xOfficeDBDoc != null);
-// GlobalLogWriter.get().println("2");
+// GlobalLogWriter.println("2");
- XModel xDBSource = (XModel)UnoRuntime.queryInterface(XModel.class, xOfficeDBDoc);
+ XModel xDBSource = UnoRuntime.queryInterface(XModel.class, xOfficeDBDoc);
Object aController = xDBSource.getCurrentController();
assure("Controller of xOfficeDatabaseDocument is empty!", aController != null);
-// GlobalLogWriter.get().println("3");
+// GlobalLogWriter.println("3");
- XDatabaseDocumentUI aDBDocUI = (XDatabaseDocumentUI)UnoRuntime.queryInterface(XDatabaseDocumentUI.class, aController);
+ XDatabaseDocumentUI aDBDocUI = UnoRuntime.queryInterface(XDatabaseDocumentUI.class, aController);
aDBDocUI.connect();
boolean isConnect = aDBDocUI.isConnected();
if (isConnect)
@@ -360,19 +276,19 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
// aHelper = new PropertySetHelper(aController);
- XReportDocumentsSupplier xSupplier = (XReportDocumentsSupplier)UnoRuntime.queryInterface(XReportDocumentsSupplier.class, xOfficeDBDoc);
+ XReportDocumentsSupplier xSupplier = UnoRuntime.queryInterface(XReportDocumentsSupplier.class, xOfficeDBDoc);
XNameAccess xNameAccess = xSupplier.getReportDocuments();
assure("xOfficeDatabaseDocument returns no Report Document", xNameAccess != null);
-// GlobalLogWriter.get().println("5");
+// GlobalLogWriter.println("5");
showElements(xNameAccess);
// Object aActiveConnectionObj = aHelper.getPropertyValueAsObject("ActiveConnection");
Object aActiveConnectionObj = aDBDocUI.getActiveConnection();
assure("ActiveConnection is empty", aActiveConnectionObj != null);
-// GlobalLogWriter.get().println("5");
+// GlobalLogWriter.println("5");
- ArrayList aPropertyList2 = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList2 = new ArrayList<PropertyValue>();
PropertyValue aActiveConnection = new PropertyValue();
aActiveConnection.Name = "ActiveConnection";
@@ -384,8 +300,8 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
}
catch(Exception/*com.sun.star.uno.Exception*/ e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
// String mTestDocumentPath = (String) param.get("TestDocumentPath");
@@ -413,7 +329,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
String sDBConnection = (String)m_aParameterHelper.getTestParameters().get( convwatch.PropertyName.DB_CONNECTION_STRING );
if (sDBConnection != null && sDBConnection.length() > 0)
{
- GlobalLogWriter.get().println("DBConnection: " + sDBConnection);
+ GlobalLogWriter.println("DBConnection: " + sDBConnection);
// TODO: DB
// DB.init(sDBConnection);
@@ -447,9 +363,9 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
}
}
- private ArrayList loadAndStoreReports(XNameAccess _xNameAccess, ArrayList _aPropertyList /*, int _nType*/ )
+ private ArrayList<String> loadAndStoreReports(XNameAccess _xNameAccess, ArrayList<PropertyValue> _aPropertyList /*, int _nType*/ )
{
- ArrayList aList = new ArrayList();
+ ArrayList<String> aList = new ArrayList<String>();
if (_xNameAccess != null)
{
String[] sElementNames = _xNameAccess.getElementNames();
@@ -473,7 +389,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private String getFormatExtension(Object _xComponent /* int _nType*/ )
{
String sExtension;
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _xComponent );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _xComponent );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
// calc
@@ -567,7 +483,7 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
String sOutputURL = URLHelper.getFileURLFromSystemPath(sOutputPath);
- ArrayList aPropertyList = new ArrayList(); // set some properties for storeAsURL
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>(); // set some properties for storeAsURL
// PropertyValue aFileFormat = new PropertyValue();
// aFileFormat.Name = "FilterName";
@@ -580,19 +496,19 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
aPropertyList.add(aOverwrite);
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _xComponent);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _xComponent);
if (aStorable != null)
{
- GlobalLogWriter.get().println("store document as URL: '" + sOutputURL + "'");
+ GlobalLogWriter.println("store document as URL: '" + sOutputURL + "'");
try
{
aStorable.storeAsURL(sOutputURL, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Can't write document URL: '" + sOutputURL + "'");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Can't write document URL: '" + sOutputURL + "'");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
return sBackPathName;
@@ -601,26 +517,26 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private XComponent loadComponent(String _sName, Object _xComponent, ArrayList _aPropertyList)
{
XComponent xDocComponent = null;
- XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, _xComponent );
+ XComponentLoader xComponentLoader = UnoRuntime.queryInterface( XComponentLoader.class, _xComponent );
try
{
PropertyValue[] aLoadProperties = PropertyHelper.createPropertyValueArrayFormArrayList(_aPropertyList);
- GlobalLogWriter.get().println("Load component: '" + _sName + "'");
+ GlobalLogWriter.println("Load component: '" + _sName + "'");
xDocComponent = xComponentLoader.loadComponentFromURL(_sName, "_blank", FrameSearchFlag.ALL, aLoadProperties);
- GlobalLogWriter.get().println("Load component: '" + _sName + "' done");
+ GlobalLogWriter.println("Load component: '" + _sName + "' done");
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Can't load document '" + _sName + "'");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Can't load document '" + _sName + "'");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
- GlobalLogWriter.get().println("ERROR: Exception caught");
- GlobalLogWriter.get().println("Illegal Arguments given to loadComponentFromURL.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: Exception caught");
+ GlobalLogWriter.println("Illegal Arguments given to loadComponentFromURL.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
return xDocComponent;
}
@@ -628,16 +544,16 @@ public class OpenOfficeDatabaseReportExtractor extends Assurance
private void closeComponent(XComponent _xDoc)
{
// Close the document
- XCloseable xCloseable = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, _xDoc);
+ XCloseable xCloseable = UnoRuntime.queryInterface(XCloseable.class, _xDoc);
try
{
xCloseable.close(true);
}
catch (com.sun.star.util.CloseVetoException e)
{
- GlobalLogWriter.get().println("ERROR: CloseVetoException caught");
- GlobalLogWriter.get().println("CloseVetoException occured Can't close document.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("ERROR: CloseVetoException caught");
+ GlobalLogWriter.println("CloseVetoException occured Can't close document.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
}
}
diff --git a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
index 06330a06d9ab..d918634f8d30 100644
--- a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
+++ b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
@@ -89,7 +89,7 @@ public class OpenOfficePostscriptCreator implements IOffice
m_aDocument = loadFromURL(m_aParameterHelper, sInputFileURL);
if (m_aDocument == null)
{
- GlobalLogWriter.get().println("loadDocumentFromURL() failed with document: " + sInputFileURL);
+ GlobalLogWriter.println("loadDocumentFromURL() failed with document: " + sInputFileURL);
throw new OfficeException("load(): failed with document" + sInputFileURL);
}
@@ -101,7 +101,8 @@ public class OpenOfficePostscriptCreator implements IOffice
if (m_aDocument != null)
{
String sDocumentName = FileHelper.appendPath(m_sOutputURL, m_sBasename);
- if (m_aParameterHelper.getReferenceType().toLowerCase().equals("ooo"))
+ if (m_aParameterHelper.getReferenceType().toLowerCase().equals("ooo") ||
+ m_aParameterHelper.getReferenceType().toLowerCase().equals("ps") )
{
String sPrintURL = sDocumentName + ".ps";
@@ -115,13 +116,13 @@ public class OpenOfficePostscriptCreator implements IOffice
storeAsPDF(m_aParameterHelper, m_aDocument, sPDFURL);
String sBasename = FileHelper.getBasename(sPDFURL);
- FileHelper.addBasenameToIndex(m_sOutputURL, sBasename, "OOo", "pdf-export", m_sDocumentName);
+ FileHelper.addBasenameToIndex(m_sOutputURL, sBasename, "pdf", "pdf-export", m_sDocumentName);
}
else
{
throw new OfficeException("unknown reference type");
}
- GlobalLogWriter.get().println("Close document.");
+ GlobalLogWriter.println("Close document.");
m_aDocument.dispose();
}
}
@@ -147,11 +148,11 @@ public class OpenOfficePostscriptCreator implements IOffice
try
{
sValue = AnyConverter.toString(_aValue.Value);
- GlobalLogWriter.get().println("Property " + sName + ":=" + sValue);
+ GlobalLogWriter.println("Property " + sName + ":=" + sValue);
}
catch (com.sun.star.lang.IllegalArgumentException e)
{
- GlobalLogWriter.get().println("showProperty: can't convert a object to string.");
+ GlobalLogWriter.println("showProperty: can't convert a object to string. " + e.getMessage());
}
}
@@ -160,7 +161,7 @@ public class OpenOfficePostscriptCreator implements IOffice
*/
private String getDocumentType( XComponent _aDoc )
{
- XModel xModel = (XModel) UnoRuntime.queryInterface( XModel.class, _aDoc);
+ XModel xModel = UnoRuntime.queryInterface( XModel.class, _aDoc);
PropertyValue[] aArgs = xModel.getArgs();
for (int i=0;i<aArgs.length;i++)
{
@@ -180,7 +181,7 @@ public class OpenOfficePostscriptCreator implements IOffice
private void showDocumentType( XComponent _aDoc )
{
String sNameValue = getDocumentType(_aDoc);
- GlobalLogWriter.get().println(" Property: '" + sNameValue);
+ GlobalLogWriter.println(" Property: '" + sNameValue);
}
/**
* load a OpenOffice.org document from a given URL (_sInputURL)
@@ -196,15 +197,15 @@ public class OpenOfficePostscriptCreator implements IOffice
{
if (_aGTA.getMultiServiceFactory() == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory in GraphicalTestArgument not set.");
+ GlobalLogWriter.println("MultiServiceFactory in GraphicalTestArgument not set.");
return null;
}
Object oDsk = _aGTA.getMultiServiceFactory().createInstance("com.sun.star.frame.Desktop");
- XDesktop aDesktop = (XDesktop)UnoRuntime.queryInterface(XDesktop.class, oDsk);
+ XDesktop aDesktop = UnoRuntime.queryInterface(XDesktop.class, oDsk);
if (aDesktop != null)
{
- GlobalLogWriter.get().println("com.sun.star.frame.Desktop created.");
+ GlobalLogWriter.println("com.sun.star.frame.Desktop created.");
// String sInputURL = aCurrentParameter.sInputURL;
// String sOutputURL = aCurrentParameter.sOutputURL;
// String sPrintFileURL = aCurrentParameter.sPrintToFileURL;
@@ -214,7 +215,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// set here the loadComponentFromURL() properties
// at the moment only 'Hidden' is set, so no window is opened at work
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// check which properties should set and count it.
// if (_aGTA.isHidden())
@@ -253,10 +254,10 @@ public class OpenOfficePostscriptCreator implements IOffice
aPropertyList.add(ReadOnly);
showProperty(ReadOnly);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
- // GlobalLogWriter.get().flush();
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Load document");
+ // GlobalLogWriter.flush();
- XComponentLoader aCompLoader = (XComponentLoader) UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
+ XComponentLoader aCompLoader = UnoRuntime.queryInterface( XComponentLoader.class, aDesktop);
// XComponent aDoc = null;
@@ -265,30 +266,31 @@ public class OpenOfficePostscriptCreator implements IOffice
_aGTA.getPerformance().stopTime(PerformanceContainer.Load);
if (aDoc != null)
{
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Load document done.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Load document done.");
showDocumentType(aDoc);
_aGTA.setDocumentType(getDocumentType(aDoc));
+// TODO: TimeHelper.waitInSeconds(20, "Wait after load document. Maybe helps due to layouting problems.");
}
else
{
- GlobalLogWriter.get().println(" Load document failed.");
+ GlobalLogWriter.println(" Load document failed.");
if (_aGTA.getImportFilterName() != null && _aGTA.getImportFilterName().length() > 0)
{
- GlobalLogWriter.get().println(" Please check FilterName := '" + _aGTA.getImportFilterName() + "'");
+ GlobalLogWriter.println(" Please check FilterName := '" + _aGTA.getImportFilterName() + "'");
}
- GlobalLogWriter.get().println("");
+ GlobalLogWriter.println("");
}
}
else
{
- GlobalLogWriter.get().println("com.sun.star.frame.Desktop failed.");
+ GlobalLogWriter.println("com.sun.star.frame.Desktop failed.");
}
}
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
aDoc = null;
}
@@ -298,11 +300,11 @@ public class OpenOfficePostscriptCreator implements IOffice
private boolean exportToPDF(XComponent _xComponent, String _sDestinationName)
{
XServiceInfo xServiceInfo =
- (XServiceInfo) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XServiceInfo.class, _xComponent
);
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
PropertyValue aFiltername = new PropertyValue();
aFiltername.Name = "FilterName";
aFiltername.Value = getFilterName_forPDF(xServiceInfo);
@@ -310,18 +312,19 @@ public class OpenOfficePostscriptCreator implements IOffice
showProperty(aFiltername);
boolean bWorked = true;
+// TODO: TimeHelper.waitInSeconds(20, "Wait before storeToURL. Maybe helps due to layouting problems.");
try
{
XStorable store =
- (XStorable) UnoRuntime.queryInterface(
+ UnoRuntime.queryInterface(
XStorable.class, _xComponent
);
store.storeToURL(_sDestinationName, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("IO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("IO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
bWorked = false;
}
@@ -383,13 +386,13 @@ public class OpenOfficePostscriptCreator implements IOffice
//
// if (aDoc == null)
// {
-// GlobalLogWriter.get().println("Can't load document.");
+// GlobalLogWriter.println("Can't load document.");
// return bBack;
// }
// bBack = storeAsPDF(_aGTA, aDoc, _sOutputURL);
// FileHelper.createInfoFile(_sOutputURL, _aGTA, "as pdf");
//
-// GlobalLogWriter.get().println("Close document.");
+// GlobalLogWriter.println("Close document.");
// aDoc.dispose();
// return bBack;
// }
@@ -406,7 +409,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (!bBack)
{
- GlobalLogWriter.get().println("Can't store document as PDF.");
+ GlobalLogWriter.println("Can't store document as PDF.");
// bBack = false;
throw new OfficeException("Can't store document as PDF");
}
@@ -444,17 +447,17 @@ public class OpenOfficePostscriptCreator implements IOffice
// {
// // don't store document
// // input and output are equal OR
-// GlobalLogWriter.get().println("Warning: Inputpath and Outputpath are equal. Document will not stored again.");
+// GlobalLogWriter.println("Warning: Inputpath and Outputpath are equal. Document will not stored again.");
// disallowStore();
// }
// bBack = impl_printToFileWithOOo(_aGTA, aDoc, _sOutputURL, _sPrintFileURL);
//
-// GlobalLogWriter.get().println("Close document.");
+// GlobalLogWriter.println("Close document.");
// aDoc.dispose();
// }
// else
// {
-// GlobalLogWriter.get().println("loadDocumentFromURL() failed with document: " + _sInputURL);
+// GlobalLogWriter.println("loadDocumentFromURL() failed with document: " + _sInputURL);
// }
// return bBack;
// }
@@ -471,7 +474,7 @@ public class OpenOfficePostscriptCreator implements IOffice
boolean bFailed = true; // always be a pessimist,
if (_aDoc == null)
{
- GlobalLogWriter.get().println("No document is given.");
+ GlobalLogWriter.println("No document is given.");
return bBack;
}
@@ -482,27 +485,27 @@ public class OpenOfficePostscriptCreator implements IOffice
if (isStoreAllowed())
{
// store the document in an other directory
- XStorable aStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _aDoc);
+ XStorable aStorable = UnoRuntime.queryInterface( XStorable.class, _aDoc);
if (aStorable != null)
{
PropertyValue [] szEmptyArgs = new PropertyValue [0];
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Store document.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Store document.");
_aGTA.getPerformance().startTime(PerformanceContainer.Store);
aStorable.storeAsURL(_sOutputURL, szEmptyArgs);
_aGTA.getPerformance().stopTime(PerformanceContainer.Store);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Store document done.");
- TimeHelper.waitInSeconds(1, "After store as URL to:" + _sOutputURL);
- GlobalLogWriter.get().println("Reload stored file test.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Store document done.");
+ // TimeHelper.waitInSeconds(1, "After store as URL to:" + _sOutputURL);
+ GlobalLogWriter.println("Reload stored file test.");
XComponent aDoc = loadFromURL(_aGTA, _sOutputURL);
if (aDoc == null)
{
- GlobalLogWriter.get().println("Reload stored file test failed, can't reload file: " + _sOutputURL);
+ GlobalLogWriter.println("Reload stored file test failed, can't reload file: " + _sOutputURL);
}
else
{
- XCloseable xClose = (XCloseable)UnoRuntime.queryInterface(XCloseable.class, aDoc);
+ XCloseable xClose = UnoRuntime.queryInterface(XCloseable.class, aDoc);
if (xClose != null)
{
xClose.close(true);
@@ -511,7 +514,7 @@ public class OpenOfficePostscriptCreator implements IOffice
{
aDoc.dispose();
}
- TimeHelper.waitInSeconds(1, "after close temp document");
+ // TimeHelper.waitInSeconds(1, "after close temp document");
}
}
}
@@ -528,8 +531,8 @@ public class OpenOfficePostscriptCreator implements IOffice
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
bBack = false;
@@ -541,8 +544,8 @@ public class OpenOfficePostscriptCreator implements IOffice
// System.out.println("Document loaded.");
// Change Pagesettings to DIN A4
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
- XPrintable aPrintable = (XPrintable) UnoRuntime.queryInterface( XPrintable.class, _aDoc);
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Print document.");
+ XPrintable aPrintable = UnoRuntime.queryInterface( XPrintable.class, _aDoc);
if (aPrintable != null)
{
// System.out.println(" Set PaperFormat to DIN A4");
@@ -566,14 +569,14 @@ public class OpenOfficePostscriptCreator implements IOffice
{
if (_aGTA.getPrinterName() != null)
{
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
// PropertyValue [] aPrintProps = new PropertyValue[1];
PropertyValue Arg = new PropertyValue();
Arg.Name = "Name";
Arg.Value = _aGTA.getPrinterName();
aPropertyList.add(Arg);
showProperty(Arg);
- // GlobalLogWriter.get().println("Printername is not null, so set to " + _aGTA.getPrinterName());
+ // GlobalLogWriter.println("Printername is not null, so set to " + _aGTA.getPrinterName());
aPrintable.setPrinter(PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
}
}
@@ -590,21 +593,21 @@ public class OpenOfficePostscriptCreator implements IOffice
// int nPropsCount = 0;
// If we are a SpreadSheet (calc), we need to set PrintAllSheets property to 'true'
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, _aDoc );
if ( xServiceInfo.supportsService( "com.sun.star.sheet.SpreadsheetDocument" ) )
{
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
Object aSettings = xMSF.createInstance( "com.sun.star.sheet.GlobalSheetSettings" );
if (aSettings != null)
{
- XPropertySet xPropSet = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, aSettings );
+ XPropertySet xPropSet = UnoRuntime.queryInterface( XPropertySet.class, aSettings );
xPropSet.setPropertyValue( "PrintAllSheets", new Boolean( true ) );
- GlobalLogWriter.get().println("PrintAllSheets := true");
+ GlobalLogWriter.println("PrintAllSheets := true");
}
}
- ArrayList aPrintProps = new ArrayList();
- // GlobalLogWriter.get().println("Property FileName:=" + _sPrintFileURL);
+ ArrayList<PropertyValue> aPrintProps = new ArrayList<PropertyValue>();
+ // GlobalLogWriter.println("Property FileName:=" + _sPrintFileURL);
// PropertyValue [] aPrintProps = new PropertyValue[nProperties];
PropertyValue Arg = new PropertyValue();
@@ -639,13 +642,13 @@ public class OpenOfficePostscriptCreator implements IOffice
showProperty(Arg);
}
- // GlobalLogWriter.get().println("Start printing.");
+ // GlobalLogWriter.println("Start printing.");
_aGTA.getPerformance().startTime(PerformanceContainer.Print);
aPrintable.print(PropertyHelper.createPropertyValueArrayFormArrayList(aPrintProps));
TimeHelper.waitInSeconds(1, "Start waiting for print ready.");
- GlobalLogWriter.get().println("Wait until document is printed.");
+ GlobalLogWriter.println("Wait until document is printed.");
boolean isBusy = true;
int nPrintCount = 0;
while (isBusy)
@@ -663,21 +666,22 @@ public class OpenOfficePostscriptCreator implements IOffice
if (nPrintCount > 3600)
{
// we will never wait >1h until print is ready!
- GlobalLogWriter.get().println("ERROR: Cancel print due to too long wait.");
+ GlobalLogWriter.println("ERROR: Cancel print due to too long wait.");
throw new com.sun.star.uno.Exception("Convwatch exception, wait too long for printing.");
}
}
- // TimeHelper.waitInSeconds(40, "Start waiting after print ready.");
+// TODO:
+// TimeHelper.waitInSeconds(40, "Start waiting after print ready.");
_aGTA.getPerformance().stopTime(PerformanceContainer.Print);
- GlobalLogWriter.get().println(DateHelper.getDateTimeForHumanreadableLog() + " Print document done.");
+ GlobalLogWriter.println(DateHelper.getDateTimeForHumanreadableLog() + " Print document done.");
// Create a .info file near the printed '.ps' or '.prn' file.
FileHelper.createInfoFile(_sPrintFileURL, _aGTA);
}
else
{
- GlobalLogWriter.get().println("Can't get XPrintable interface.");
+ GlobalLogWriter.println("Can't get XPrintable interface.");
}
bFailed = false;
bBack = true;
@@ -685,8 +689,8 @@ public class OpenOfficePostscriptCreator implements IOffice
catch ( com.sun.star.uno.Exception e )
{
// Some exception occures.FAILED
- GlobalLogWriter.get().println("UNO Exception caught.");
- GlobalLogWriter.get().println("Message: " + e.getMessage());
+ GlobalLogWriter.println("UNO Exception caught.");
+ GlobalLogWriter.println("Message: " + e.getMessage());
e.printStackTrace();
bBack = false;
@@ -694,17 +698,20 @@ public class OpenOfficePostscriptCreator implements IOffice
if (bFailed == true)
{
- GlobalLogWriter.get().println("convwatch.OfficePrint: FAILED");
+ GlobalLogWriter.println("convwatch.OfficePrint: FAILED");
}
else
{
- GlobalLogWriter.get().println("convwatch.OfficePrint: OK");
+ GlobalLogWriter.println("convwatch.OfficePrint: OK");
}
return bBack;
}
/**
+ * @param _aGTA
+ * @param _sAbsoluteOutputPath
+ * @param _sAbsoluteInputFile
* @return true, if the reference (*.prrn file) based on given output path and given input path exist.
* If OVERWRITE_REFERENCE is set, always return false.
*/
@@ -744,7 +751,7 @@ public class OpenOfficePostscriptCreator implements IOffice
String sAbsolutePrintFilename = FileHelper.appendPath(sOutputPath, sPrintFilename + ".prn");
if (FileHelper.exists(sAbsolutePrintFilename) && _aGTA.getOverwrite() == false)
{
- GlobalLogWriter.get().println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+ GlobalLogWriter.println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
return true;
}
return false;
@@ -797,7 +804,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// String sAbsolutePrintFilename = sOutputPath + fs + sPrintFilename + ".prn";
// if (FileHelper.exists(sAbsolutePrintFilename) && _aGTA.getOverwrite() == false)
// {
-// GlobalLogWriter.get().println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+// GlobalLogWriter.println("Reference already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
// return true;
// }
//
@@ -816,7 +823,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// }
// else
// {
-// GlobalLogWriter.get().println("OfficePrint.buildreference(): Unknown print type.");
+// GlobalLogWriter.println("OfficePrint.buildreference(): Unknown print type.");
// return false;
// }
// return printToFile(_aGTA, sInputFileURL, sOutputFileURL, sPrintFileURL);
@@ -845,14 +852,14 @@ public class OpenOfficePostscriptCreator implements IOffice
// }
// else if (_aGTA.getReferenceType().toLowerCase().equals("pdf"))
// {
-// GlobalLogWriter.get().println("USE PDF AS EXPORT FORMAT.");
+// GlobalLogWriter.println("USE PDF AS EXPORT FORMAT.");
// bBack = storeAsPDF(_aGTA, _sInputFileURL, _sPrintFileURL);
// }
// else if (_aGTA.getReferenceType().toLowerCase().equals("msoffice"))
// {
// if (MSOfficePostscriptCreator.isMSOfficeDocumentFormat(_sInputFileURL))
// {
-// GlobalLogWriter.get().println("USE MSOFFICE AS EXPORT FORMAT.");
+// GlobalLogWriter.println("USE MSOFFICE AS EXPORT FORMAT.");
// MSOfficePostscriptCreator a = new MSOfficePostscriptCreator();
// try
// {
@@ -862,19 +869,19 @@ public class OpenOfficePostscriptCreator implements IOffice
// catch(OfficeException e)
// {
// e.printStackTrace();
-// GlobalLogWriter.get().println(e.getMessage());
+// GlobalLogWriter.println(e.getMessage());
// throw new OfficeException("Exception caught. Problem with MSOffice printer methods.");
// }
// catch(java.io.IOException e)
// {
-// GlobalLogWriter.get().println(e.getMessage());
+// GlobalLogWriter.println(e.getMessage());
// throw new OfficeException("IOException caught. Problem with MSOffice printer methods.");
// }
// bBack = true;
// }
// else
// {
-// GlobalLogWriter.get().println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
+// GlobalLogWriter.println("This document type is not recognized as MSOffice format, as default fallback StarOffice/OpenOffice.org instead is used.");
// bBack = printToFileWithOOo(_aGTA, _sInputFileURL, _sOutputFileURL, _sPrintFileURL);
// }
// }
@@ -898,24 +905,24 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return;
}
XTypeDetection aTypeDetection = null;
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.TypeDetection.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.TypeDetection.");
return;
}
if (aTypeDetection != null)
{
String sType = aTypeDetection.queryTypeByURL(_sInputURL);
- GlobalLogWriter.get().println("Type is: " + sType);
+ GlobalLogWriter.println("Type is: " + sType);
}
}
@@ -931,7 +938,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
// XFilterFactory aFilterFactory = null;
@@ -942,12 +949,12 @@ public class OpenOfficePostscriptCreator implements IOffice
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.FilterFactory.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.FilterFactory.");
return null;
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
@@ -965,7 +972,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (! aNameAccess.hasByName(_sFilterName))
{
- GlobalLogWriter.get().println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
+ GlobalLogWriter.println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
return null;
}
@@ -993,17 +1000,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1022,7 +1029,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
// XFilterFactory aFilterFactory = null;
@@ -1033,17 +1040,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.FilterFactory.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.FilterFactory.");
return null;
}
if (aObj != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aObj);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aObj);
if (aNameAccess != null)
{
if (! aNameAccess.hasByName(_sFilterName))
{
- GlobalLogWriter.get().println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
+ GlobalLogWriter.println("FilterFactory.hasByName() says there exist no '" + _sFilterName + "'" );
return null;
}
@@ -1071,17 +1078,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1099,23 +1106,23 @@ public class OpenOfficePostscriptCreator implements IOffice
if (_xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory not set.");
+ GlobalLogWriter.println("MultiServiceFactory not set.");
return null;
}
XTypeDetection aTypeDetection = null;
try
{
Object oObj = _xMSF.createInstance("com.sun.star.document.TypeDetection");
- aTypeDetection = (XTypeDetection)UnoRuntime.queryInterface(XTypeDetection.class, oObj);
+ aTypeDetection = UnoRuntime.queryInterface(XTypeDetection.class, oObj);
}
catch(com.sun.star.uno.Exception e)
{
- GlobalLogWriter.get().println("Can't get com.sun.star.document.TypeDetection.");
+ GlobalLogWriter.println("Can't get com.sun.star.document.TypeDetection.");
return null;
}
if (aTypeDetection != null)
{
- XNameAccess aNameAccess = (XNameAccess)UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
+ XNameAccess aNameAccess = UnoRuntime.queryInterface(XNameAccess.class, aTypeDetection);
if (aNameAccess != null)
{
@@ -1128,7 +1135,7 @@ public class OpenOfficePostscriptCreator implements IOffice
if (! aNameAccess.hasByName(_sInternalFilterName))
{
- GlobalLogWriter.get().println("TypeDetection.hasByName() says there exist no '" + _sInternalFilterName + "'" );
+ GlobalLogWriter.println("TypeDetection.hasByName() says there exist no '" + _sInternalFilterName + "'" );
return null;
}
@@ -1148,15 +1155,15 @@ public class OpenOfficePostscriptCreator implements IOffice
if (aPropertyValue.Name.equals("Extensions"))
{
aExtensions = (String[])aPropertyValue.Value;
- GlobalLogWriter.get().println(" Possible extensions are: " + String.valueOf(aExtensions.length));
+ GlobalLogWriter.println(" Possible extensions are: " + String.valueOf(aExtensions.length));
if (aExtensions.length > 0)
{
for (int j=0;j<aExtensions.length;j++)
{
- GlobalLogWriter.get().println(" " + aExtensions[j]);
+ GlobalLogWriter.println(" " + aExtensions[j]);
}
sExtension = aExtensions[0];
- GlobalLogWriter.get().println("");
+ GlobalLogWriter.println("");
}
}
}
@@ -1164,17 +1171,17 @@ public class OpenOfficePostscriptCreator implements IOffice
}
else
{
- GlobalLogWriter.get().println("There are no elements for FilterName '" + _sInternalFilterName + "'");
+ GlobalLogWriter.println("There are no elements for FilterName '" + _sInternalFilterName + "'");
return null;
}
}
catch (com.sun.star.container.NoSuchElementException e)
{
- GlobalLogWriter.get().println("NoSuchElementException caught. " + e.getMessage());
+ GlobalLogWriter.println("NoSuchElementException caught. " + e.getMessage());
}
catch (com.sun.star.lang.WrappedTargetException e)
{
- GlobalLogWriter.get().println("WrappedTargetException caught. " + e.getMessage());
+ GlobalLogWriter.println("WrappedTargetException caught. " + e.getMessage());
}
}
}
@@ -1187,7 +1194,7 @@ public class OpenOfficePostscriptCreator implements IOffice
XMultiServiceFactory xMSF = _aGTA.getMultiServiceFactory();
if (xMSF == null)
{
- GlobalLogWriter.get().println("MultiServiceFactory in GraphicalTestArgument not set.");
+ GlobalLogWriter.println("MultiServiceFactory in GraphicalTestArgument not set.");
return;
}
@@ -1196,33 +1203,33 @@ public class OpenOfficePostscriptCreator implements IOffice
XComponent aDoc = loadFromURL( _aGTA, sInputURL);
if (aDoc == null)
{
- GlobalLogWriter.get().println("Can't load document '"+ sInputURL + "'");
+ GlobalLogWriter.println("Can't load document '"+ sInputURL + "'");
return;
}
if (_sOutputPath == null)
{
- GlobalLogWriter.get().println("Outputpath not set.");
+ GlobalLogWriter.println("Outputpath not set.");
return;
}
if (! isStoreAllowed())
{
- GlobalLogWriter.get().println("It's not allowed to store, check Input/Output path.");
+ GlobalLogWriter.println("It's not allowed to store, check Input/Output path.");
return;
}
// TODO: Do we need to wait?
// TimeHelper.waitInSeconds(1, "wait after loadFromURL.");
- XServiceInfo xServiceInfo = (XServiceInfo) UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
+ XServiceInfo xServiceInfo = UnoRuntime.queryInterface( XServiceInfo.class, aDoc );
// String sFilter = getFilterName_forExcel(xServiceInfo);
// System.out.println("Filter is " + sFilter);
// store the document in an other directory
- XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, aDoc);
+ XStorable xStorable = UnoRuntime.queryInterface( XStorable.class, aDoc);
if (xStorable == null)
{
- GlobalLogWriter.get().println("com.sun.star.frame.XStorable is null");
+ GlobalLogWriter.println("com.sun.star.frame.XStorable is null");
return;
}
@@ -1238,7 +1245,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// initialize PropertyArray
// PropertyValue [] aStoreProps = new PropertyValue[ nPropertyCount ];
// int nPropertyIndex = 0;
- ArrayList aPropertyList = new ArrayList();
+ ArrayList<PropertyValue> aPropertyList = new ArrayList<PropertyValue>();
String sExtension = "";
@@ -1247,22 +1254,22 @@ public class OpenOfficePostscriptCreator implements IOffice
String sInternalFilterName = getInternalFilterName(sFilterName, xMSF);
String sServiceName = getServiceNameFromFilterName(sFilterName, xMSF);
- GlobalLogWriter.get().println("Filter detection:");
+ GlobalLogWriter.println("Filter detection:");
// check if service name from file filter is the same as from the loaded document
boolean bServiceFailed = false;
if (sServiceName == null || sInternalFilterName == null)
{
- GlobalLogWriter.get().println("Given FilterName '" + sFilterName + "' seems to be unknown.");
+ GlobalLogWriter.println("Given FilterName '" + sFilterName + "' seems to be unknown.");
bServiceFailed = true;
}
if (! xServiceInfo.supportsService(sServiceName))
{
- GlobalLogWriter.get().println("Service from FilterName '" + sServiceName + "' is not supported by loaded document.");
+ GlobalLogWriter.println("Service from FilterName '" + sServiceName + "' is not supported by loaded document.");
bServiceFailed = true;
}
if (bServiceFailed == true)
{
- GlobalLogWriter.get().println("Please check '" + PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME + "' in the property file.");
+ GlobalLogWriter.println("Please check '" + PropertyName.DOC_CONVERTER_EXPORT_FILTER_NAME + "' in the property file.");
return;
}
@@ -1273,7 +1280,7 @@ public class OpenOfficePostscriptCreator implements IOffice
sExtension = getFileExtension(sInternalFilterName, xMSF);
if (sExtension == null)
{
- GlobalLogWriter.get().println("Can't found an extension for filtername, take it from the source.");
+ GlobalLogWriter.println("Can't found an extension for filtername, take it from the source.");
}
}
@@ -1283,7 +1290,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// aStoreProps[nPropertyIndex ++] = Arg;
aPropertyList.add(Arg);
showProperty(Arg);
- GlobalLogWriter.get().println("FilterName is set to: " + sFilterName);
+ GlobalLogWriter.println("FilterName is set to: " + sFilterName);
}
String sOutputURL = "";
@@ -1311,38 +1318,41 @@ public class OpenOfficePostscriptCreator implements IOffice
if (FileHelper.exists(sOutputFile) && _aGTA.getOverwrite() == false)
{
- GlobalLogWriter.get().println("File already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
+ GlobalLogWriter.println("File already exist, don't overwrite. Set " + PropertyName.DOC_COMPARATOR_OVERWRITE_REFERENCE + "=true to force overwrite.");
return;
}
sOutputURL = URLHelper.getFileURLFromSystemPath(sOutputFile);
- GlobalLogWriter.get().println("Store document as '" + sOutputURL + "'");
+ GlobalLogWriter.println("Store document as '" + sOutputURL + "'");
xStorable.storeAsURL(sOutputURL, PropertyHelper.createPropertyValueArrayFormArrayList(aPropertyList));
- GlobalLogWriter.get().println("Document stored.");
+ GlobalLogWriter.println("Document stored.");
}
catch (com.sun.star.io.IOException e)
{
- GlobalLogWriter.get().println("Can't store document '" + sOutputURL + "'. Message is :'" + e.getMessage() + "'");
+ GlobalLogWriter.println("Can't store document '" + sOutputURL + "'. Message is :'" + e.getMessage() + "'");
}
// TODO: Do we need to wait?
// TimeHelper.waitInSeconds(1, "unknown in OfficePrint.convertDocument()");
}
-
- private boolean shouldOfficeStart()
- {
- String sNoOffice = (String)m_aParameterHelper.getTestParameters().get( "NoOffice" );
- if (sNoOffice != null)
- {
- if (sNoOffice.toLowerCase().startsWith("t") || sNoOffice.toLowerCase().startsWith("y"))
- {
- return false;
- }
- }
- return true;
- }
+ /**
+ *
+ * @return false, if 'NoOffice=yes' is given
+ */
+// private boolean shouldOfficeStart()
+// {
+// String sNoOffice = (String)m_aParameterHelper.getTestParameters().get( "NoOffice" );
+// if (sNoOffice != null)
+// {
+// if (sNoOffice.toLowerCase().startsWith("t") || sNoOffice.toLowerCase().startsWith("y"))
+// {
+// return false;
+// }
+// }
+// return true;
+// }
OfficeProvider m_aProvider = null;
private void startOffice()
@@ -1370,7 +1380,7 @@ public class OpenOfficePostscriptCreator implements IOffice
// Watcher Object is need in log object to give a simple way to say if a running office is alive.
// As long as a log comes, it pings the Watcher and says the office is alive, if not an
// internal counter increase and at a given point (300 seconds) the office is killed.
- GlobalLogWriter.get().println("Set office watcher");
+ GlobalLogWriter.println("Set office watcher");
if (GlobalLogWriter.get().getWatcher() == null)
{
OfficeWatcher aWatcher = (OfficeWatcher)m_aParameterHelper.getTestParameters().get("Watcher");
@@ -1383,7 +1393,11 @@ public class OpenOfficePostscriptCreator implements IOffice
// Office shutdown
if (m_aProvider != null)
{
- m_aProvider.closeExistingOffice(m_aParameterHelper.getTestParameters(), true);
+ String sAppExecCmd = (String)m_aParameterHelper.getTestParameters().get("AppExecutionCommand");
+ if (sAppExecCmd != null && sAppExecCmd.length() > 0)
+ {
+ m_aProvider.closeExistingOffice(m_aParameterHelper.getTestParameters(), true);
+ }
// if (OSHelper.isWindows())
// {
// aSemaphore.V(aSemaphore.getSemaphoreFile());
diff --git a/qadevOOo/runner/graphical/ParameterHelper.java b/qadevOOo/runner/graphical/ParameterHelper.java
index e3545a56e73b..598ee6c53007 100644
--- a/qadevOOo/runner/graphical/ParameterHelper.java
+++ b/qadevOOo/runner/graphical/ParameterHelper.java
@@ -193,7 +193,7 @@ public class ParameterHelper
String sReferenceType = (String)getTestParameters().get( PropertyName.DOC_COMPARATOR_REFERENCE_TYPE );
if (sReferenceType == null || sReferenceType.length() == 0)
{
- m_sReferenceType = "OOo";
+ m_sReferenceType = "ps";
}
else
{
@@ -241,6 +241,7 @@ public class ParameterHelper
/**
* Helper function to get the buildid of the current used OpenOffice.org
* out of the AppExecutionCommand the build ID
+ * @return
*/
public String getBuildID()
{
@@ -265,11 +266,12 @@ public class ParameterHelper
// check if MultiServiceFactory is given
if (getReferenceType().toLowerCase().equals("pdf") ||
+ getReferenceType().toLowerCase().equals("ps") ||
getReferenceType().toLowerCase().equals("ooo"))
{
if (xMSF == null)
{
- GlobalLogWriter.get().println("ERROR! MultiServiceFactory not given.");
+ GlobalLogWriter.println("ERROR! MultiServiceFactory not given.");
}
}
return xMSF;
@@ -417,5 +419,15 @@ public class ParameterHelper
return m_sHTMLPrefix;
}
+ public boolean createSmallPictures()
+ {
+ // boolean bCreateSmallPictures = true;
+ boolean bNoSmallPictures = m_aCurrentParams.getBool( PropertyName.NO_SMALL_PICTURES);
+ if (bNoSmallPictures == true)
+ {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/qadevOOo/runner/graphical/PerformanceContainer.java b/qadevOOo/runner/graphical/PerformanceContainer.java
index c31d1efb79db..ab3b292926e5 100644
--- a/qadevOOo/runner/graphical/PerformanceContainer.java
+++ b/qadevOOo/runner/graphical/PerformanceContainer.java
@@ -59,7 +59,7 @@ public class PerformanceContainer /* extends *//* implements */ {
{
if (_nCurrentTimer == 0)
{
- GlobalLogWriter.get().println("Forgotten to initialise a start timer.");
+ GlobalLogWriter.println("Forgotten to initialise a start timer.");
return 0;
}
long nMeanTime = System.currentTimeMillis();
@@ -160,7 +160,7 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (NumberFormatException e)
{
- GlobalLogWriter.get().println("Can't convert string to double " + _sStr);
+ GlobalLogWriter.println("Can't convert string to double " + _sStr);
}
return nValue;
}
@@ -185,7 +185,7 @@ public class PerformanceContainer /* extends *//* implements */ {
File aFile = new File(sFilename);
if (! aFile.exists())
{
- GlobalLogWriter.get().println("couldn't find file " + sFilename);
+ GlobalLogWriter.println("couldn't find file " + sFilename);
return;
}
@@ -236,13 +236,13 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (java.io.FileNotFoundException fne)
{
- GlobalLogWriter.get().println("couldn't open file " + sFilename);
- GlobalLogWriter.get().println("Message: " + fne.getMessage());
+ GlobalLogWriter.println("couldn't open file " + sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Exception while reading file " + sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Exception while reading file " + sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
}
try
{
@@ -250,8 +250,8 @@ public class PerformanceContainer /* extends *//* implements */ {
}
catch (java.io.IOException ie)
{
- GlobalLogWriter.get().println("Couldn't close file " + sFilename);
- GlobalLogWriter.get().println("Message: " + ie.getMessage());
+ GlobalLogWriter.println("Couldn't close file " + sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
}
}
diff --git a/qadevOOo/runner/graphical/PropertyName.java b/qadevOOo/runner/graphical/PropertyName.java
index 8ca2835e8086..729fd0c33c38 100644
--- a/qadevOOo/runner/graphical/PropertyName.java
+++ b/qadevOOo/runner/graphical/PropertyName.java
@@ -69,5 +69,5 @@ public interface PropertyName
// final public static String DB_CONNECTION_STRING = "DB_CONNECTION_STRING";
// final public static String CHECK_NEED_TOOLS = "CHECK_NEED_TOOLS";
// final public static String CREATE_DEFAULT = "CREATE_DEFAULT_REFERENCE";
-
+ final public static String NO_SMALL_PICTURES = "NoSmallPictures";
}
diff --git a/qadevOOo/runner/graphical/TimeHelper.java b/qadevOOo/runner/graphical/TimeHelper.java
index d0180d82e423..057f9cd19494 100644
--- a/qadevOOo/runner/graphical/TimeHelper.java
+++ b/qadevOOo/runner/graphical/TimeHelper.java
@@ -29,6 +29,8 @@
package graphical;
+import java.util.Calendar;
+
/**
*
* @author ll93751
@@ -42,9 +44,48 @@ public class TimeHelper
*/
static void waitInSeconds(int _nSeconds, String _sReason)
{
- GlobalLogWriter.get().println("Wait " + String.valueOf(_nSeconds) + " sec. Reason: " + _sReason);
+ GlobalLogWriter.println("Wait 0.25 * " + String.valueOf(_nSeconds) + " sec. Reason: " + _sReason);
try {
- java.lang.Thread.sleep(_nSeconds * 1000);
+ java.lang.Thread.sleep(_nSeconds * 250);
} catch (java.lang.InterruptedException e2) {}
}
+
+ private int m_nSeconds;
+ private int m_nMilliSeconds;
+ private long m_nRealMilliSeconds;
+
+ private boolean m_bIsStopped = false;
+
+ public TimeHelper()
+ {}
+
+ public void start()
+ {
+ m_bIsStopped = false;
+ Calendar cal = Calendar.getInstance();
+ m_nSeconds = cal.get(Calendar.SECOND);
+ m_nMilliSeconds = cal.get(Calendar.MILLISECOND);
+ }
+ public void stop()
+ {
+ Calendar cal = Calendar.getInstance();
+ m_bIsStopped = true;
+ int nSeconds = cal.get(Calendar.SECOND);
+ m_nSeconds = nSeconds - m_nSeconds;
+ if (m_nSeconds < 0)
+ {
+ // add a minute
+ m_nSeconds += 60;
+ }
+
+ int nMilliSeconds = cal.get(Calendar.MILLISECOND);
+ m_nMilliSeconds = nMilliSeconds - m_nMilliSeconds;
+ m_nRealMilliSeconds = m_nSeconds * 1000 + m_nMilliSeconds;
+ }
+
+ public String getTime()
+ {
+ return String.valueOf(m_nRealMilliSeconds);
+ }
+
}
diff --git a/qadevOOo/runner/graphical/Tolerance.java b/qadevOOo/runner/graphical/Tolerance.java
new file mode 100644
index 000000000000..90e853c9124c
--- /dev/null
+++ b/qadevOOo/runner/graphical/Tolerance.java
@@ -0,0 +1,23 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package graphical;
+
+/**
+ *
+ * @author ll93751
+ */
+public class Tolerance
+{
+ private int m_nTolerance;
+ public Tolerance(int _nAccept)
+ {
+ m_nTolerance = _nAccept;
+ }
+ public int getAccept()
+ {
+ return m_nTolerance;
+ }
+}
diff --git a/qadevOOo/runner/graphical/makefile.mk b/qadevOOo/runner/graphical/makefile.mk
index db1f84ca26ca..4e1b0e98cba1 100644
--- a/qadevOOo/runner/graphical/makefile.mk
+++ b/qadevOOo/runner/graphical/makefile.mk
@@ -64,7 +64,8 @@ PostscriptCreator.java \
PropertyName.java \
TimeHelper.java \
WrongEnvironmentException.java \
-WrongSuffixException.java
+WrongSuffixException.java \
+Tolerance.java
# GraphicalComparator.java
diff --git a/qadevOOo/runner/helper/OfficeProvider.java b/qadevOOo/runner/helper/OfficeProvider.java
index adeecbdeba1d..8589de47ea82 100644
--- a/qadevOOo/runner/helper/OfficeProvider.java
+++ b/qadevOOo/runner/helper/OfficeProvider.java
@@ -130,9 +130,7 @@ public class OfficeProvider implements AppProvider
try
{
- desk = (XDesktop) UnoRuntime.queryInterface(XDesktop.class,
- msf.createInstance(
- "com.sun.star.frame.Desktop"));
+ desk = UnoRuntime.queryInterface(XDesktop.class, msf.createInstance("com.sun.star.frame.Desktop"));
}
catch (com.sun.star.uno.Exception ue)
{
@@ -341,18 +339,15 @@ public class OfficeProvider implements AppProvider
{
// Get component context
- final XComponentContext xcomponentcontext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(
- null);
+ final XComponentContext xcomponentcontext = com.sun.star.comp.helper.Bootstrap.createInitialComponentContext(null);
// initial serviceManager
final XMultiComponentFactory xLocalServiceManager = xcomponentcontext.getServiceManager();
// create a connector, so that it can contact the office
// XUnoUrlResolver urlResolver = UnoUrlResolver.create(xcomponentcontext);
- final Object xUrlResolver = xLocalServiceManager.createInstanceWithContext(
- "com.sun.star.bridge.UnoUrlResolver", xcomponentcontext);
- final XUnoUrlResolver urlResolver = (XUnoUrlResolver) UnoRuntime.queryInterface(
- XUnoUrlResolver.class, xUrlResolver);
+ final Object xUrlResolver = xLocalServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", xcomponentcontext);
+ final XUnoUrlResolver urlResolver = UnoRuntime.queryInterface(XUnoUrlResolver.class, xUrlResolver);
final Object rInitialObject = urlResolver.resolve(connectStr);
@@ -363,8 +358,7 @@ public class OfficeProvider implements AppProvider
debug = true;
dbg("resolved url");
- xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface(
- XMultiServiceFactory.class, rInitialObject);
+ xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, rInitialObject);
}
return xMSF;
@@ -485,7 +479,7 @@ public class OfficeProvider implements AppProvider
try
{
Object quickStarter = msf.createInstance("com.sun.star.office.Quickstart");
- XFastPropertySet fps = (XFastPropertySet) UnoRuntime.queryInterface(XFastPropertySet.class, quickStarter);
+ XFastPropertySet fps = UnoRuntime.queryInterface(XFastPropertySet.class, quickStarter);
fps.setFastPropertyValue(0, false);
}
catch (com.sun.star.uno.Exception ex)
@@ -495,9 +489,7 @@ public class OfficeProvider implements AppProvider
try
{
- desk = (XDesktop) UnoRuntime.queryInterface(XDesktop.class,
- msf.createInstance(
- "com.sun.star.frame.Desktop"));
+ desk = UnoRuntime.queryInterface(XDesktop.class, msf.createInstance("com.sun.star.frame.Desktop"));
msf = null;
if (desk != null)
@@ -616,9 +608,7 @@ public class OfficeProvider implements AppProvider
{
while (compEnum.hasMoreElements())
{
- final XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
- XCloseable.class,
- compEnum.nextElement());
+ final XCloseable closer = UnoRuntime.queryInterface(XCloseable.class, compEnum.nextElement());
if (closer != null)
{
@@ -658,8 +648,7 @@ public class OfficeProvider implements AppProvider
if (xPathSubst != null)
{
- return (XStringSubstitution) UnoRuntime.queryInterface(
- XStringSubstitution.class, xPathSubst);
+ return UnoRuntime.queryInterface(XStringSubstitution.class, xPathSubst);
}
else
{
@@ -790,6 +779,7 @@ public class OfficeProvider implements AppProvider
this.ow = ow;
}
+ @Override
public void run()
{
System.out.println(utils.getDateTime() + "OfficeProvider:Owp: start ");
diff --git a/qadevOOo/runner/lib/MultiPropertyTest.java b/qadevOOo/runner/lib/MultiPropertyTest.java
index 286ddf1600a9..a02f93c04347 100644
--- a/qadevOOo/runner/lib/MultiPropertyTest.java
+++ b/qadevOOo/runner/lib/MultiPropertyTest.java
@@ -41,6 +41,7 @@ import java.lang.reflect.Method;
import util.ValueChanger;
import util.ValueComparer;
+import util.utils;
import com.sun.star.uno.Any;
import com.sun.star.uno.AnyConverter;
@@ -179,6 +180,25 @@ public class MultiPropertyTest extends MultiMethodTest
{
Object oldValue = oObj.getPropertyValue(propName);
+ if( (oldValue==null) || utils.isVoid(oldValue) )
+ {
+ // #i111560# method getNewValue() does not work with an empty oldValue
+ Property prop = info.getPropertyByName(propName);
+ if( (prop.Attributes & PropertyAttribute.MAYBEVOID) != 0 )
+ {
+ // todo: implement a new test independent from method getNewValue()
+ log.println("changing initially empty MAYBEVOID properties is not supported by the test framework so far - skip test of property: " + propName);
+ tRes.tested(propName, true);
+ return;
+ }
+ else
+ {
+ log.println( "property '"+propName+"' is not set but is not MAYBEVOID");
+ tRes.tested(propName, false);
+ return;
+ }
+ }
+
Object newValue;
// trying to create new value
diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java
index 63486ca9d3f3..a3741774917e 100644
--- a/qadevOOo/runner/org/openoffice/Runner.java
+++ b/qadevOOo/runner/org/openoffice/Runner.java
@@ -182,8 +182,9 @@ public class Runner
}
}
- public static boolean run(String... args) {
- System.out.println("OOoRunner Main() version from 20100125 (yyyymmdd)");
+ public static boolean run(String... args)
+ {
+ System.out.println("OOoRunner Main() version from 20100323 (yyyymmdd)");
setStartTime(getTime());
diff --git a/qadevOOo/tests/java/ifc/beans/_XPropertySet.java b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
index 54c1f3431bbf..dfc135843b44 100644
--- a/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
+++ b/qadevOOo/tests/java/ifc/beans/_XPropertySet.java
@@ -27,8 +27,7 @@
package ifc.beans;
-import java.util.Random;
-import java.util.StringTokenizer;
+import java.util.Vector;
import lib.MultiMethodTest;
import util.ValueChanger;
@@ -102,13 +101,13 @@ public class _XPropertySet extends MultiMethodTest {
private final XVetoableChangeListener VClistener = new MyVetoListener();
/**
- * Structure that collects three properties of each type to test :
+ * Structure that collects the properties of different types to test :
* Constrained, Bound and Normal.
*/
private final class PropsToTest {
- String constrained = null;
- String bound = null;
- String normal = null;
+ Vector< String > constrained = new Vector< String >();
+ Vector< String > bound = new Vector< String >();
+ Vector< String > normal = new Vector< String >();
}
private final PropsToTest PTT = new PropsToTest();
@@ -133,9 +132,12 @@ public class _XPropertySet extends MultiMethodTest {
log.println("getPropertySetInfo() method returned null");
tRes.tested("getPropertySetInfo()", true) ;
String[] ptt = (String[]) tEnv.getObjRelation("PTT");
- PTT.normal=ptt[0];
- PTT.bound=ptt[1];
- PTT.constrained=ptt[2];
+ PTT.normal.clear();
+ PTT.bound.clear();
+ PTT.constrained.clear();
+ PTT.normal.add( ptt[0] );
+ PTT.bound.add( ptt[1] );
+ PTT.constrained.add( ptt[2] );
} else {
tRes.tested("getPropertySetInfo()", true );
getPropsToTest(propertySetInfo);
@@ -161,41 +163,46 @@ public class _XPropertySet extends MultiMethodTest {
requiredMethod("getPropertySetInfo()");
- propertyChanged = false;
-
-
- if ( PTT.bound.equals("none") ) {
+ int count = PTT.bound.size();
+ if ( count==0 || PTT.bound.get(0).equals("none") ) {
log.println("*** No bound properties found ***");
tRes.tested("addPropertyChangeListener()", true) ;
} else {
- try {
- oObj.addPropertyChangeListener(PTT.bound,PClistener);
- Object gValue = oObj.getPropertyValue(PTT.bound);
- oObj.setPropertyValue(PTT.bound,
- ValueChanger.changePValue(gValue));
- } catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } // end of try-catch
- tRes.tested("addPropertyChangeListener()", propertyChanged);
- if (!propertyChanged) {
- log.println("propertyChangeListener wasn't called for '"+
- PTT.bound+"'");
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.bound.get(i);
+ propertyChanged = false;
+ try {
+ oObj.addPropertyChangeListener(propertyName,PClistener);
+ Object gValue = oObj.getPropertyValue(propertyName);
+ log.println("Check bound property: " + propertyName );
+ oObj.setPropertyValue(propertyName,
+ ValueChanger.changePValue(gValue));
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+ error = error || !propertyChanged;
+ if (!propertyChanged) {
+ log.println("propertyChangeListener wasn't called for '"+
+ propertyName+"'");
+ }
}
- } //endif
+ tRes.tested("addPropertyChangeListener()", !error);
+ }
return;
@@ -217,40 +224,45 @@ public class _XPropertySet extends MultiMethodTest {
requiredMethod("getPropertySetInfo()");
- vetoableChanged = false;
-
- if ( PTT.constrained.equals("none") ) {
+ int count = PTT.constrained.size();
+ if ( count==0 || PTT.constrained.get(0).equals("none") ) {
log.println("*** No constrained properties found ***");
tRes.tested("addVetoableChangeListener()", true) ;
} else {
- try {
- oObj.addVetoableChangeListener(PTT.constrained,VClistener);
- Object gValue = oObj.getPropertyValue(PTT.constrained);
- oObj.setPropertyValue(PTT.constrained,
- ValueChanger.changePValue(gValue));
- } catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } // end of try-catch
- tRes.tested("addVetoableChangeListener()",vetoableChanged);
- if (!vetoableChanged) {
- log.println("vetoableChangeListener wasn't called for '"+
- PTT.constrained+"'");
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.constrained.get(i);
+ vetoableChanged = false;
+ try {
+ oObj.addVetoableChangeListener(propertyName,VClistener);
+ Object gValue = oObj.getPropertyValue(propertyName);
+ oObj.setPropertyValue(propertyName,
+ ValueChanger.changePValue(gValue));
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+ error = error || !vetoableChanged;
+ if (!vetoableChanged) {
+ log.println("vetoableChangeListener wasn't called for '"+
+ propertyName+"'");
+ }
}
- } //endif
+ tRes.tested("addVetoableChangeListener()",!error);
+ }
return;
@@ -276,34 +288,44 @@ public class _XPropertySet extends MultiMethodTest {
Object gValue = null;
Object sValue = null;
- if ( PTT.normal.equals("none") ) {
+ int count = PTT.normal.size();
+ if ( count==0 || PTT.normal.get(0).equals("none") ) {
log.println("*** No changeable properties found ***");
tRes.tested("setPropertyValue()", true) ;
} else {
- try {
- log.println("try to cheange value of property '" + PTT.normal + "'" );
- gValue = oObj.getPropertyValue(PTT.normal);
- sValue = ValueChanger.changePValue(gValue);
- oObj.setPropertyValue(PTT.normal, sValue);
- sValue = oObj.getPropertyValue(PTT.normal);
- } catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.normal+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.normal+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.normal+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.normal+"'");
- e.printStackTrace(log);
- } // end of try-catch
- tRes.tested("setPropertyValue()",(! gValue.equals(sValue)));
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.normal.get(i);
+ try {
+ log.println("try to change value of property '" + propertyName + "'" );
+ gValue = oObj.getPropertyValue(propertyName);
+ sValue = ValueChanger.changePValue(gValue);
+ oObj.setPropertyValue(propertyName, sValue);
+ sValue = oObj.getPropertyValue(propertyName);
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+ if( gValue.equals(sValue) )
+ {
+ log.println("setting property '"+ propertyName+"' failed");
+ error = true;
+ }
+ }
+ tRes.tested("setPropertyValue()",!error);
} //endif
return;
@@ -311,6 +333,28 @@ public class _XPropertySet extends MultiMethodTest {
} // end of setPropertyValue()
/**
+ * Tests <code>getPropertyValue</code> method for the given property.
+ * Returns true if no exceptions occured
+ */
+ private boolean getSinglePropertyValue( String propertyName )
+ {
+ boolean runOk = false;
+ try {
+ oObj.getPropertyValue(propertyName);
+ runOk = true;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to get property '"+
+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to get property '"+
+ propertyName+"'");
+ e.printStackTrace(log);
+ }
+ return runOk;
+ }
+
+ /**
* Tests <code>getPropertyValue</code> method.
* Just call this method and checks for no exceptions <p>
* Method tests to be successfully completed before :
@@ -325,29 +369,33 @@ public class _XPropertySet extends MultiMethodTest {
requiredMethod("getPropertySetInfo()");
- String toCheck = PTT.normal;
-
- if ( PTT.normal.equals("none") ) {
- toCheck = oObj.getPropertySetInfo().getProperties()[0].Name;
- log.println("All properties are Read Only");
- log.println("Using: "+toCheck);
+ int count = PTT.normal.size();
+ if ( count==0 || PTT.normal.get(0).equals("none") ) {
+ Property[] properties = oObj.getPropertySetInfo().getProperties();
+ if( properties.length > 0 ) {
+ String propertyName = properties[0].Name;
+ log.println("All properties are Read Only");
+ log.println("Using: "+propertyName);
+ tRes.tested("getPropertyValue()", getSinglePropertyValue( propertyName ) );
+ }
+ else {
+ log.println("*** No properties found ***");
+ tRes.tested("getPropertyValue()", true) ;
+ }
+ } else {
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.normal.get(i);
+ boolean runOk = getSinglePropertyValue( propertyName );
+ if( !runOk )
+ {
+ error = true;
+ log.println("getPropertyValue() failed for property '"+propertyName+"'");
+ }
+ }
+ tRes.tested("getPropertyValue()", !error) ;
}
- try {
- oObj.getPropertyValue(toCheck);
- tRes.tested("getPropertyValue()",true);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to get property '"+
- PTT.normal+"'");
- e.printStackTrace(log);
- tRes.tested("getPropertyValue()",false);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to get property '"+
- PTT.normal+"'");
- e.printStackTrace(log);
- tRes.tested("getPropertyValue()",false);
- } // end of try-catch
-
return;
}
@@ -367,42 +415,60 @@ public class _XPropertySet extends MultiMethodTest {
requiredMethod("addPropertyChangeListener()");
- propertyChanged = false;
-
- if ( PTT.bound.equals("none") ) {
+ int count = PTT.bound.size();
+ if ( count==0 || PTT.bound.get(0).equals("none") ) {
log.println("*** No bound properties found ***");
tRes.tested("removePropertyChangeListener()", true) ;
} else {
- try {
- propertyChanged = false;
- oObj.removePropertyChangeListener(PTT.bound,PClistener);
- Object gValue = oObj.getPropertyValue(PTT.bound);
- oObj.setPropertyValue(PTT.bound,
- ValueChanger.changePValue(gValue));
- } catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.bound+"'");
- e.printStackTrace(log);
- } // end of try-catch
-
- tRes.tested("removePropertyChangeListener()",!propertyChanged);
- if (propertyChanged) {
- log.println("propertyChangeListener was called after removing"+
- " for '"+PTT.bound+"'");
+
+ //remove all listeners first
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.bound.get(i);
+ try {
+ oObj.removePropertyChangeListener(propertyName,PClistener);
+ } catch (Exception e) {
+ log.println("Exception occured while removing change listener from"+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ }
}
- } //endif
+
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.bound.get(i);
+ try {
+ propertyChanged = false;
+ oObj.addPropertyChangeListener(propertyName,PClistener);
+ oObj.removePropertyChangeListener(propertyName,PClistener);
+ Object gValue = oObj.getPropertyValue(propertyName);
+ oObj.setPropertyValue(propertyName,
+ ValueChanger.changePValue(gValue));
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+
+ error = error || propertyChanged;
+ if (propertyChanged) {
+ log.println("propertyChangeListener was called after removing"+
+ " for '"+propertyName+"'");
+ }
+ }
+ tRes.tested("removePropertyChangeListener()",!error);
+ }
return;
@@ -425,47 +491,64 @@ public class _XPropertySet extends MultiMethodTest {
requiredMethod("addVetoableChangeListener()");
- vetoableChanged = false;
-
- if ( PTT.constrained.equals("none") ) {
+ int count = PTT.constrained.size();
+ if ( count==0 || PTT.constrained.get(0).equals("none") ) {
log.println("*** No constrained properties found ***");
tRes.tested("removeVetoableChangeListener()", true) ;
} else {
- try {
- oObj.removeVetoableChangeListener(PTT.constrained,VClistener);
- Object gValue = oObj.getPropertyValue(PTT.constrained);
- oObj.setPropertyValue(PTT.constrained,
- ValueChanger.changePValue(gValue));
- } catch (com.sun.star.beans.PropertyVetoException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.IllegalArgumentException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.beans.UnknownPropertyException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } catch (com.sun.star.lang.WrappedTargetException e) {
- log.println("Exception occured while trying to change "+
- "property '"+ PTT.constrained+"'");
- e.printStackTrace(log);
- } // end of try-catch
-
- tRes.tested("removeVetoableChangeListener()",!vetoableChanged);
- if (vetoableChanged) {
- log.println("vetoableChangeListener was called after "+
- "removing for '"+PTT.constrained+"'");
+
+ //remove all listeners first
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.constrained.get(i);
+ try {
+ oObj.removeVetoableChangeListener(propertyName,VClistener);
+ } catch (Exception e) {
+ log.println("Exception occured while removing veto listener from"+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ }
}
- } //endif
+
+ boolean error = false;
+ for (int i = 0; i < count; i++) {
+ String propertyName = PTT.constrained.get(i);
+ vetoableChanged = false;
+ try {
+ oObj.addVetoableChangeListener(propertyName,VClistener);
+ oObj.removeVetoableChangeListener(propertyName,VClistener);
+ Object gValue = oObj.getPropertyValue(propertyName);
+ oObj.setPropertyValue(propertyName,
+ ValueChanger.changePValue(gValue));
+ } catch (com.sun.star.beans.PropertyVetoException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("Exception occured while trying to change "+
+ "property '"+ propertyName+"'");
+ e.printStackTrace(log);
+ } // end of try-catch
+ error = error || vetoableChanged;
+ if (vetoableChanged) {
+ log.println("vetoableChangeListener was called after "+
+ "removing for '"+propertyName+"'");
+ }
+ }
+ tRes.tested("removeVetoableChangeListener()",!error);
+ }
return;
} // end of removeVetoableChangeListener()
-
/**
* Gets the properties being tested. Searches and stores by one
* property of each kind (Bound, Vetoable, Normal).
@@ -473,9 +556,6 @@ public class _XPropertySet extends MultiMethodTest {
public void getPropsToTest(XPropertySetInfo xPSI) {
Property[] properties = xPSI.getProperties();
- String bound = "";
- String constrained = "";
- String normal = "";
// some properties should not be changed in a unspecific way
String[] skip = {"PrinterName", "CharRelief", "IsLayerMode"};
@@ -522,47 +602,19 @@ public class _XPropertySet extends MultiMethodTest {
if ( isWritable && isNotNull ) canChange = isChangeable(name);
if ( isWritable && isNotNull && isBound && canChange) {
- bound+=name+";";
+ PTT.bound.add(name);
}
if ( isWritable && isNotNull && isConstr && canChange) {
- constrained+=name+";";
+ PTT.constrained.add(name);
}
- if ( isWritable && isNotNull && canChange) normal+=name+";";
+ if ( isWritable && isNotNull && canChange) {
+ PTT.normal.add(name);
+ }
} // endfor
-
- //get a random bound property
- PTT.bound=getRandomString(bound);
- log.println("Bound: "+PTT.bound);
-
- //get a random constrained property
- PTT.constrained=getRandomString(constrained);
- log.println("Constrained: "+PTT.constrained);
-
- //get a random normal property
- PTT.normal=getRandomString(normal);
- }
-
- /**
- * Retrieves one random property name from list (property names separated
- * by ';') of property names.
- */
- public String getRandomString(String str) {
-
- String gRS = "none";
- Random rnd = new Random();
-
- if (str.equals("")) str = "none";
- StringTokenizer ST=new StringTokenizer(str,";");
- int nr = rnd.nextInt(ST.countTokens());
- if (nr < 1) nr+=1;
- for (int i=1; i<nr+1; i++) gRS = ST.nextToken();
-
- return gRS;
-
}
public boolean isChangeable(String name) {
diff --git a/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java b/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java
index f289d68983ce..531ec39478ed 100644
--- a/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java
+++ b/qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java
@@ -93,6 +93,40 @@ public class _Chart3DBarProperties extends MultiPropertyTest {
throw new StatusException("Couldn't change Diagram to 3D", e);
}
}
+
+ /**
+ * Sets the diagram back to 2D as 2D rendering is much faster for the following tests.
+ */
+ protected void after() {
+ log.println("Setting Diagram back to 2D");
+ XChartDocument doc = (XChartDocument) tEnv.getObjRelation("CHARTDOC");
+ if (doc == null) throw new StatusException(Status.failed
+ ("Relation 'CHARTDOC' not found"));
+
+ log.println("Change Diagram to 3D");
+ oObj = (XPropertySet)
+ UnoRuntime.queryInterface( XPropertySet.class, doc.getDiagram() );
+ try {
+ oObj.setPropertyValue("Dim3D", new Boolean(false));
+ } catch(com.sun.star.lang.WrappedTargetException e) {
+ log.println("Couldn't change Diagram back to 2D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram back to 2D", e);
+ } catch(com.sun.star.lang.IllegalArgumentException e) {
+ log.println("Couldn't change Diagram back to 2D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram back to 2D", e);
+ } catch(com.sun.star.beans.PropertyVetoException e) {
+ log.println("Couldn't change Diagram back to 2D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram back to 2D", e);
+ } catch(com.sun.star.beans.UnknownPropertyException e) {
+ log.println("Couldn't change Diagram back to 2D");
+ e.printStackTrace(log);
+ throw new StatusException("Couldn't change Diagram back to 2D", e);
+ }
+ }
+
} // finish class _Chart3DBarProperties
diff --git a/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java b/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java
index 99a89cf3373d..2ae9ac7fa36b 100644
--- a/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java
+++ b/qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java
@@ -45,7 +45,7 @@ import com.sun.star.chart.XDiagram;
* </ul> <p>
* The following predefined files needed to complete the test:
* <ul>
-* <li> <code>poliball.gif</code> :
+* <li> <code>space-metal.jpg</code> :
* for test of property 'SymbolBitmapURL' </li>
* <ul> <p>
* This test needs the following object relations :
@@ -79,7 +79,7 @@ public class _ChartDataPointProperties extends MultiPropertyTest {
protected PropertyTester URLTester = new PropertyTester() {
protected Object getNewValue(String propName, Object oldValue)
throws java.lang.IllegalArgumentException {
- return utils.getFullTestURL("poliball.gif");
+ return utils.getFullTestURL("space-metal.jpg");
}
};
diff --git a/qadevOOo/tests/java/ifc/chart/_LineDiagram.java b/qadevOOo/tests/java/ifc/chart/_LineDiagram.java
index 37635266715d..a2555ea26f69 100644
--- a/qadevOOo/tests/java/ifc/chart/_LineDiagram.java
+++ b/qadevOOo/tests/java/ifc/chart/_LineDiagram.java
@@ -48,7 +48,7 @@ import com.sun.star.uno.UnoRuntime;
* </ul> <p>
* The following predefined files needed to complete the test:
* <ul>
-* <li> <code>poliball.gif</code> :
+* <li> <code>space-metal.jpg</code> :
* for test of property 'SymbolBitmapURL' </li>
* <li> <code>crazy-blue.jpg</code> :
* for test of property 'SymbolBitmapURL' </li>
@@ -97,9 +97,9 @@ public class _LineDiagram extends MultiPropertyTest {
protected PropertyTester URLTester = new PropertyTester() {
protected Object getNewValue(String propName, Object oldValue)
throws java.lang.IllegalArgumentException {
- if (oldValue.equals(util.utils.getFullTestURL("poliball.gif")))
+ if (oldValue.equals(util.utils.getFullTestURL("space-metal.jpg")))
return util.utils.getFullTestURL("crazy-blue.jpg"); else
- return util.utils.getFullTestURL("poliball.gif");
+ return util.utils.getFullTestURL("space-metal.jpg");
}
} ;
diff --git a/qadevOOo/tests/java/ifc/drawing/_LineProperties.java b/qadevOOo/tests/java/ifc/drawing/_LineProperties.java
index a590bd5c5e1c..b6fb1f2186a1 100644
--- a/qadevOOo/tests/java/ifc/drawing/_LineProperties.java
+++ b/qadevOOo/tests/java/ifc/drawing/_LineProperties.java
@@ -80,21 +80,7 @@ public class _LineProperties extends MultiPropertyTest {
LineDash aLineDash2 = new LineDash();
aLineDash.DashLen = 5;
aLineDash2.DashLen = 1;
- PropertyValue[] firstValue = new PropertyValue[2];
- firstValue[0] = new PropertyValue();
- firstValue[0].Name = "Name";
- firstValue[0].Value = "Name1";
- firstValue[1] = new PropertyValue();
- firstValue[1].Name = "LineDash";
- firstValue[1].Value = aLineDash;
- PropertyValue[] secondValue = new PropertyValue[2];
- secondValue[0] = new PropertyValue();
- secondValue[0].Name = "Name";
- secondValue[0].Value = "Name2";
- secondValue[1] = new PropertyValue();
- secondValue[1].Name = "LineDash";
- secondValue[1].Value = aLineDash2;
- testProperty("LineDash",firstValue,secondValue);
+ testProperty("LineDash",aLineDash,aLineDash2);
}
}
diff --git a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
index b11659265441..fa987a09a227 100644
--- a/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
+++ b/qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java
@@ -36,6 +36,7 @@ import lib.StatusException;
import lib.Status;
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
+import com.sun.star.sdb.SQLFilterOperator;
/**
* Testing <code>com.sun.star.sdb.XSingleSelectQueryComposer</code>
@@ -172,7 +173,7 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
boolean ok = true;
try{
- oObj.appendFilterByColumn(xProp, true);
+ oObj.appendFilterByColumn(xProp, true,SQLFilterOperator.EQUAL);
log.println("appendFilterByColumn: " + xQueryAna.getFilter());
ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
@@ -183,7 +184,7 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
try{
- oObj.appendFilterByColumn(xProp, false);
+ oObj.appendFilterByColumn(xProp, false,SQLFilterOperator.EQUAL);
log.println("appendFilterByColumn: " + xQueryAna.getFilter());
ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
@@ -194,8 +195,8 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
try{
XPropertySet dummy = null;
- oObj.appendFilterByColumn(dummy, true);
- log.println("unexpected Exception was not thorwn");
+ oObj.appendFilterByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
tRes.tested("appendFilterByColumn()", false);
} catch (com.sun.star.sdbc.SQLException e){
@@ -227,7 +228,7 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
try{
XPropertySet dummy = null;
oObj.appendGroupByColumn(dummy);
- log.println("unexpected Exception was not thorwn");
+ log.println("expected Exception was not thrown");
tRes.tested("appendGroupByColumn()", false);
} catch (com.sun.star.sdbc.SQLException e){
@@ -320,7 +321,7 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
boolean ok = true;
try{
- oObj.appendHavingClauseByColumn(xProp, true);
+ oObj.appendHavingClauseByColumn(xProp, true,SQLFilterOperator.EQUAL);
log.println("appendHavingClauseByColumn: " + xQueryAna.getFilter());
ok = ok && (xQueryAna.getFilter().indexOf(colName) > 0);
@@ -330,8 +331,8 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
}
try{
XPropertySet dummy = null;
- oObj.appendHavingClauseByColumn(dummy, true);
- log.println("unexpected Exception was not thorwn");
+ oObj.appendHavingClauseByColumn(dummy, true,SQLFilterOperator.EQUAL);
+ log.println("expected Exception was not thrown");
tRes.tested("appendHavingClauseByColumn()", false);
} catch (com.sun.star.sdbc.SQLException e){
@@ -363,7 +364,7 @@ public class _XSingleSelectQueryComposer extends MultiMethodTest {
try{
XPropertySet dummy = null;
oObj.appendOrderByColumn(dummy, true);
- log.println("unexpected Exception was not thorwn");
+ log.println("expected Exception was not thrown");
tRes.tested("appendOrderByColumn()", false);
} catch (com.sun.star.sdbc.SQLException e){
diff --git a/qadevOOo/tests/java/mod/_sch/AccArea.java b/qadevOOo/tests/java/mod/_sch/AccArea.java
index dae93e6d3326..b371f1950558 100644
--- a/qadevOOo/tests/java/mod/_sch/AccArea.java
+++ b/qadevOOo/tests/java/mod/_sch/AccArea.java
@@ -111,9 +111,11 @@ public class AccArea extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccAxis.java b/qadevOOo/tests/java/mod/_sch/AccAxis.java
index e0c6b8901345..2cdecae03aca 100644
--- a/qadevOOo/tests/java/mod/_sch/AccAxis.java
+++ b/qadevOOo/tests/java/mod/_sch/AccAxis.java
@@ -109,9 +109,11 @@ public class AccAxis extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccDataPoint.java b/qadevOOo/tests/java/mod/_sch/AccDataPoint.java
index 45bd6e3e4101..3e94364a0559 100644
--- a/qadevOOo/tests/java/mod/_sch/AccDataPoint.java
+++ b/qadevOOo/tests/java/mod/_sch/AccDataPoint.java
@@ -110,9 +110,11 @@ public class AccDataPoint extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccDataSeries.java b/qadevOOo/tests/java/mod/_sch/AccDataSeries.java
index 4eff500ebba7..2d5ec4fde1d5 100644
--- a/qadevOOo/tests/java/mod/_sch/AccDataSeries.java
+++ b/qadevOOo/tests/java/mod/_sch/AccDataSeries.java
@@ -110,9 +110,11 @@ public class AccDataSeries extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccDiagram.java b/qadevOOo/tests/java/mod/_sch/AccDiagram.java
index 50657c0218ac..9b7f90766fdd 100644
--- a/qadevOOo/tests/java/mod/_sch/AccDiagram.java
+++ b/qadevOOo/tests/java/mod/_sch/AccDiagram.java
@@ -110,9 +110,11 @@ public class AccDiagram extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccFloor.java b/qadevOOo/tests/java/mod/_sch/AccFloor.java
index 9ab1f9542111..37d56815983d 100644
--- a/qadevOOo/tests/java/mod/_sch/AccFloor.java
+++ b/qadevOOo/tests/java/mod/_sch/AccFloor.java
@@ -135,9 +135,11 @@ public class AccFloor extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccGrid.java b/qadevOOo/tests/java/mod/_sch/AccGrid.java
index f92aa0fe82a6..268f53ec8b3d 100644
--- a/qadevOOo/tests/java/mod/_sch/AccGrid.java
+++ b/qadevOOo/tests/java/mod/_sch/AccGrid.java
@@ -111,9 +111,11 @@ public class AccGrid extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccLegend.java b/qadevOOo/tests/java/mod/_sch/AccLegend.java
index a0f29e1e0701..aa46cdb8407d 100644
--- a/qadevOOo/tests/java/mod/_sch/AccLegend.java
+++ b/qadevOOo/tests/java/mod/_sch/AccLegend.java
@@ -109,9 +109,11 @@ public class AccLegend extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccLegendEntry.java b/qadevOOo/tests/java/mod/_sch/AccLegendEntry.java
index 78996d84fa2a..61c221df57e0 100644
--- a/qadevOOo/tests/java/mod/_sch/AccLegendEntry.java
+++ b/qadevOOo/tests/java/mod/_sch/AccLegendEntry.java
@@ -109,9 +109,11 @@ public class AccLegendEntry extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java b/qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java
index d72723ebea62..aafe91fdd3d4 100644
--- a/qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java
+++ b/qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java
@@ -114,9 +114,11 @@ public class AccStatisticsObject extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccTitle.java b/qadevOOo/tests/java/mod/_sch/AccTitle.java
index 4fa56ee8f4f1..0639f19ca4cc 100644
--- a/qadevOOo/tests/java/mod/_sch/AccTitle.java
+++ b/qadevOOo/tests/java/mod/_sch/AccTitle.java
@@ -109,9 +109,11 @@ public class AccTitle extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccWall.java b/qadevOOo/tests/java/mod/_sch/AccWall.java
index 4dc94a173fff..66779421cc0b 100644
--- a/qadevOOo/tests/java/mod/_sch/AccWall.java
+++ b/qadevOOo/tests/java/mod/_sch/AccWall.java
@@ -134,9 +134,11 @@ public class AccWall extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
-
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
}
diff --git a/qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java b/qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java
index a064e7f05a09..9031680f93f1 100644
--- a/qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java
+++ b/qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java
@@ -102,8 +102,11 @@ public class AccessibleDocumentView extends TestCase {
* @param log writer to log information while testing
*/
protected void cleanup( TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java b/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java
index da12c9e6b57a..f796d5530a9c 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartAxis.java
@@ -86,8 +86,11 @@ public class ChXChartAxis extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartData.java b/qadevOOo/tests/java/mod/_sch/ChXChartData.java
index fe14322933a5..3236e345b8e6 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXChartData.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartData.java
@@ -73,8 +73,11 @@ public class ChXChartData extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java b/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java
index 35d15d634054..14caeefff8c1 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java
@@ -76,8 +76,11 @@ public class ChXChartDataArray extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java b/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java
index a51457d5cde1..deafa9922043 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartDocument.java
@@ -77,10 +77,16 @@ public class ChXChartDocument extends TestCase {
* Disposes Chart documents.
*/
protected void cleanup(TestParameters Param, PrintWriter log) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
- log.println( " closing xChartDoc2 " );
- util.DesktopTools.closeDoc(doc2);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
+ if( doc2!=null ) {
+ log.println( " closing xChartDoc2" );
+ util.DesktopTools.closeDoc(doc2);
+ doc2 = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXChartView.java b/qadevOOo/tests/java/mod/_sch/ChXChartView.java
index 9d1ea2539bfc..f5476f2d0643 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXChartView.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXChartView.java
@@ -84,8 +84,11 @@ public class ChXChartView extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java b/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java
index b6ddb94575b4..0c1647684c75 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXDataPoint.java
@@ -101,8 +101,11 @@ public class ChXDataPoint extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChXDataRow.java b/qadevOOo/tests/java/mod/_sch/ChXDataRow.java
index ffc13ad95bb7..69139ea5d902 100644
--- a/qadevOOo/tests/java/mod/_sch/ChXDataRow.java
+++ b/qadevOOo/tests/java/mod/_sch/ChXDataRow.java
@@ -107,8 +107,11 @@ public class ChXDataRow extends TestCase {
* Disposes Chart document.
*/
protected synchronized void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
diff --git a/qadevOOo/tests/java/mod/_sch/ChartArea.java b/qadevOOo/tests/java/mod/_sch/ChartArea.java
index 17a04276aaca..614327f94a1e 100644
--- a/qadevOOo/tests/java/mod/_sch/ChartArea.java
+++ b/qadevOOo/tests/java/mod/_sch/ChartArea.java
@@ -92,8 +92,11 @@ public class ChartArea extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChartGrid.java b/qadevOOo/tests/java/mod/_sch/ChartGrid.java
index 671cfcfe86e3..73a44b810436 100644
--- a/qadevOOo/tests/java/mod/_sch/ChartGrid.java
+++ b/qadevOOo/tests/java/mod/_sch/ChartGrid.java
@@ -81,8 +81,11 @@ public class ChartGrid extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChartLegend.java b/qadevOOo/tests/java/mod/_sch/ChartLegend.java
index 78770c5f94b6..a0dd4fe3ec64 100644
--- a/qadevOOo/tests/java/mod/_sch/ChartLegend.java
+++ b/qadevOOo/tests/java/mod/_sch/ChartLegend.java
@@ -109,8 +109,11 @@ public class ChartLegend extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChartLine.java b/qadevOOo/tests/java/mod/_sch/ChartLine.java
index e2345ba7edb5..950885060f5f 100644
--- a/qadevOOo/tests/java/mod/_sch/ChartLine.java
+++ b/qadevOOo/tests/java/mod/_sch/ChartLine.java
@@ -79,8 +79,11 @@ public class ChartLine extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_sch/ChartTitle.java b/qadevOOo/tests/java/mod/_sch/ChartTitle.java
index b1e47c0ea00b..f88c938693bc 100644
--- a/qadevOOo/tests/java/mod/_sch/ChartTitle.java
+++ b/qadevOOo/tests/java/mod/_sch/ChartTitle.java
@@ -91,8 +91,11 @@ public class ChartTitle extends TestCase {
* Disposes Chart document.
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " closing xChartDoc " );
- util.DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java
index 8ec11a9360b9..6fe4765389da 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java
@@ -91,11 +91,14 @@ public class XMLContentExporter extends TestCase {
}
/**
- * Document disposed here.
+ * Close document
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " disposing xChartDoc " );
- xChartDoc.dispose();
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java
index 1c5970c7d5e0..5e48b073fc9f 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java
@@ -91,11 +91,15 @@ public class XMLContentImporter extends TestCase {
}
/**
- * Disposes document.
- */
+ * Close document
+ */
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " disposing document " );
- comp.dispose();
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java
index 393ddb7492ce..c0edd4f82cda 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java
@@ -92,11 +92,14 @@ public class XMLExporter extends TestCase {
}
/**
- * Document disposed here.
+ * Close document
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " close xChartDoc " );
- DesktopTools.closeDoc(xChartDoc);
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java
index b8d441751540..83a422df9128 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java
@@ -91,11 +91,15 @@ public class XMLImporter extends TestCase {
}
/**
- * Disposes document.
- */
+ * Close document
+ */
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " disposing document " );
- comp.dispose();
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java
index 9435907adb3c..4405b5c5ac60 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java
@@ -90,11 +90,14 @@ public class XMLStylesExporter extends TestCase {
}
/**
- * Document disposed here.
+ * Close document
*/
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " disposing xChartDoc " );
- xChartDoc.dispose();
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ }
}
/**
diff --git a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java
index 617b2f92cbc4..7bd02228203d 100644
--- a/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java
+++ b/qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java
@@ -88,12 +88,16 @@ public class XMLStylesImporter extends TestCase {
comp = xChartDoc;
}
- /**
- * Disposes document.
- */
+ /**
+ * Close document
+ */
protected void cleanup( TestParameters tParam, PrintWriter log ) {
- log.println( " disposing document " );
- comp.dispose();
+ if( xChartDoc!=null ) {
+ log.println( " closing xChartDoc" );
+ util.DesktopTools.closeDoc(xChartDoc);
+ xChartDoc = null;
+ comp = null;
+ }
}
/**
diff --git a/smoketestoo_native/data/smoketestdoc.sxw b/smoketestoo_native/data/smoketestdoc.sxw
index fa67968addec..84e1e30bfc4e 100755
--- a/smoketestoo_native/data/smoketestdoc.sxw
+++ b/smoketestoo_native/data/smoketestdoc.sxw
Binary files differ
diff --git a/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc b/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc
index 8cb7e0851809..8cb7e0851809 100755..100644
--- a/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc
+++ b/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc
diff --git a/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc b/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc
index 819b7da04c9a..819b7da04c9a 100755..100644
--- a/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc
+++ b/testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc
diff --git a/testautomation/chart2/optional/includes/loadsave/ch2_losa.inc b/testautomation/chart2/optional/includes/loadsave/ch2_losa.inc
index c2cb96636557..c2cb96636557 100755..100644
--- a/testautomation/chart2/optional/includes/loadsave/ch2_losa.inc
+++ b/testautomation/chart2/optional/includes/loadsave/ch2_losa.inc
diff --git a/testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc b/testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc
index 515d9fe55ca6..515d9fe55ca6 100755..100644
--- a/testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc
+++ b/testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc
diff --git a/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc b/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc
index 10ba7eb017e1..10ba7eb017e1 100755..100644
--- a/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc
+++ b/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc
diff --git a/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc b/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc
index e260d274e7ea..e260d274e7ea 100755..100644
--- a/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc
+++ b/testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc
diff --git a/testautomation/chart2/required/ch2_updt_calc.bas b/testautomation/chart2/required/ch2_updt_calc.bas
index 7dba15ead84f..7dba15ead84f 100755..100644
--- a/testautomation/chart2/required/ch2_updt_calc.bas
+++ b/testautomation/chart2/required/ch2_updt_calc.bas
diff --git a/testautomation/chart2/required/includes/ch2_file.inc b/testautomation/chart2/required/includes/ch2_file.inc
index 049ed6b7c9fb..049ed6b7c9fb 100755..100644
--- a/testautomation/chart2/required/includes/ch2_file.inc
+++ b/testautomation/chart2/required/includes/ch2_file.inc
diff --git a/testautomation/chart2/required/includes/ch2_format.inc b/testautomation/chart2/required/includes/ch2_format.inc
index 1eb92e42a480..1eb92e42a480 100755..100644
--- a/testautomation/chart2/required/includes/ch2_format.inc
+++ b/testautomation/chart2/required/includes/ch2_format.inc
diff --git a/testautomation/chart2/required/includes/ch2_format1.inc b/testautomation/chart2/required/includes/ch2_format1.inc
index afae7e99e272..afae7e99e272 100755..100644
--- a/testautomation/chart2/required/includes/ch2_format1.inc
+++ b/testautomation/chart2/required/includes/ch2_format1.inc
diff --git a/testautomation/chart2/required/includes/ch2_insert.inc b/testautomation/chart2/required/includes/ch2_insert.inc
index 7d65aa3460e2..7d65aa3460e2 100755..100644
--- a/testautomation/chart2/required/includes/ch2_insert.inc
+++ b/testautomation/chart2/required/includes/ch2_insert.inc
diff --git a/testautomation/chart2/required/includes/ch2_insert_ctl.inc b/testautomation/chart2/required/includes/ch2_insert_ctl.inc
index 03a91db6acb1..03a91db6acb1 100755..100644
--- a/testautomation/chart2/required/includes/ch2_insert_ctl.inc
+++ b/testautomation/chart2/required/includes/ch2_insert_ctl.inc
diff --git a/testautomation/chart2/required/includes/ch2_menu.inc b/testautomation/chart2/required/includes/ch2_menu.inc
index 7461fbc1461c..7461fbc1461c 100755..100644
--- a/testautomation/chart2/required/includes/ch2_menu.inc
+++ b/testautomation/chart2/required/includes/ch2_menu.inc
diff --git a/testautomation/chart2/required/includes/ch2_ole.inc b/testautomation/chart2/required/includes/ch2_ole.inc
index 51b5db4a1d5f..51b5db4a1d5f 100755..100644
--- a/testautomation/chart2/required/includes/ch2_ole.inc
+++ b/testautomation/chart2/required/includes/ch2_ole.inc
diff --git a/testautomation/chart2/required/includes/ch2_toolbars.inc b/testautomation/chart2/required/includes/ch2_toolbars.inc
index c447078131fc..c447078131fc 100755..100644
--- a/testautomation/chart2/required/includes/ch2_toolbars.inc
+++ b/testautomation/chart2/required/includes/ch2_toolbars.inc
diff --git a/testautomation/chart2/required/includes/ch2_view.inc b/testautomation/chart2/required/includes/ch2_view.inc
index 32664c0f0b16..32664c0f0b16 100755..100644
--- a/testautomation/chart2/required/includes/ch2_view.inc
+++ b/testautomation/chart2/required/includes/ch2_view.inc
diff --git a/testautomation/chart2/required/includes/ch2_window.inc b/testautomation/chart2/required/includes/ch2_window.inc
index a9769c10a278..a9769c10a278 100755..100644
--- a/testautomation/chart2/required/includes/ch2_window.inc
+++ b/testautomation/chart2/required/includes/ch2_window.inc
diff --git a/testautomation/chart2/required/includes/ch2_wizard.inc b/testautomation/chart2/required/includes/ch2_wizard.inc
index 5939c9b7e682..5939c9b7e682 100755..100644
--- a/testautomation/chart2/required/includes/ch2_wizard.inc
+++ b/testautomation/chart2/required/includes/ch2_wizard.inc
diff --git a/testautomation/chart2/tools/ch_tools_axes.inc b/testautomation/chart2/tools/ch_tools_axes.inc
index 9ac6788e409d..9ac6788e409d 100755..100644
--- a/testautomation/chart2/tools/ch_tools_axes.inc
+++ b/testautomation/chart2/tools/ch_tools_axes.inc
diff --git a/testautomation/chart2/tools/ch_tools_chart_type.inc b/testautomation/chart2/tools/ch_tools_chart_type.inc
index 4cadbb748a11..4cadbb748a11 100755..100644
--- a/testautomation/chart2/tools/ch_tools_chart_type.inc
+++ b/testautomation/chart2/tools/ch_tools_chart_type.inc
diff --git a/testautomation/chart2/tools/ch_tools_common.inc b/testautomation/chart2/tools/ch_tools_common.inc
index 311e8c354f74..311e8c354f74 100755..100644
--- a/testautomation/chart2/tools/ch_tools_common.inc
+++ b/testautomation/chart2/tools/ch_tools_common.inc
diff --git a/testautomation/chart2/tools/ch_tools_data_labels.inc b/testautomation/chart2/tools/ch_tools_data_labels.inc
index d1cf05360e2c..d1cf05360e2c 100755..100644
--- a/testautomation/chart2/tools/ch_tools_data_labels.inc
+++ b/testautomation/chart2/tools/ch_tools_data_labels.inc
diff --git a/testautomation/chart2/tools/ch_tools_grids.inc b/testautomation/chart2/tools/ch_tools_grids.inc
index 0a0bc8226387..0a0bc8226387 100755..100644
--- a/testautomation/chart2/tools/ch_tools_grids.inc
+++ b/testautomation/chart2/tools/ch_tools_grids.inc
diff --git a/testautomation/chart2/tools/ch_tools_legend.inc b/testautomation/chart2/tools/ch_tools_legend.inc
index 9c96ff79eb83..9c96ff79eb83 100755..100644
--- a/testautomation/chart2/tools/ch_tools_legend.inc
+++ b/testautomation/chart2/tools/ch_tools_legend.inc
diff --git a/testautomation/chart2/tools/ch_tools_statistics.inc b/testautomation/chart2/tools/ch_tools_statistics.inc
index d1c3cf6d0bc9..d1c3cf6d0bc9 100755..100644
--- a/testautomation/chart2/tools/ch_tools_statistics.inc
+++ b/testautomation/chart2/tools/ch_tools_statistics.inc
diff --git a/testautomation/chart2/tools/ch_tools_tab_borders_lines.inc b/testautomation/chart2/tools/ch_tools_tab_borders_lines.inc
index 1d5f3e227f6b..1d5f3e227f6b 100755..100644
--- a/testautomation/chart2/tools/ch_tools_tab_borders_lines.inc
+++ b/testautomation/chart2/tools/ch_tools_tab_borders_lines.inc
diff --git a/testautomation/chart2/tools/ch_tools_tab_pages.inc b/testautomation/chart2/tools/ch_tools_tab_pages.inc
index 8d1954d4578c..8d1954d4578c 100755..100644
--- a/testautomation/chart2/tools/ch_tools_tab_pages.inc
+++ b/testautomation/chart2/tools/ch_tools_tab_pages.inc
diff --git a/testautomation/chart2/tools/ch_tools_titles.inc b/testautomation/chart2/tools/ch_tools_titles.inc
index 0f250a50be70..0f250a50be70 100755..100644
--- a/testautomation/chart2/tools/ch_tools_titles.inc
+++ b/testautomation/chart2/tools/ch_tools_titles.inc
diff --git a/testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc b/testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc
index 005d5d3f0ec7..005d5d3f0ec7 100755..100644
--- a/testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc
diff --git a/testautomation/dbaccess/optional/includes/ctrl_Grid.inc b/testautomation/dbaccess/optional/includes/ctrl_Grid.inc
index cda004644496..cda004644496 100755..100644
--- a/testautomation/dbaccess/optional/includes/ctrl_Grid.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_Grid.inc
diff --git a/testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc b/testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc
index feee460b9e5d..feee460b9e5d 100755..100644
--- a/testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc
diff --git a/testautomation/dbaccess/optional/includes/ctrl_Several1.inc b/testautomation/dbaccess/optional/includes/ctrl_Several1.inc
index 71a581f52cdf..0d7b24cbc0f2 100755
--- a/testautomation/dbaccess/optional/includes/ctrl_Several1.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_Several1.inc
@@ -586,7 +586,7 @@ testcase tComboBox
endcase
'--------------------------------------------------------------------------------------
-testcase tLabelField
+testcase tLabelField
'/// Open a new document,
printlog "Open a new document,"
diff --git a/testautomation/dbaccess/optional/includes/ctrl_Several2.inc b/testautomation/dbaccess/optional/includes/ctrl_Several2.inc
index 182be64e9ac8..4d49e459b231 100755
--- a/testautomation/dbaccess/optional/includes/ctrl_Several2.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_Several2.inc
@@ -234,12 +234,9 @@ testcase tImageButton
printlog "set properties"
'to activate property: scale, following properties must be active: Graphics (with choosen path)
Kontext "TabGeneralControl"
- if gNetzInst = false then
- fsetControlProperty("ImageButton","Graphics", gOfficePath + ConvertPath("share/gallery/bullets/blkpearl.gif"))
- else
- fsetControlProperty("ImageButton","Graphics", gNetzOfficePath + ConvertPath("share/gallery/bullets/blkpearl.gif"))
- endif
- sleep(1)
+ fsetControlProperty("ImageButton","Graphics", gOfficePath + ConvertPath("share/gallery/bullets/blkpearl.gif"))
+
+ sleep(1)
TabGeneralControl.TypeKeys "<RETURN>" , true
fsetControlProperty("ImageControl","Scale","1") 'listbox content: no
'fsetControlProperty("ImageControl","Frame","4")
diff --git a/testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc b/testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc
index 600a0173a772..600a0173a772 100755..100644
--- a/testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc
diff --git a/testautomation/dbaccess/optional/includes/ctrl_TextControl.inc b/testautomation/dbaccess/optional/includes/ctrl_TextControl.inc
index 00563d2a2bf8..00563d2a2bf8 100755..100644
--- a/testautomation/dbaccess/optional/includes/ctrl_TextControl.inc
+++ b/testautomation/dbaccess/optional/includes/ctrl_TextControl.inc
diff --git a/testautomation/dbaccess/optional/includes/db_ADOAccess.inc b/testautomation/dbaccess/optional/includes/db_ADOAccess.inc
index bd149f79d312..bd149f79d312 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_ADOAccess.inc
+++ b/testautomation/dbaccess/optional/includes/db_ADOAccess.inc
diff --git a/testautomation/dbaccess/optional/includes/db_AdabasD.inc b/testautomation/dbaccess/optional/includes/db_AdabasD.inc
index 0d72c0ab40b5..0d72c0ab40b5 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_AdabasD.inc
+++ b/testautomation/dbaccess/optional/includes/db_AdabasD.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Dbase.inc b/testautomation/dbaccess/optional/includes/db_Dbase.inc
index 0caf8935ee74..0caf8935ee74 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Dbase.inc
+++ b/testautomation/dbaccess/optional/includes/db_Dbase.inc
diff --git a/testautomation/dbaccess/optional/includes/db_DbaseFunction.inc b/testautomation/dbaccess/optional/includes/db_DbaseFunction.inc
index 74e26f16e33a..74e26f16e33a 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_DbaseFunction.inc
+++ b/testautomation/dbaccess/optional/includes/db_DbaseFunction.inc
diff --git a/testautomation/dbaccess/optional/includes/db_IndexDesign.inc b/testautomation/dbaccess/optional/includes/db_IndexDesign.inc
index eb5a400c19c1..eb5a400c19c1 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_IndexDesign.inc
+++ b/testautomation/dbaccess/optional/includes/db_IndexDesign.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Mozilla.inc b/testautomation/dbaccess/optional/includes/db_Mozilla.inc
index aefc2a51679f..aefc2a51679f 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Mozilla.inc
+++ b/testautomation/dbaccess/optional/includes/db_Mozilla.inc
diff --git a/testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc b/testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc
index 0dab9fe9551e..0dab9fe9551e 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc
+++ b/testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Query.inc b/testautomation/dbaccess/optional/includes/db_Query.inc
index bb93fd4d94cf..bb93fd4d94cf 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Query.inc
+++ b/testautomation/dbaccess/optional/includes/db_Query.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Relations.inc b/testautomation/dbaccess/optional/includes/db_Relations.inc
index 3d10a132d43a..e04a1be4c6d6 100755
--- a/testautomation/dbaccess/optional/includes/db_Relations.inc
+++ b/testautomation/dbaccess/optional/includes/db_Relations.inc
@@ -32,8 +32,10 @@
'\***********************************************************************
function tRelation( sFileName, sPWD, sRelTable1, sRelTable2 )
'/// create an 1:1 and 1:n relation between two test tables
- Dim i, j, ix as integer 'counter
- Dim iNoDS as integer 'number of data source in listbox
+ Dim i as integer 'counter
+ Dim j as integer 'counter
+ Dim ix as integer 'counter
+ Dim iNoDS as integer 'number of data source in listbox
Dim iNoTab as integer 'number of tables in grid
Dim DSOK as boolean 'datasource present check
@@ -206,8 +208,10 @@ end function
function tDoubleRelation( sFileName, sPWD, sRelTable1, sRelTable2, sRelTable3 )
'/// create an 1:1 relation, close and save relation dialog,
'/// reopen the dialog and add an 1:n relation with third test table
- Dim i, j, ix as integer 'counter
- Dim iNoDS as integer 'number of data source in listbox
+ Dim i as integer 'counter
+ Dim j as integer 'counter
+ Dim ix as integer 'counter
+ Dim iNoDS as integer 'number of data source in listbox
Dim iNoTab as integer 'number of tables in grid
Dim DSOK as boolean 'datasource present check
@@ -351,7 +355,7 @@ function tDoubleRelation( sFileName, sPWD, sRelTable1, sRelTable2, sRelTable3 )
if breltablefound <> 1 then 'needed table not found if variable <> 1
warnlog "proper table: " + sRelTable3 + " not found - test abort"
- call fCloseRealtionDesign
+ call fCloseRelationDesign
call fCloseDatabase
exit function
else
diff --git a/testautomation/dbaccess/optional/includes/db_Spreadsheet.inc b/testautomation/dbaccess/optional/includes/db_Spreadsheet.inc
index 37f1ddc8e1af..37f1ddc8e1af 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Spreadsheet.inc
+++ b/testautomation/dbaccess/optional/includes/db_Spreadsheet.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Text.inc b/testautomation/dbaccess/optional/includes/db_Text.inc
index b6dcd729d351..b6dcd729d351 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Text.inc
+++ b/testautomation/dbaccess/optional/includes/db_Text.inc
diff --git a/testautomation/dbaccess/optional/includes/db_Windows.inc b/testautomation/dbaccess/optional/includes/db_Windows.inc
index 60382a91ed3c..60382a91ed3c 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_Windows.inc
+++ b/testautomation/dbaccess/optional/includes/db_Windows.inc
diff --git a/testautomation/dbaccess/optional/includes/db_hsqldb.inc b/testautomation/dbaccess/optional/includes/db_hsqldb.inc
index 979f0e3e5f29..979f0e3e5f29 100755..100644
--- a/testautomation/dbaccess/optional/includes/db_hsqldb.inc
+++ b/testautomation/dbaccess/optional/includes/db_hsqldb.inc
diff --git a/testautomation/dbaccess/optional/includes/frm_Forms.inc b/testautomation/dbaccess/optional/includes/frm_Forms.inc
index 6b63754314e4..6b63754314e4 100755..100644
--- a/testautomation/dbaccess/optional/includes/frm_Forms.inc
+++ b/testautomation/dbaccess/optional/includes/frm_Forms.inc
diff --git a/testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc b/testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc
index d072fbab0139..d072fbab0139 100755..100644
--- a/testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc
+++ b/testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_DateTime.inc b/testautomation/dbaccess/optional/includes/rpt_DateTime.inc
index 648fc64c72bc..648fc64c72bc 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_DateTime.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_DateTime.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc b/testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc
index 084cdea51787..084cdea51787 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_Formating.inc b/testautomation/dbaccess/optional/includes/rpt_Formating.inc
index b4d022afd126..b4d022afd126 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_Formating.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_Formating.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc b/testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc
index 4435136e1a85..4435136e1a85 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_Grouping.inc b/testautomation/dbaccess/optional/includes/rpt_Grouping.inc
index 3497dc446aef..3497dc446aef 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_Grouping.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_Grouping.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_PageNumber.inc b/testautomation/dbaccess/optional/includes/rpt_PageNumber.inc
index 7a3881a56dc7..7a3881a56dc7 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_PageNumber.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_PageNumber.inc
diff --git a/testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc b/testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc
index 9f14245b7b48..9f14245b7b48 100755..100644
--- a/testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc
+++ b/testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc
diff --git a/testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc b/testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc
index 0cc614af0d87..0cc614af0d87 100755..100644
--- a/testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc b/testautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc
index eb8dd4a15c35..bd25224ba429 100755
--- a/testautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc
@@ -233,38 +233,7 @@ qaerrorlog "not yet implemented"
endcase
'-------------------------------------------------------------------------
testcase tAdabas
-
- qaerrorlog "not yet implemented"
- goto endsub
-
qaerrorlog "not yet implemented"
- goto endsub
-
- if gPlatform = "x86" then
- printlog "Adabas doesn't exists under x86."
- goto endsub
- elseif gOOO then
- printlog "Adabas doesn't exists under Openoffice.org."
- goto endsub
- end if
-
- dim aDatabaseProperties(6) as string
- aDatabaseProperties() = tools_dbtools_fgetAdabasDatabaseProperties()
-
- ' if and only if no properties are defined in the environment file the test is stopped
- if(aDatabaseProperties(1) = "no") then
- qaerrorlog "No database properties from Adabas defiened. The Test is stopped here."
- goto endsub
- endif
-
- call fCreateAdabasDatasource( sFileName, aDatabaseProperties(2), aDatabaseProperties(3), aDatabaseProperties(4))
- call fOpendatabase(gOfficePath + "user/work/tt_adabas.odb","testuser")
-
- Kontext "ContainerView"
- ViewTables
-
- call fCloseDatabase(true)
-
endcase
'-------------------------------------------------------------------------
testcase tdBase
diff --git a/testautomation/dbaccess/optional/includes/wiz_FormWizard.inc b/testautomation/dbaccess/optional/includes/wiz_FormWizard.inc
index 55350854f0af..55350854f0af 100755..100644
--- a/testautomation/dbaccess/optional/includes/wiz_FormWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_FormWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc b/testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc
index fad77d94f9de..fad77d94f9de 100755..100644
--- a/testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc b/testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc
index f089ecb191ff..f089ecb191ff 100755..100644
--- a/testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc b/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
index 791a31344ae7..791a31344ae7 100755..100644
--- a/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
diff --git a/testautomation/dbaccess/optional/includes/xf_Submission.inc b/testautomation/dbaccess/optional/includes/xf_Submission.inc
index adfd53e5fe23..adfd53e5fe23 100755..100644
--- a/testautomation/dbaccess/optional/includes/xf_Submission.inc
+++ b/testautomation/dbaccess/optional/includes/xf_Submission.inc
diff --git a/testautomation/dbaccess/required/includes/Forms.inc b/testautomation/dbaccess/required/includes/Forms.inc
index 288d4d250b0f..288d4d250b0f 100755..100644
--- a/testautomation/dbaccess/required/includes/Forms.inc
+++ b/testautomation/dbaccess/required/includes/Forms.inc
diff --git a/testautomation/dbaccess/required/includes/MainApp.inc b/testautomation/dbaccess/required/includes/MainApp.inc
index fa3c1a4b0a14..4d5855ac9bba 100755
--- a/testautomation/dbaccess/required/includes/MainApp.inc
+++ b/testautomation/dbaccess/required/includes/MainApp.inc
@@ -608,7 +608,10 @@ endcase
'-------------------------------------------------------------------------
function getMenuItemCount as Integer
'use this function becasue this doesn't count the pick list
- Dim i, j, Ende, nID as Integer
+ Dim i as Integer
+ Dim j as Integer
+ Dim Ende as Integer
+ Dim nID as Integer
Sleep 2
j=0
for i=1 to MenuGetItemCount
diff --git a/testautomation/dbaccess/required/includes/Query.inc b/testautomation/dbaccess/required/includes/Query.inc
index d981fd79656e..f6fa45acbdd7 100755
--- a/testautomation/dbaccess/required/includes/Query.inc
+++ b/testautomation/dbaccess/required/includes/Query.inc
@@ -156,7 +156,7 @@ testcase tSwitchDesign
sTableName = TableName.GetSelText
printlog "- Add 'biblio' table to query design"
if sTableName <> "biblio" then
- warnlog "It should be the 'biblio'-database table but it is the '" & SelEntry & "' database table?!"
+ warnlog "It should be the 'biblio'-database table but it is the '" & sTableName & "' database table?!"
goto endsub
else
AddTable.Click
@@ -909,7 +909,10 @@ endcase
'-------------------------------------------------------------------------
function getMenuItemCount as Integer
'use this function becasue this doesn't count the pick list
- Dim i, j, Ende, nID as Integer
+ Dim i as Integer
+ Dim j as Integer
+ Dim Ende as Integer
+ Dim nID as Integer
Sleep 2
j=0
for i=1 to MenuGetItemCount
diff --git a/testautomation/dbaccess/required/includes/ReportBuilder01.inc b/testautomation/dbaccess/required/includes/ReportBuilder01.inc
index c6ecfb9520e5..c6ecfb9520e5 100755..100644
--- a/testautomation/dbaccess/required/includes/ReportBuilder01.inc
+++ b/testautomation/dbaccess/required/includes/ReportBuilder01.inc
diff --git a/testautomation/dbaccess/required/includes/Table.inc b/testautomation/dbaccess/required/includes/Table.inc
index 93c9341d5f6a..f7a00c22fcd5 100755
--- a/testautomation/dbaccess/required/includes/Table.inc
+++ b/testautomation/dbaccess/required/includes/Table.inc
@@ -588,7 +588,10 @@ endcase
'-------------------------------------------------------------------------
function getMenuItemCount as Integer
'use this function becasue this doesn't count the pick list
- Dim i, j, Ende, nID as Integer
+ Dim i as Integer
+ Dim j as Integer
+ Dim Ende as Integer
+ Dim nID as Integer
Sleep 2
j=0
for i=1 to MenuGetItemCount
diff --git a/testautomation/dbaccess/required/includes/TableDesign.inc b/testautomation/dbaccess/required/includes/TableDesign.inc
index 42d86ccd0c5f..9204d34de1b9 100755
--- a/testautomation/dbaccess/required/includes/TableDesign.inc
+++ b/testautomation/dbaccess/required/includes/TableDesign.inc
@@ -467,7 +467,10 @@ endcase
'-------------------------------------------------------------------------
function getMenuItemCount as Integer
'use this function becasue this doesn't count the pick list
- Dim i, j, Ende, nID as Integer
+ Dim i as Integer
+ Dim j as Integer
+ Dim Ende as Integer
+ Dim nID as Integer
Sleep 2
j=0
for i=1 to MenuGetItemCount
diff --git a/testautomation/dbaccess/required/includes/Wizards.inc b/testautomation/dbaccess/required/includes/Wizards.inc
index 84e6c45a0e18..84e6c45a0e18 100755..100644
--- a/testautomation/dbaccess/required/includes/Wizards.inc
+++ b/testautomation/dbaccess/required/includes/Wizards.inc
diff --git a/testautomation/dbaccess/required/includes/Xforms01.inc b/testautomation/dbaccess/required/includes/Xforms01.inc
index 458a3df26cfe..458a3df26cfe 100755..100644
--- a/testautomation/dbaccess/required/includes/Xforms01.inc
+++ b/testautomation/dbaccess/required/includes/Xforms01.inc
diff --git a/testautomation/dbaccess/tools/controltools.inc b/testautomation/dbaccess/tools/controltools.inc
index 5d3e3bfbc03a..5d3e3bfbc03a 100755..100644
--- a/testautomation/dbaccess/tools/controltools.inc
+++ b/testautomation/dbaccess/tools/controltools.inc
diff --git a/testautomation/dbaccess/tools/dbinit.inc b/testautomation/dbaccess/tools/dbinit.inc
index e6d3692499d1..e6d3692499d1 100755..100644
--- a/testautomation/dbaccess/tools/dbinit.inc
+++ b/testautomation/dbaccess/tools/dbinit.inc
diff --git a/testautomation/dbaccess/tools/formtools.inc b/testautomation/dbaccess/tools/formtools.inc
index 058fa5cb52bd..90d29b647384 100755
--- a/testautomation/dbaccess/tools/formtools.inc
+++ b/testautomation/dbaccess/tools/formtools.inc
@@ -118,7 +118,7 @@ function fSaveForm( sFormName as string, optional bCloseForm as boolean )
endif
fSaveForm = true
else
- fSaveFrom = false
+ fSaveForm = false
end if
if ( IsMissing( bCloseForm ) ) then
diff --git a/testautomation/dbaccess/tools/querytools.inc b/testautomation/dbaccess/tools/querytools.inc
index f4fc4aeb4847..f4fc4aeb4847 100755..100644
--- a/testautomation/dbaccess/tools/querytools.inc
+++ b/testautomation/dbaccess/tools/querytools.inc
diff --git a/testautomation/dbaccess/tools/reporttools.inc b/testautomation/dbaccess/tools/reporttools.inc
index 32a4926edee0..89dd00b504c6 100755
--- a/testautomation/dbaccess/tools/reporttools.inc
+++ b/testautomation/dbaccess/tools/reporttools.inc
@@ -138,23 +138,23 @@ function fSaveReport( sReportName as string, optional bCloseReport as boolean )
hMenuSelectNr(6) ' the Save
Kontext "ReportSaveDialog"
- if ReportSaveDialog.exists(3) then
- ReportName.setText(sReportName)
+ if FormSaveDialog.exists(3) then
+ FormName.setText(sReportName)
SaveBtn.Click
'click yes in the overwrite messages box
Kontext "MessageBox"
if MessageBox.exists(1) then
MessageBox.Yes
endif
- fSaveReport = true
+ fSaveReport = true
else
- fSaveFrom = false
+ fSaveReport = false
end if
if ( IsMissing( bCloseReport ) ) then
' nothing
else
- call fCloseReport()
+ call fCloseReportDesign()
end if
end function
@@ -167,7 +167,7 @@ function fOpenReport(sReportName as string)
if ( fFindReport(sReportName) = true ) then
printlog "Report found -> open"
Kontext "ContainerView"
- OpenReport ' uno-Slot .uno:DB/Open
+ OpenForm ' uno-Slot .uno:DB/Open
sleep(1)
fOpenReport = true
else
diff --git a/testautomation/dbaccess/tools/tabletools.inc b/testautomation/dbaccess/tools/tabletools.inc
index 44887eb78c0f..fb354dcd4a75 100755
--- a/testautomation/dbaccess/tools/tabletools.inc
+++ b/testautomation/dbaccess/tools/tabletools.inc
@@ -127,7 +127,7 @@ function tCompareMatrixValues(sDSName as string, sRefFileUrl as string, cTable_o
endif
else
if cTable_or_Query = "t" then warnlog "Table: " + sTableName + " not found - Test aborted"
- if cTable_or_Query = "q" then warnlog "Table: " + sQueryName + " not found - Test aborted"
+ if cTable_or_Query = "q" then warnlog "Query: " + sTableName + " not found - Test aborted"
endif
printlog "*** End Testcase"
sleep 1
@@ -203,7 +203,8 @@ function fCreateRefFile(sDSName as string, cTable_or_Query as string, sTableName
'/// reading out values from table, create a reference table and input values in
printlog "start reading out values from table and writing in ref table"
iNumber = Freefile
- dim i,j as integer 'counter
+ dim i as integer 'counter
+ dim j as integer 'counter
Open sRefFileUrl for Output as iNumber
for i = 1 to iRowAmount
for j = 1 to iColAmount
@@ -708,10 +709,10 @@ function fFindTableInBeamer(sDSName1,sTableName1)
next i
if (bfindTable = false) then
- warnlog "Datasource " + sDSName + " not found!"
+ warnlog "Datasource " + sDSName1 + " not found!"
exit function
else
- printlog "Datasource " + sDSName + " found!"
+ printlog "Datasource " + sDSName1 + " found!"
' I set the bfindTable flag again back to false
' for the next test of the table
bfindTable = false
diff --git a/testautomation/extensions/optional/e_issues.bas b/testautomation/extensions/optional/e_issues.bas
new file mode 100755
index 000000000000..549ad69b1a2e
--- /dev/null
+++ b/testautomation/extensions/optional/e_issues.bas
@@ -0,0 +1,55 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' 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.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : Extension publisher string
+'*
+'\******************************************************************************
+
+sub main
+
+ use "extensions\optional\includes\issue110083.inc"
+
+ call hStatusIn( "extensions" , "e_issues.bas" )
+ call tExtensionIssue110083()
+ call hStatusOut()
+
+end sub
+
+'*******************************************************************************
+
+sub LoadIncludeFiles
+
+ use "global\system\includes\gvariabl.inc"
+ use "global\system\includes\master.inc"
+ use "global\tools\includes\optional\t_extension_manager_tools.inc"
+ gApplication = "WRITER"
+ call GetUseFiles()
+
+end sub
+
diff --git a/testautomation/extensions/optional/e_taskpane.bas b/testautomation/extensions/optional/e_taskpane.bas
new file mode 100644
index 000000000000..b6d29d22283d
--- /dev/null
+++ b/testautomation/extensions/optional/e_taskpane.bas
@@ -0,0 +1,49 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' 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.
+'
+'/************************************************************************
+'*
+'* owner :
+'*
+'* short description :
+'*
+'\***********************************************************************
+
+sub main
+
+ use "extensions/optional/includes/e_taskpane.inc"
+ call tTaskPane
+
+end sub
+
+sub LoadIncludeFiles
+
+ use "global\system\includes\gvariabl.inc"
+ use "global\system\includes\master.inc"
+ use "global\tools\includes\optional\t_extension_manager_tools.inc"
+ gApplication = "CALC"
+ call GetUseFiles()
+
+end sub \ No newline at end of file
diff --git a/testautomation/extensions/optional/includes/display_name.inc b/testautomation/extensions/optional/includes/display_name.inc
index c77fb413e016..c77fb413e016 100755..100644
--- a/testautomation/extensions/optional/includes/display_name.inc
+++ b/testautomation/extensions/optional/includes/display_name.inc
diff --git a/testautomation/extensions/optional/includes/e_taskpane.inc b/testautomation/extensions/optional/includes/e_taskpane.inc
new file mode 100644
index 000000000000..6d1794e68456
--- /dev/null
+++ b/testautomation/extensions/optional/includes/e_taskpane.inc
@@ -0,0 +1,74 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' 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.
+'
+'/************************************************************************
+'*
+'* owner :
+'*
+'* short description :
+'*
+'\***********************************************************************
+testcase tTaskPane
+
+ Dim sExtensionPath as String
+ Dim iStatus as integer
+
+ sExtensionPath = gTesttoolPath + "extensions/optional/input/extensions/TaskPaneComponent/TaskPaneComponent.oxt"
+
+ iStatus = hExtensionAddGUI( sExtensionPath, "InstallForUser, NoLicense" )
+ if(iStatus <= 0 ) then
+ warnlog "extension could not installed. ErrorCode is " + iStatus
+ goto endsub
+ endif
+
+ call hNewDocument
+
+ kontext "DocumentCalc"
+
+ DocumentCalc.useMenu
+
+ hMenuSelectNr(3)
+ if(hMenuItemIsChecked(11)) then
+ ' do nothing. The pane is displayed
+ else
+ hMenuSelectNr(11)
+ endif
+
+ kontext "MSC_Special_Dialog"
+ if ( MSC_Special_Dialog.exists(1) ) then
+ printlog "task pane exists"
+ else
+ warnlog "task pane does not exists"
+ endif
+
+ call hCloseDocument
+
+ iStatus = hExtensionRemoveGUI("TaskPaneComponent.oxt")
+ if(iStatus <> 0 ) then
+ warnlog "extension could not deinstalled. ErrorCode is " + iStatus
+ goto endsub
+ endif
+
+endcase
diff --git a/testautomation/extensions/optional/includes/extensions.inc b/testautomation/extensions/optional/includes/extensions.inc
index 8d1c63ea7bab..8d1c63ea7bab 100755..100644
--- a/testautomation/extensions/optional/includes/extensions.inc
+++ b/testautomation/extensions/optional/includes/extensions.inc
diff --git a/testautomation/extensions/optional/includes/fileopen.inc b/testautomation/extensions/optional/includes/fileopen.inc
index 481cce7d4e14..481cce7d4e14 100755..100644
--- a/testautomation/extensions/optional/includes/fileopen.inc
+++ b/testautomation/extensions/optional/includes/fileopen.inc
diff --git a/testautomation/extensions/optional/includes/help.inc b/testautomation/extensions/optional/includes/help.inc
index ee313b8d0cc7..ee313b8d0cc7 100755..100644
--- a/testautomation/extensions/optional/includes/help.inc
+++ b/testautomation/extensions/optional/includes/help.inc
diff --git a/testautomation/extensions/optional/includes/identifiers.inc b/testautomation/extensions/optional/includes/identifiers.inc
index 377db6e2d89e..377db6e2d89e 100755..100644
--- a/testautomation/extensions/optional/includes/identifiers.inc
+++ b/testautomation/extensions/optional/includes/identifiers.inc
diff --git a/testautomation/extensions/optional/includes/issue110083.inc b/testautomation/extensions/optional/includes/issue110083.inc
new file mode 100755
index 000000000000..8940f7f8274c
--- /dev/null
+++ b/testautomation/extensions/optional/includes/issue110083.inc
@@ -0,0 +1,79 @@
+'encoding UTF-8 Do not remove or change this line!
+'*******************************************************************************
+' 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.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : CWS sb112 fixes a problem with configuration schemas
+'*
+'\******************************************************************************
+
+testcase tExtensionIssue110083()
+
+ printlog( "Configuration/-schema .xcu/.xcs-files which might trigger exceptions from unopkg/Extension Manager" )
+
+ const NUMBER_OF_TEST_EXTENSIONS = 2
+
+ dim cExtensionNames( NUMBER_OF_TEST_EXTENSIONS ) as string
+ cExtensionNames( 1 ) = "LoggingOptions.xcs"
+ cExtensionNames( 2 ) = "Logging.xcu"
+
+ dim cErrorIdentifier( NUMBER_OF_TEST_EXTENSIONS ) as string
+ cErrorIdentifier( 1 ) = "no component element"
+ cErrorIdentifier( 2 ) = "no component element"
+
+ dim cExtensionPath as string
+ cExtensionPath = gTesttoolPath & "extensions/optional/input/issues/"
+
+ dim cExtension as string
+
+ dim iCurrentExtension as integer
+
+
+ for iCurrentExtension = 1 to NUMBER_OF_TEST_EXTENSIONS
+
+ cExtension = convertpath( cExtensionPath & cExtensionNames( iCurrentExtension ) )
+ hExtensionAddGUI( cExtension, "" )
+
+ kontext "Active"
+ if ( Active.exists() ) then
+ if ( instr( Active.getText, cErrorIdentifier( iCurrentExtension ) ) > 0 ) then
+ warnlog( "#i110083# - Error installing .xcs/.xcu-file: " & cExtensionNames( iCurrentExtension ) )
+ Active.ok()
+
+ kontext "PackageManager"
+ PackageManager.close()
+ else
+ warnlog( "Unexpected messagebox displayed. It cannot be handled" )
+ endif
+ else
+ hExtensionRemoveGUI( cExtensionNames( iCurrentExtension ) )
+ endif
+
+ next iCurrentExtension
+
+endcase
+
diff --git a/testautomation/extensions/optional/includes/location.inc b/testautomation/extensions/optional/includes/location.inc
index 4730f8a7bfec..4730f8a7bfec 100755..100644
--- a/testautomation/extensions/optional/includes/location.inc
+++ b/testautomation/extensions/optional/includes/location.inc
diff --git a/testautomation/extensions/optional/includes/meta-inf.inc b/testautomation/extensions/optional/includes/meta-inf.inc
index 0187e6302c2b..0187e6302c2b 100755..100644
--- a/testautomation/extensions/optional/includes/meta-inf.inc
+++ b/testautomation/extensions/optional/includes/meta-inf.inc
diff --git a/testautomation/extensions/optional/includes/online_update.inc b/testautomation/extensions/optional/includes/online_update.inc
index c107c1df0f3d..c107c1df0f3d 100755..100644
--- a/testautomation/extensions/optional/includes/online_update.inc
+++ b/testautomation/extensions/optional/includes/online_update.inc
diff --git a/testautomation/extensions/optional/includes/options.inc b/testautomation/extensions/optional/includes/options.inc
index 43588b748ea0..43588b748ea0 100755..100644
--- a/testautomation/extensions/optional/includes/options.inc
+++ b/testautomation/extensions/optional/includes/options.inc
diff --git a/testautomation/extensions/optional/includes/platforms.inc b/testautomation/extensions/optional/includes/platforms.inc
index bb8bea80b12f..4f96701afd20 100755
--- a/testautomation/extensions/optional/includes/platforms.inc
+++ b/testautomation/extensions/optional/includes/platforms.inc
@@ -78,7 +78,7 @@ testcase tExtensionPlatforms
printlog( "Current extension: " & cCurrentExtensionFile )
iStatus = hExtensionAddGUI( cCurrentExtensionPath, "InstallForUser, NoLicense, NoUpdate, Verbose" )
- if ( iStatus >= 0 ) then
+ if ( iStatus = -7 or iStatus >= 0 ) then
kontext "Active"
if ( Active.exists( 2 ) ) then
diff --git a/testautomation/extensions/optional/includes/publisher.inc b/testautomation/extensions/optional/includes/publisher.inc
index fcf4400ae748..fcf4400ae748 100755..100644
--- a/testautomation/extensions/optional/includes/publisher.inc
+++ b/testautomation/extensions/optional/includes/publisher.inc
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/build.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/build.xml
new file mode 100755
index 000000000000..4428a95f551b
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/build.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<project name="TaskPaneComponent" default="default" basedir=".">
+ <description>Builds, tests, and runs the project extension project.</description>
+ <import file="nbproject/build-uno-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. They are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-single: called before javac compilation of single file
+ -post-compile-single: called after javac compilation of single file
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-compile-test-single: called before javac compilation of single JUnit test
+ -post-compile-test-single: called after javac compilation of single JUunit test
+ -pre-jar: called before JAR building
+ -post-jar: called after JAR building
+ -pre-uno-package: called before OXT creation
+ -post-uno-package: called after OXT creation
+ -post-clean: called after cleaning build products
+
+ (Targets beginning with '-' are not intended to be called on their own.)
+
+ Example of inserting an obfuscator after compilation could look like this:
+
+ <target name="-post-compile">
+ <obfuscate>
+ <fileset dir="${build.classes.dir}"/>
+ </obfuscate>
+ </target>
+
+ For list of available properties check the imported
+ nbproject/build-impl.xml file.
+
+
+ Another way to customize the build is by overriding existing main targets.
+ The targets of interest are:
+
+ -init-macrodef-javac: defines macro for javac compilation
+ -init-macrodef-junit: defines macro for junit execution
+ -init-macrodef-debug: defines macro for class debugging
+ -init-macrodef-java: defines macro for class execution
+ -do-jar-with-manifest: JAR building (if you are using a manifest)
+ -do-jar-without-manifest: JAR building (if you are not using a manifest)
+ run: execution of project
+ -javadoc-build: Javadoc generation
+ test-report: JUnit report generation
+
+ An example of overriding the target for project execution could look like this:
+
+ <target name="run" depends="TypeBrowser2-impl.jar">
+ <exec dir="bin" executable="launcher.exe">
+ <arg file="${dist.jar}"/>
+ </exec>
+ </target>
+
+ Notice that the overridden target depends on the jar target and not only on
+ the compile target as the regular run target does. Again, for a list of available
+ properties which you can use, check the target you are overriding in the
+ nbproject/build-impl.xml file.
+
+ -->
+
+</project>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-impl.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-impl.xml
new file mode 100755
index 000000000000..f01ad79df06e
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-impl.xml
@@ -0,0 +1,794 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+ - initialization
+ - compilation
+ - jar
+ - execution
+ - debugging
+ - javadoc
+ - junit compilation
+ - junit execution
+ - junit debugging
+ - applet
+ - cleanup
+
+ -->
+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="TaskPaneComponent-impl">
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+ <!--
+ ======================
+ INITIALIZATION SECTION
+ ======================
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/config.properties"/>
+ <property file="nbproject/private/configs/${config}.properties"/>
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.4"/>
+ <property name="default.javac.target" value="1.4"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <available file="${manifest.file}" property="manifest.available"/>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class">
+ <and>
+ <isset property="manifest.available"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <condition property="do.mkdist">
+ <and>
+ <isset property="libs.CopyLibs.classpath"/>
+ <not>
+ <istrue value="${mkdist.disabled}"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class+mkdist.available">
+ <and>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available+mkdist.available">
+ <and>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available-mkdist.available">
+ <or>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="manifest.available+main.class-mkdist.available">
+ <or>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="have.tests">
+ <or/>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <and>
+ <isset property="javadoc.preview"/>
+ <isfalse value="${javadoc.preview}"/>
+ </and>
+ </condition>
+ <property name="run.jvmargs" value=""/>
+ <property name="javac.compilerargs" value=""/>
+ <property name="work.dir" value="${basedir}"/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <property name="javac.debug" value="true"/>
+ <property name="javadoc.preview" value="true"/>
+ <property name="application.args" value=""/>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <property name="runtime.encoding" value="${source.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="do.depend" value="false"/>
+ <condition property="do.depend.true">
+ <istrue value="${do.depend}"/>
+ </condition>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <length length="0" string="${endorsed.classpath}" when="greater"/>
+ </condition>
+ <property name="javac.fork" value="false"/>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+ <fail unless="src.dir">Must set src.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.jar">Must set dist.jar</fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-javac">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="," property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <delete>
+ <files includes="${javac.includes.binary}"/>
+ </delete>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-junit">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <sequential>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}"/>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <jar compress="${jar.compress}" jarfile="${dist.jar}">
+ <j2seproject1:fileset dir="${build.classes.dir}"/>
+ </jar>
+ </presetdef>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
+ <!--
+ ===================
+ COMPILATION SECTION
+ ===================
+ -->
+ <target name="-deps-jar-init" unless="built-jar.properties">
+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+ <delete file="${built-jar.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+ <echo level="warn" message="Cycle detected: TaskPaneComponent was already built"/>
+ </target>
+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-jar.properties}" verbose="false"/>
+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
+ <antcall target="-warn-already-built-jar"/>
+ <propertyfile file="${built-jar.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+ <target depends="init" name="-check-automatic-build">
+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean"/>
+ </target>
+ <target depends="init,deps-jar" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-depend">
+ <pathconvert property="build.generated.subdirs">
+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </pathconvert>
+ <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile/>
+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <!--
+ ====================
+ JAR BUILDING SECTION
+ ====================
+ -->
+ <target depends="init" name="-pre-pre-jar">
+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ </target>
+ <target name="-pre-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
+ <j2seproject1:jar/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}">
+ <j2seproject1:manifest>
+ <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
+ </j2seproject1:manifest>
+ </j2seproject1:jar>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <pathconvert property="run.classpath.with.dist.jar">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Main-Class" value="${main.class}"/>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <echo>java -jar "${dist.jar.resolved}"</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+mkdist.available" name="-do-jar-with-libraries-without-mainclass" unless="main.class.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.mkdist" name="-do-jar-with-libraries-without-manifest" unless="manifest.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target name="-post-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-jar-with-libraries-without-mainclass,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target depends="init,compile" description="Run a main class." name="run">
+ <j2seproject1:java>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <j2seproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile" name="-debug-start-debuggee">
+ <j2seproject3:debug>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <j2seproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ ===============
+ JAVADOC SECTION
+ ===============
+ -->
+ <target depends="init" name="-javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ </fileset>
+ </javadoc>
+ </target>
+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+ =========================
+ JUNIT COMPILATION SECTION
+ =========================
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir=""/>
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir=""/>
+ <copy todir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="" srcdir=""/>
+ <copy todir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+ =======================
+ JUNIT EXECUTION SECTION
+ =======================
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2seproject3:junit testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <j2seproject3:junit excludes="" includes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+ <!--
+ =======================
+ JUNIT DEBUGGING SECTION
+ =======================
+ -->
+ <target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
+ <delete file="${test.report.file}"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
+ <customize>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <arg value="${test.class}"/>
+ <arg value="showoutput=true"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" name="run-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject1:java classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject3:debug classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+ <!--
+ ===============
+ CLEANUP SECTION
+ ===============
+ -->
+ <target name="-deps-clean-init" unless="built-clean.properties">
+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+ <delete file="${built-clean.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
+ <echo level="warn" message="Cycle detected: TaskPaneComponent was already built"/>
+ </target>
+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-clean.properties}" verbose="false"/>
+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
+ <antcall target="-warn-already-built-clean"/>
+ <propertyfile file="${built-clean.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init" name="-do-clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target name="-check-call-dep">
+ <property file="${call.built.properties}" prefix="already.built."/>
+ <condition property="should.call.dep">
+ <not>
+ <isset property="already.built.${call.subproject}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+ <propertyset>
+ <propertyref prefix="transfer."/>
+ <mapper from="transfer.*" to="*" type="glob"/>
+ </propertyset>
+ </ant>
+ </target>
+</project>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-uno-impl.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-uno-impl.xml
new file mode 100755
index 000000000000..25b3f25f86c7
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/build-uno-impl.xml
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** AUTOMATICALLY GENERATED - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+-->
+<project name="TaskPaneComponentuno-impl" default="netbeans" basedir="..">
+ <description>Builds, tests, and runs an UNO project.</description>
+
+ <import file="build-impl.xml"/>
+
+ <!-- ================================================================================== -->
+
+ <target name="-uno-project-init" depends="-do-init">
+ <property file="nbproject/project-uno.properties"/>
+ <property name="build.uno.version" value="2.0.6"/>
+
+ <!-- set variablers from SDK and Office -->
+ <echo message="setting up UNO environment ..."/>
+ <property name="office.unopkg" value="${office.program.dir}${file.separator}unopkg"/>
+ <property name="office.soffice" value="${office.program.dir}${file.separator}soffice"/>
+
+ <property name="sdk.idl.dir" location="${oo.sdk.dir}${file.separator}idl"/>
+ <property name="sdk.idlc" value="${sdk.bin.dir}${file.separator}idlc"/>
+ <property name="sdk.regmerge" value="${ure.bin.dir}${file.separator}regmerge"/>
+ <property name="sdk.javamaker" value="${sdk.bin.dir}${file.separator}javamaker"/>
+
+ <dirname property="project.dir" file="build.xml"/>
+ <property name="uno.package.name" value="${project.dir}${file.separator}${dist.dir}${file.separator}${project.name}.oxt"/>
+ <property name="src.dir.absolute" value="${project.dir}${file.separator}${src.dir}"/>
+
+ <property name="idl.out" value="${project.dir}${file.separator}${build.dir}${file.separator}idl"/>
+ <property name="idl.classes.dir" value="${project.dir}${file.separator}${build.classes.dir}"/>
+ <property name="idl.out.urd" value="${idl.out}/urd"/>
+ <property name="idl.out.rdb" value="${idl.out}/rdb"/>
+ <property name="idl.rdb.name" value="types.rdb"/>
+ <property name="idl.rdb.fullpath" value="${idl.out.rdb}/${idl.rdb.name}"/>
+
+ <property name="images.base.dir" value="${build.dir}/img"/>
+ <property name="build.registry.dir" value="${build.dir}/cpreg"/>
+
+ <mkdir dir="${idl.out}"/>
+ <mkdir dir="${idl.out.urd}"/>
+ <mkdir dir="${idl.out.rdb}"/>
+ <mkdir dir="${images.base.dir}"/>
+ <mkdir dir="${build.registry.dir}"/>
+
+ <condition property="oo.version.three">
+ <equals arg1="${oo.version.number}" arg2="three"/>
+ </condition>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <!-- handle images -->
+ <target name="-uno-images-condition" description="check images" depends="-uno-project-init">
+ <available file="${images.dir}" type="dir" property="images.required"/>
+ </target>
+
+ <target name="images" description="copy images" depends="-uno-images-condition" if="images.required">
+ <mkdir dir="${images.base.dir}/${images.dir}"/>
+ <copy todir="${images.base.dir}/${images.dir}">
+ <fileset dir="${images.dir}"/>
+ </copy>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <!-- handle xcu/xcs files with package names -->
+
+ <target name="-uno-registryfiles-condition" description="check xcu and xcs files" depends="-uno-project-init">
+ <available file="${registry.dir}" type="dir" property="xcuxcs.required"/>
+ </target>
+
+ <target name="registry" description="copy registry files" depends="-uno-registryfiles-condition" if="xcuxcs.required">
+ <mkdir dir="${build.registry.dir}/${registry.dir}"/>
+ <copy todir="${build.registry.dir}/${registry.dir}">
+ <fileset dir="${registry.dir}" includes="**/*.xcu,**/*.xcs"/>
+ </copy>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="-uno-idl-idlc-condition" description="check idlc dependencies" depends="-uno-project-init">
+ <uptodate property="idlc.notRequired" targetfile ="${build.dir}/idlc.compile">
+ <srcfiles dir= "${src.dir}" includes="**/*.idl"/>
+ </uptodate>
+ </target>
+
+ <!-- compile UNO idl files: execution -->
+ <target name="-uno-idl-idlc" description="Compile the IDL Conditionally" depends="-uno-idl-idlc-condition" unless="idlc.notRequired">
+ <apply executable="${sdk.idlc}" dir="${office.program.dir}" failonerror="true">
+ <env key="PATH" path="${office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <arg value="-C"/>
+ <arg value="-O"/>
+ <arg value="${idl.out.urd}"/>
+ <arg value="-I"/>
+ <arg value="${src.dir.absolute}"/>
+ <arg value="-I"/>
+ <arg value="${sdk.idl.dir}"/>
+ <fileset dir="${src.dir}" includes="**/*.idl" casesensitive="yes" id="idl.list.id"/>
+ </apply>
+ <!-- list for copying idl files in own jar -->
+ <property name="idl.file" refid="idl.list.id"/>
+ <propertyfile file="${idl.out}/idl_list.properties">
+ <entry key="idl.file.list" value="${idl.file}"/>
+ </propertyfile>
+ <replace file="${idl.out}/idl_list.properties" token=".idl" value=".class"/>
+ <replace file="${idl.out}/idl_list.properties" token=";" value=","/>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <!-- merge urd files: execution -->
+ <target name="-uno-idl-regmerge" description="Merge urd Files Conditionally" depends="-uno-idl-idlc,-uno-idl-idlc-condition" unless="idlc.notRequired">
+ <!-- to only extract the new files, delete the old rdb -->
+ <delete file="${idl.rdb.fullpath}"/>
+ <apply executable="${sdk.regmerge}" dir="${office.program.dir}" failonerror="true">
+ <env key="PATH" path="${office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <arg file="${idl.rdb.fullpath}"/>
+ <arg value="/UCR"/>
+ <fileset dir="${idl.out.urd}" includes="**/*.urd" casesensitive="yes"/>
+ </apply>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <!-- should javamaker be executed -->
+ <target name="-uno-idl-javamaker-condition" description="check if rdb was created" depends="-uno-idl-regmerge,-uno-idl-idlc-condition">
+ <available file="${idl.rdb.name}" filepath="${idl.out.rdb}" property="javamaker.Required"/>
+ </target>
+
+ <!-- generate Java class files from type library: execution -->
+ <target name="-uno-idl-javamaker" depends="-uno-idl-regmerge,-uno-idl-idlc-condition,-uno-idl-javamaker-condition" if="javamaker.Required" unless="idlc.notRequired">
+ <echo message="generating java class files from rdb..."/>
+ <exec executable="${sdk.javamaker}" dir="${office.program.dir}" failonerror="true">
+ <env key="PATH" path="${office.tool.path}"/>
+ <env key="LD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <env key="DYLD_LIBRARY_PATH" path="${office.tool.path}"/>
+ <arg value="-BUCR"/>
+ <arg value="-O"/>
+ <arg value="${idl.classes.dir}"/>
+ <arg file="${idl.rdb.fullpath}"/>
+ <arg value="${oo.unotypes.rdb}"/> <!-- from ConfigurationSettings -->
+ <arg value="${oo.offapi.rdb}"/> <!-- from ConfigurationSettings -->
+ </exec>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="-uno-idl-result" depends="-uno-idl-javamaker">
+ <touch file="${build.dir}/idlc.compile"/>
+ <echo message="build UNO idl files finished"/>
+ </target>
+
+ <!-- the main target, called in recursive builds -->
+ <target name="uno-idl-compile" description="Compiles UNO idl files" depends="-uno-idl-result"/>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="jar" depends="-uno-project-init,uno-idl-compile,-jar-idl-types,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-openoffice-manifest,-post-jar">
+ <jar basedir="${build.classes.dir}" compress="true" filesonly="true" manifest="${build.dir}/MANIFEST.MF" jarfile="${dist.jar}" excludes="**/*.xml,**/*.txt,${idl.file.list},${build.classes.excludes}"/>
+ </target>
+
+ <target name="-jar-idl-types" depends="-do-uno-types" unless="no.idl.files">
+ <mkdir dir="${dist.dir}"/>
+ <jar basedir="${build.classes.dir}" compress="true" jarfile="${dist.dir}/${idl_types.jar}" includes="${idl.file.list}">
+ <manifest>
+ <attribute name="UNO-Type-Path" value="&lt;&gt;"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="-do-openoffice-manifest" depends="-copy-user-manifest,-external-jars,-do-registration,-do-class-path"/>
+
+ <!-- macro for checking manifest entries from a user manifest -->
+ <macrodef name="check-manifest-entry">
+ <attribute name="entry.name"/>
+ <attribute name="condition.property.name"/>
+ <sequential>
+ <condition property="@{condition.property.name}">
+ <and>
+ <!-- if file does not exist, "isfileselected" is not executed -->
+ <!-- necessary construct because available is not allowed here
+ but should be according to documentation -->
+ <istrue value="${build.manifest.exists}"/>
+ <!-- produces an error if file is not there -->
+ <isfileselected file="${build.dir}/MANIFEST.MF">
+ <contains text="@{entry.name}"/>
+ </isfileselected>
+ </and>
+ </condition>
+ </sequential>
+ </macrodef>
+
+ <!-- enter the class path with external jars, if external jars exit and the user did not enter his own -->
+ <target name="-do-class-path" depends="-external-jars,-check-class-path" unless="class.path.exists">
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <attribute name="Class-Path" value="${external.jars}"/>
+ </manifest>
+ </target>
+ <target name="-check-class-path">
+ <check-manifest-entry condition.property.name="class.path.exists" entry.name="Class-Path"/>
+ </target>
+
+ <!-- enter idl type definitions if it exists and if the user did not overwrite it -->
+ <target name="-do-uno-types" depends="-do-empty-unopath,-do-idl-unopath"/>
+ <target name="-do-idl-unopath" depends="-check-uno-types" if="own.idl.files" unless="uno.path.exists">
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <attribute name="UNO-Type-Path" value="${idl_types.jar}"/>
+ </manifest>
+ </target>
+ <target name="-do-empty-unopath" depends="-check-uno-types" if="no.idl.files" unless="uno.path.exists">
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <attribute name="UNO-Type-Path" value=""/>
+ </manifest>
+ </target>
+ <target name="-check-uno-types">
+ <property file="${idl.out}/idl_list.properties"/>
+ <check-manifest-entry condition.property.name="uno.path.exists" entry.name="UNO-Type-Path"/>
+ <condition property="no.idl.files">
+ <equals arg1="${idl.file.list}" arg2="" trim="true"/>
+ </condition>
+ <condition property="own.idl.files">
+ <not>
+ <istrue value="${no.idl.files}"/>
+ </not>
+ </condition>
+ </target>
+
+ <!-- enter the registration classes unless the user did not enter his own. Do nothing when the project is old -->
+ <target name="-do-registration" depends="-do-central-registration,-check-registration-classes-name"
+ if="new.project.registration" unless="do.no.registration">
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <section name="${slash.registration.class}">
+ <attribute name="RegistrationClasses" value="${registration.classname}"/>
+ </section>
+ </manifest>
+ </target>
+ <target name="-check-registration-classes-name">
+ <check-manifest-entry condition.property.name="registration.classes.exists" entry.name="RegistrationClasses"/>
+ <condition property="do.no.registration">
+ <or>
+ <istrue value="${registration.classes.exists}"/>
+ <istrue value="${registration.class.exists}"/>
+ </or>
+ </condition>
+ </target>
+
+ <!-- enter the registration class name unless the user did not enter his own. Do nothing when the project is old -->
+ <target name="-do-central-registration" depends="-check-registration-class-name,-do-old-project-registration" if="new.project.registration" unless="registration.class.exists">
+ <property name="regclass.properties" value="${build.dir}/regclass.properties"/>
+ <propertyfile file="${regclass.properties}">
+ <entry key="dot.registration" value="${slash.registration.class}"/>
+ </propertyfile>
+ <replace file="${regclass.properties}" token=".class" value=""/>
+ <replace file="${regclass.properties}" token="/" value="."/>
+ <property file="${regclass.properties}"/>
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <attribute name="RegistrationClassName" value="${dot.registration}"/>
+ </manifest>
+ </target>
+ <target name="-check-registration-class-name">
+ <check-manifest-entry condition.property.name="registration.class.exists" entry.name="RegistrationClassName"/>
+ </target>
+
+ <!-- Do the registration for older projects without a central registration class -->
+ <target name="-do-old-project-registration" depends="-check-for-old-project" if="old.project.registration" unless="registration.class.exists">
+ <manifest file="${build.dir}/MANIFEST.MF" mode="update">
+ <attribute name="RegistrationClassName" value="${registration.classname}"/>
+ </manifest>
+ </target>
+ <target name="-check-for-old-project">
+ <!-- central registration class in project -->
+ <fileset id="registration.class.name" dir="${build.dir}/classes">
+ <patternset>
+ <include name="**/CentralRegistrationClass.class"/>
+ </patternset>
+ </fileset>
+ <property name="systemslash.registration.class" refid="registration.class.name"/>
+ <!-- make forward slash from backslash on Windows -->
+ <property name="regclass.properties" value="${build.dir}/regclass.properties"/>
+ <propertyfile file="${regclass.properties}">
+ <entry key="slash.registration.class" value="${systemslash.registration.class}"/>
+ </propertyfile>
+ <replace file="${regclass.properties}" token="\\" value="/"/>
+ <property file="${regclass.properties}"/>
+ <!-- now slash is ok -->
+ <condition property="old.project.registration">
+ <equals trim="true" arg1="${slash.registration.class}" arg2=""/>
+ </condition>
+ <condition property="new.project.registration">
+ <isfalse value="${old.project.registration}"/>
+ </condition>
+ </target>
+
+ <!-- copy the user manifest if it exists -->
+ <target name="-copy-user-manifest" depends="-check-user-manifest" if="user.manifest.exists">
+ <copy file="manifest.mf" tofile="${build.dir}/MANIFEST.MF" overwrite="true"/>
+ <available file="${build.dir}/MANIFEST.MF" property="build.manifest.exists"/>
+ </target>
+ <target name="-check-user-manifest">
+ <available file="manifest.mf" property="user.manifest.exists"/>
+ </target>
+
+ <!-- handle the class path for external jar files unless there is a user overwrite -->
+ <target name="-external-jars" depends="-rm-external-jars,-add-external-jars"/>
+
+ <target name="-add-external-jars" depends="-external-jars-condition" if="do.externalJars">
+ <!-- get property external.jars for classpath from props file -->
+ <property file="${dist.dir}/${external.jar.dir}/jars.properties"/>
+ </target>
+
+ <target name="-rm-external-jars" depends="-external-jars-condition" unless="do.externalJars">
+ <!-- empty property, if no jars -->
+ <property name="external.jars" value=""/>
+ </target>
+
+ <target name="-external-jars-condition">
+ <available file="${dist.dir}/${external.jar.dir}" type="dir" property="do.externalJars"/>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="-delete-uno-package">
+ <delete failonerror="false" file="${uno.package.name}"/>
+ </target>
+
+ <target name="-pre-uno-package">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="-license-exists">
+ <available file="${project.dir}/${licenses.dir}" type="dir" property="do.license"/>
+ </target>
+
+ <!-- test for licenses dir is necessary because zipfileset fails if dir not there -->
+ <target name="-uno-package-with-license" depends="-license-exists" if="do.license">
+ <zip update="true" destfile="${uno.package.name}">
+ <zipfileset dir="${project.dir}/${licenses.dir}" includes="**" casesensitive="yes" prefix="${licenses.dir}"/>
+ </zip>
+ </target>
+
+ <target name="-description-exists">
+ <available file="${project.dir}/${description.dir}" type="dir" property="do.description"/>
+ </target>
+
+ <!-- test for description dir is necessary because zipfileset fails if dir not there -->
+ <target name="-uno-package-with-description" depends="-description-exists" if="do.description">
+ <zip update="true" destfile="${uno.package.name}">
+ <zipfileset dir="${project.dir}/${description.dir}" includes="**" casesensitive="yes" prefix="${description.dir}"/>
+ </zip>
+ </target>
+
+ <target name="-help-exists">
+ <available file="${project.dir}/${help.dir}" type="dir" property="do.help"/>
+ </target>
+
+ <!-- test for help dir is necessary because zipfileset fails if dir not there -->
+ <target name="-uno-package-with-help" depends="-help-exists" if="do.help">
+ <zip update="true" destfile="${uno.package.name}">
+ <zipfileset dir="${help.dir}" includes="${help.content.extensions}" prefix="${help.dir}"/>
+ </zip>
+ </target>
+
+ <target name="-dialogs-exists">
+ <available file="${project.dir}/${dialogs.dir}" type="dir" property="do.dialogs"/>
+ </target>
+
+ <!-- test for dialogs dir is necessary because zipfileset fails if dir not there -->
+ <target name="-uno-package-with-dialogs" depends="-dialogs-exists" if="do.dialogs">
+ <zip update="true" destfile="${uno.package.name}">
+ <zipfileset dir="${dialogs.dir}" includes="${dialog.content.extensions}" prefix="dialogs"/>
+ </zip>
+ </target>
+
+ <target name="-do-uno-package" description="Creates UNO extension pacakge" depends="-uno-package-with-license,-uno-package-with-help,-uno-package-with-dialogs,-uno-package-with-description">
+ <echo message="creating UNO extension package ..."/>
+ <zip update="true" destfile="${uno.package.name}">
+ <fileset dir="${src.dir}" includes="${manifest.package.extensions}" casesensitive="yes"/>
+ <fileset dir="${build.registry.dir}" casesensitive="yes"/>
+ <fileset dir="${src.dir}" includes="description.xml" casesensitive="yes"/>
+ <fileset dir="${dist.dir}" includes="**/*.jar" casesensitive="yes"/>
+ <fileset dir="${images.base.dir}" includes="**" casesensitive="yes"/>
+ <fileset dir="${idl.out.rdb}" includes="**/*.rdb" casesensitive="yes"/>
+ <zipfileset dir="${src.dir}" includes="uno-extension-manifest.xml" fullpath="META-INF/manifest.xml"/>
+ </zip>
+ </target>
+
+ <target name="-post-uno-package">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+
+ <target name="uno-package" description="Creates UNO extension pacakge" depends="jar,images,registry,-delete-uno-package,-pre-uno-package,-do-uno-package,-post-uno-package"/>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+<!-- <target name="uno-deploy" description="Deploys UNO extension package" depends="uno-package">
+ <echo message="deploying UNO extension package ..."/>
+ <echo message="${office.unopkg} gui -f ${uno.package.name}"/>
+ <echo message="${office.soffice} ${uno.package.name}"/>
+ <exec executable="${office.soffice}" dir="${office.program.dir}" failonerror="true">
+ <arg file="${uno.package.name}"/>
+ </exec>
+ </target> -->
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="uno-run" description="Run OpenOffice.org" depends="uno-package,-run-oo"/>
+
+ <!-- subtargets for different office versions -->
+ <target name="-run-oo">
+ <echo message="${office.unopkg} gui -f ${uno.package.name}"/>
+ <exec dir="${office.program.dir}" executable="${office.unopkg}" failonerror="true">
+ <arg value="gui"/>
+ <arg value="-f"/>
+ <arg file="${uno.package.name}"/>
+ </exec>
+ <echo message="${office.soffice}"/>
+ <exec executable="${office.soffice}" dir="${office.program.dir}" failonerror="true">
+ <arg value="${office.startup.options}"/>
+ </exec>
+ </target>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <target name="uno-debug" description="Debugss UNO extension package in Target Office" depends="uno-package,-oo-debug"/>
+
+ <target name="-oo-debug">
+ <!-- security fail for executing this without netbeans -->
+ <fail unless="netbeans.home">This target can only run inside the NetBeans IDE.</fail>
+ <!-- start debugger and get connection address jpda.address -->
+ <nbjpdastart name="Debug Office" addressproperty="jpda.address" transport="dt_socket">
+ <classpath path="${build.classes.dir}"/>
+ <sourcepath path="${src.dir}"/>
+ </nbjpdastart>
+ <!-- register component in temporary user installation -->
+ <echo message="debugging UNO extension package ..."/>
+ <echo message="${office.unopkg} gui -f ${uno.package.name}"/>
+ <exec dir="${office.program.dir}" executable="${office.unopkg}">
+ <arg value="gui"/>
+ <arg value="-f"/>
+ <arg file="${uno.package.name}"/>
+ <env key="UserInstallation" value="${office.debug.user.directory}"/>
+ </exec>
+ <!-- start Office with debug Java and user installation -->
+ <echo message="starting the Office with ..."/>
+ <echo message="user installation: ${office.debug.user.directory}"/>
+ <echo message="debug options: &quot;-Xdebug&quot; &quot;-Xrunjdwp:transport=dt_socket,address=${jpda.address}&quot;"/>
+ <echo message="${office.soffice}"/>
+ <exec dir="${office.program.dir}" executable="${office.soffice}" failonerror="true">
+ <arg value="-nofirststartwizard"/>
+ <arg value="${office.startup.options}"/>
+ <env key="UserInstallation" value="${office.debug.user.directory}"/>
+ <env key="JAVA_TOOL_OPTIONS" value="&quot;-Xdebug&quot; &quot;-Xrunjdwp:transport=dt_socket,address=${jpda.address}&quot;"/>
+ </exec>
+ </target>
+
+</project>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/genfiles.properties b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/genfiles.properties
new file mode 100755
index 000000000000..e4e5fc11997d
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=2b754fcd
+build.xml.script.CRC32=0a20deac
+build.xml.stylesheet.CRC32=d5b6853a
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=54a58ff4
+nbproject/build-impl.xml.script.CRC32=25927849
+nbproject/build-impl.xml.stylesheet.CRC32=576378a2@1.32.1.45
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/config.properties b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/config.properties
new file mode 100755
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/config.properties
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/private.properties b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/private.properties
new file mode 100755
index 000000000000..c090eb0e8f9c
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/private/private.properties
@@ -0,0 +1,6 @@
+compile.on.save=false
+do.depend=false
+do.jar=true
+javac.debug=true
+javadoc.preview=true
+user.properties.file=/localuser/qamsc/.netbeans/6.8/build.properties
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project-uno.properties b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project-uno.properties
new file mode 100755
index 000000000000..35a0535e7d02
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project-uno.properties
@@ -0,0 +1,18 @@
+uno.project.type=office.component.project
+project.name=TaskPaneComponent
+registration.classname=com.example.TaskPaneComponent
+external.jar.dir=lib
+idl_types.jar=TaskPaneComponent_IDL_types.jar
+central.registration.class=com.example.CentralRegistrationClass
+# extensions for files that go into the .oxt package; some are also referenced in the manifest
+manifest.package.extensions=**/*.xcu,**/*.xcs,**/*.xdl,**/*.xlb,**/*.xba,**/*.properties,**/*.default
+imgae.extensions=**/*.png,**/*.jpg,**/*.jpeg,**/*.gif
+help.content.extensions=**/*.xhp,**/*.tree,${image.extensions}
+dialog.content.extensions=**/*.xdl,**/*.properties,**/*.default,${image.extensions}
+office.startup.options=
+images.dir=images
+registry.dir=registry
+help.dir=help
+dialogs.dir=dialogs
+licenses.dir=licenses
+description.dir=description
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.properties b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.properties
new file mode 100755
index 000000000000..b6059cf3113c
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.properties
@@ -0,0 +1,67 @@
+application.args=
+application.title=TaskPaneComponent
+application.vendor=qamsc
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form,**/*.xcu,**/*.xcs,**/*.idl,**/*manifest.xml
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/TaskPaneComponent.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+file.reference.juh.jar=../../office/slidecopy/openoffice.org/ure/share/java/juh.jar
+file.reference.jurt.jar=../../office/slidecopy/openoffice.org/ure/share/java/jurt.jar
+file.reference.ridl.jar=../../office/slidecopy/openoffice.org/ure/share/java/ridl.jar
+file.reference.unoil.jar=../../office/slidecopy/openoffice.org/basis3.3/program/classes/unoil.jar
+includes=**
+jar.compress=false
+javac.classpath=\
+ ${file.reference.unoil.jar}:\
+ ${file.reference.juh.jar}:\
+ ${file.reference.jurt.jar}:\
+ ${file.reference.ridl.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}:\
+ ${libs.junit.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+meta.inf.dir=${src.dir}/META-INF
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
+# or test-sys-prop.name=value to set system properties for unit tests):
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+src.dir=src
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.xml
new file mode 100755
index 000000000000..43c253f3c7e5
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/nbproject/project.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2seproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <name>TaskPaneComponent</name>
+ <minimum-ant-version>1.6.5</minimum-ant-version>
+ <source-roots>
+ <root id="src.dir"/>
+ </source-roots>
+ <test-roots/>
+ </data>
+ </configuration>
+</project>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu
new file mode 100755
index 000000000000..ba2c8c692d4e
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<oor:component-data oor:name="CalcWindowState" oor:package="org.openoffice.Office.UI" xmlns:install="http://openoffice.org/2004/installation" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <node oor:name="UIElements">
+ <node oor:name="States">
+ <node oor:name="private:resource/toolpanel/com.example.TestPanel1" oor:op="replace">
+ <prop oor:name="UIName" oor:type="xs:string">
+ <value xml:lang="en-US">ein Panel</value>
+ </prop>
+ <prop oor:name="Visible" oor:type="xs:boolean">
+ <value>true</value>
+ </prop>
+ </node>
+ <node oor:name="private:resource/toolpanel/com.example.TestPanel2" oor:op="replace">
+ <prop oor:name="UIName" oor:type="xs:string">
+ <value xml:lang="en-US">noch ein Panel</value>
+ </prop>
+ <prop oor:name="Visible" oor:type="xs:boolean">
+ <value>true</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+</oor:component-data>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/Factories.xcu b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/Factories.xcu
new file mode 100755
index 000000000000..90dce8595a1b
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/registry/data/org/openoffice/Office/UI/Factories.xcu
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<oor:component-data oor:name="Factories" oor:package="org.openoffice.Office.UI" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <node oor:name="Registered">
+ <node oor:name="UIElementFactories">
+ <node oor:name="com.example.TaskPaneComponent1" oor:op="replace">
+ <prop oor:name="Type">
+ <value>toolpanel</value>
+ </prop>
+ <prop oor:name="Name">
+ <value>com.example.TestPanel1</value>
+ </prop>
+ <prop oor:name="Module">
+ <value/>
+ </prop>
+ <prop oor:name="FactoryImplementation">
+ <value>com.example.TaskPaneComponent</value>
+ </prop>
+ </node>
+ <node oor:name="com.example.TaskPaneComponent2" oor:op="replace">
+ <prop oor:name="Type">
+ <value>toolpanel</value>
+ </prop>
+ <prop oor:name="Name">
+ <value>com.example.TestPanel2</value>
+ </prop>
+ <prop oor:name="Module">
+ <value/>
+ </prop>
+ <prop oor:name="FactoryImplementation">
+ <value>com.example.TaskPaneComponent</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+</oor:component-data>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/CentralRegistrationClass.java b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/CentralRegistrationClass.java
new file mode 100755
index 000000000000..5276f584aa3e
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/CentralRegistrationClass.java
@@ -0,0 +1,140 @@
+/*************************************************************************
+ * 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.
+ *
+ ************************************************************************/
+package com.example;
+
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.registry.XRegistryKey;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+/**
+ *
+ * @author Marc Neumann
+ */
+public class CentralRegistrationClass
+{
+
+ public static XSingleComponentFactory __getComponentFactory(String sImplementationName)
+ {
+ String regClassesList = getRegistrationClasses();
+ StringTokenizer t = new StringTokenizer(regClassesList, " ");
+ while (t.hasMoreTokens())
+ {
+ String className = t.nextToken();
+ if (className != null && className.length() != 0)
+ {
+ try
+ {
+ Class regClass = Class.forName(className);
+ Method writeRegInfo = regClass.getDeclaredMethod("__getComponentFactory", new Class[]
+ {
+ String.class
+ });
+ Object result = writeRegInfo.invoke(regClass, sImplementationName);
+ if (result != null)
+ {
+ return (XSingleComponentFactory) result;
+ }
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey xRegistryKey)
+ {
+ boolean bResult = true;
+ String regClassesList = getRegistrationClasses();
+ StringTokenizer t = new StringTokenizer(regClassesList, " ");
+ while (t.hasMoreTokens())
+ {
+ String className = t.nextToken();
+ if (className != null && className.length() != 0)
+ {
+ try
+ {
+ Class regClass = Class.forName(className);
+ Method writeRegInfo = regClass.getDeclaredMethod("__writeRegistryServiceInfo", new Class[]
+ {
+ XRegistryKey.class
+ });
+ Object result = writeRegInfo.invoke(regClass, xRegistryKey);
+ bResult &= ((Boolean) result).booleanValue();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ return bResult;
+ }
+
+ private static String getRegistrationClasses()
+ {
+ CentralRegistrationClass c = new CentralRegistrationClass();
+ String name = c.getClass().getCanonicalName().replace('.', '/').concat(".class");
+ try
+ {
+ Enumeration<URL> urlEnum = c.getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
+ while (urlEnum.hasMoreElements())
+ {
+ URL url = urlEnum.nextElement();
+ String file = url.getFile();
+ JarURLConnection jarConnection = (JarURLConnection) url.openConnection();
+ Manifest mf = jarConnection.getManifest();
+
+ Attributes attrs = (Attributes) mf.getAttributes(name);
+ if (attrs != null)
+ {
+ String classes = attrs.getValue("RegistrationClasses");
+ return classes;
+ }
+ }
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+
+ return "";
+ }
+
+ /** Creates a new instance of CentralRegistrationClass */
+ private CentralRegistrationClass()
+ {
+ }
+}
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/TaskPaneComponent.java b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/TaskPaneComponent.java
new file mode 100755
index 000000000000..0c5fdb782fad
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/TaskPaneComponent.java
@@ -0,0 +1,116 @@
+/*************************************************************************
+ * 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.
+ *
+ ************************************************************************/
+package com.example;
+
+import com.sun.star.awt.XWindow;
+import com.sun.star.frame.XFrame;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.lib.uno.helper.Factory;
+import com.sun.star.lang.XSingleComponentFactory;
+import com.sun.star.registry.XRegistryKey;
+import com.sun.star.lib.uno.helper.WeakBase;
+import com.sun.star.uno.UnoRuntime;
+
+public final class TaskPaneComponent extends WeakBase
+ implements com.sun.star.ui.XUIElementFactory,
+ com.sun.star.lang.XServiceInfo
+{
+
+ private final XComponentContext m_xContext;
+ private static final String m_implementationName = TaskPaneComponent.class.getName();
+ private static final String[] m_serviceNames =
+ {
+ "com.sun.star.ui.UIElementFactory"
+ };
+
+ public TaskPaneComponent(XComponentContext context)
+ {
+ m_xContext = context;
+ }
+
+ public static XSingleComponentFactory __getComponentFactory(String sImplementationName)
+ {
+ XSingleComponentFactory xFactory = null;
+
+ if (sImplementationName.equals(m_implementationName))
+ {
+ xFactory = Factory.createComponentFactory(TaskPaneComponent.class, m_serviceNames);
+ }
+ return xFactory;
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey xRegistryKey)
+ {
+ return Factory.writeRegistryServiceInfo(m_implementationName,
+ m_serviceNames,
+ xRegistryKey);
+ }
+
+ public com.sun.star.ui.XUIElement createUIElement(String ResourceURL, com.sun.star.beans.PropertyValue[] creationArgs) throws com.sun.star.container.NoSuchElementException, com.sun.star.lang.IllegalArgumentException
+ {
+
+ XFrame docFrame = null;
+ XWindow panelParentWindow = null;
+ for (int i = 0; i < creationArgs.length; ++i)
+ {
+ if (creationArgs[i].Name.equals("Frame"))
+ {
+ docFrame = UnoRuntime.queryInterface(XFrame.class, creationArgs[i].Value);
+ } else if (creationArgs[i].Name.equals("ParentWindow"))
+ {
+ panelParentWindow = UnoRuntime.queryInterface(XWindow.class, creationArgs[i].Value);
+ }
+ }
+
+ return new ToolPanelUIElement(m_xContext, docFrame, panelParentWindow);
+
+ }
+
+ // com.sun.star.lang.XServiceInfo:
+ public String getImplementationName()
+ {
+ return m_implementationName;
+ }
+
+ public boolean supportsService(String sService)
+ {
+ int len = m_serviceNames.length;
+
+ for (int i = 0; i < len; i++)
+ {
+ if (sService.equals(m_serviceNames[i]))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public String[] getSupportedServiceNames()
+ {
+ return m_serviceNames;
+ }
+}
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanel.java b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanel.java
new file mode 100755
index 000000000000..a28e07d5847b
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanel.java
@@ -0,0 +1,56 @@
+/*************************************************************************
+ * 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.
+ *
+ ************************************************************************/
+
+package com.example;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XWindow;
+import com.sun.star.ui.XToolPanel;
+import com.sun.star.uno.UnoRuntime;
+
+/**
+ *
+ * @author frank.schoenheit@sun.com
+ */
+public class ToolPanel implements XToolPanel
+{
+ ToolPanel( final XWindow i_panelWindow )
+ {
+ m_panelWindow = i_panelWindow;
+ }
+
+ public XWindow getWindow()
+ {
+ return m_panelWindow;
+ }
+
+ public XAccessible createAccessible( XAccessible i_parentAccessible )
+ {
+ return UnoRuntime.queryInterface( XAccessible.class, m_panelWindow );
+ }
+
+ private XWindow m_panelWindow;
+}
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanelUIElement.java b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanelUIElement.java
new file mode 100755
index 000000000000..6fb17d17f3d6
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/com/example/ToolPanelUIElement.java
@@ -0,0 +1,153 @@
+/*************************************************************************
+ * 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.
+ *
+ ************************************************************************/
+
+package com.example;
+
+import com.sun.star.awt.XContainerWindowProvider;
+import com.sun.star.awt.XWindow;
+import com.sun.star.awt.XWindowPeer;
+import com.sun.star.deployment.PackageInformationProvider;
+import com.sun.star.deployment.XPackageInformationProvider;
+import com.sun.star.frame.XFrame;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lib.uno.helper.ComponentBase;
+import com.sun.star.ui.UIElementType;
+import com.sun.star.ui.XUIElement;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author frank.schoenheit@sun.com
+ */
+public class ToolPanelUIElement extends ComponentBase implements XUIElement
+{
+
+ protected final XFrame m_docFrame;
+ protected final XWindow m_parentWindow;
+ private XWindow m_panelRootWindow = null;
+ private Object m_toolPanel = null;
+ XComponentContext context = null;
+
+
+ protected ToolPanelUIElement( XComponentContext _context, final XFrame i_docFrame, final XWindow i_parentWindow )
+ {
+ context = _context;
+ m_docFrame = i_docFrame;
+ m_parentWindow = i_parentWindow;
+ }
+
+ public static String getResourceURLBase()
+ {
+ return "private:resource/toolpanel/com.example.TaskPaneComponent/";
+ }
+
+ // XUIElement overridables
+ public XFrame getFrame() { return m_docFrame; }
+ public short getType() { return UIElementType.TOOLPANEL; }
+ public String getResourceURL() { return getResourceURLBase() + getPanelResourceURLSuffix(); }
+
+ public Object getRealInterface()
+ {
+ synchronized( this )
+ {
+ if ( this.bDisposed || this.bInDispose )
+ throw new DisposedException( new String(), this );
+
+ if ( m_toolPanel == null )
+ m_toolPanel = new ToolPanel( getOrCreatePanelRootWindow() );
+ }
+ return m_toolPanel;
+ }
+
+ // own overridables
+ /** returns the name of the dialog description file of the tool panel, without .xdl suffix
+ */
+ protected String getPanelResourceLocation()
+ {
+ return "TaskPaneComponentUI";
+
+ }
+
+ /** returns the resource URL suffix to use for the tool panel
+ * @return
+ */
+ protected String getPanelResourceURLSuffix()
+ {
+ return "TaskPaneComponentUI";
+ }
+
+
+ // ComponentBase overridables
+ protected void postDisposing()
+ {
+ super.postDisposing();
+ synchronized ( this )
+ {
+ if ( m_panelRootWindow != null )
+ {
+ XComponent panelWindowComp = UnoRuntime.queryInterface( XComponent.class, m_panelRootWindow );
+ panelWindowComp.dispose();
+ m_panelRootWindow = null;
+
+ }
+ m_toolPanel = null;
+ }
+ }
+
+ // helpers
+ synchronized private XWindow getOrCreatePanelRootWindow()
+ {
+ try
+ {
+ XPackageInformationProvider pip = PackageInformationProvider.get(context);
+ String s = pip.getPackageLocation("com.example.TaskPaneComponent");
+
+ String dialogUrl = s + "/toolpanels/" + getPanelResourceLocation() + ".xdl";
+
+ XContainerWindowProvider provider = UnoRuntime.queryInterface(
+ XContainerWindowProvider.class,
+ context.getServiceManager().createInstanceWithContext("com.sun.star.awt.ContainerWindowProvider",context)
+ );
+
+ m_panelRootWindow = provider.createContainerWindow(
+ dialogUrl,
+ "",
+ UnoRuntime.queryInterface( XWindowPeer.class, m_parentWindow ),
+ null
+ );
+
+ }
+ catch ( final Exception e )
+ {
+ Logger.getLogger( ToolPanelUIElement.class.getName() ).log( Level.SEVERE, null, e );
+ }
+ return m_panelRootWindow;
+ }
+}
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/description.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/description.xml
new file mode 100755
index 000000000000..9e32a6e8bfed
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/description.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <version value="0.0.1"/>
+ <identifier value="com.example.TaskPaneComponent"/>
+</description>
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/toolpanels/TaskPaneComponentUI.xdl b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/toolpanels/TaskPaneComponentUI.xdl
new file mode 100755
index 000000000000..7820e3d52c59
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/toolpanels/TaskPaneComponentUI.xdl
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog1" dlg:left="192" dlg:top="127" dlg:width="174" dlg:height="147" dlg:closeable="true" dlg:moveable="true" dlg:help-url="HID:123456" dlg:withtitlebar="false">
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="CommandButton1" dlg:tab-index="0" dlg:left="6" dlg:top="8" dlg:width="64" dlg:height="20" dlg:value="a wonderful button"/>
+ <dlg:textfield dlg:id="TextField1" dlg:textarea-vertical-align="top" dlg:tab-index="1" dlg:left="6" dlg:top="38" dlg:width="64" dlg:height="59" dlg:value="a wonderful text"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/uno-extension-manifest.xml b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/uno-extension-manifest.xml
new file mode 100755
index 000000000000..d49fe3d726ee
--- /dev/null
+++ b/testautomation/extensions/optional/input/extension_sources/TaskPaneComponent/src/uno-extension-manifest.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest:manifest xmlns:manifest="http://openoffice.org/2001/manifest">
+ <manifest:file-entry manifest:media-type="application/vnd.sun.star.uno-component;type=Java"
+ manifest:full-path="TaskPaneComponent.jar"/>
+ <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
+ manifest:full-path="registry/data/org/openoffice/Office/UI/Factories.xcu"/>
+ <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data"
+ manifest:full-path="registry/data/org/openoffice/Office/UI/CalcWindowState.xcu"/>
+</manifest:manifest> \ No newline at end of file
diff --git a/testautomation/extensions/optional/input/extensions/TaskPaneComponent/TaskPaneComponent.oxt b/testautomation/extensions/optional/input/extensions/TaskPaneComponent/TaskPaneComponent.oxt
new file mode 100755
index 000000000000..5c826dd3541d
--- /dev/null
+++ b/testautomation/extensions/optional/input/extensions/TaskPaneComponent/TaskPaneComponent.oxt
Binary files differ
diff --git a/testautomation/extensions/optional/input/issues/Logging.xcu b/testautomation/extensions/optional/input/issues/Logging.xcu
new file mode 100755
index 000000000000..8bf0f34b6f1b
--- /dev/null
+++ b/testautomation/extensions/optional/input/issues/Logging.xcu
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Logging" oor:package="org.openoffice.Office">
+ <node oor:name="Settings">
+ <node oor:name="bw.stv.tvs.logging.DefaultLogger" oor:op="replace">
+ <prop oor:name="DefaultFormatter" oor:type="xs:string">
+ <value>com.sun.star.logging.PlainTextFormatter</value>
+ </prop>
+ <prop oor:name="DefaultHandler" oor:type="xs:string">
+ <value>bw.stv.tvs.logging.UILogHandler</value>
+ </prop>
+ <prop oor:name="LogLevel" oor:type="xs:int">
+ <value>2147483647</value>
+ </prop>
+ <node oor:name="HandlerSettings">
+ <prop oor:name="UIId" oor:type="xs:string">
+ <value>tvs.ui</value>
+ </prop>
+ <prop oor:name="UITitle" oor:type="xs:string">
+ <value>TVS-Logger (bw.stv.tvs.logging.DefaultLogger)</value>
+ </prop>
+ </node>
+ </node>
+ </node>
+</oor:component-data> \ No newline at end of file
diff --git a/testautomation/extensions/optional/input/issues/LoggingOptions.xcs b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs
new file mode 100644
index 000000000000..e87474bba2a2
--- /dev/null
+++ b/testautomation/extensions/optional/input/issues/LoggingOptions.xcs
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<oor:component-schema xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Logging" oor:package="org.openoffice.Office" xml:lang="en-US">
+ <templates>
+ <group oor:name="LoggerSettings">
+ <group oor:name="HandlerSettings" oor:extensible="true">
+ <info>
+ <desc>Enthält zusätzliche Optionen für den TVS-UILogHandler</desc>
+ </info>
+ <prop oor:name="UITitle" oor:type="xs:string">
+ <value/>
+ </prop>
+ <prop oor:name="UIId" oor:type="xs:string">
+ <value/>
+ </prop>
+ </group>
+ </group>
+ </templates>
+ <component/>
+</oor:component-schema>
diff --git a/testautomation/extensions/optional/input/platform/extensions.info b/testautomation/extensions/optional/input/platform/extensions.info
index 09424d0db666..fdcda07205aa 100755
--- a/testautomation/extensions/optional/input/platform/extensions.info
+++ b/testautomation/extensions/optional/input/platform/extensions.info
@@ -125,7 +125,7 @@ Name=Single Platform: os2_x86
[24]
File=solaris_sparc.oxt
-Platform=Solaris Sparc
+Platform=Solaris SPARC
Name=Single Platform: solaris_sparc
[25]
diff --git a/testautomation/extensions/required/includes/e_update.inc b/testautomation/extensions/required/includes/e_update.inc
index c3114a65dbbc..c3114a65dbbc 100755..100644
--- a/testautomation/extensions/required/includes/e_update.inc
+++ b/testautomation/extensions/required/includes/e_update.inc
diff --git a/testautomation/extensions/required/includes/e_update_oooimprovement.inc b/testautomation/extensions/required/includes/e_update_oooimprovement.inc
index 0981a1836937..0981a1836937 100755..100644
--- a/testautomation/extensions/required/includes/e_update_oooimprovement.inc
+++ b/testautomation/extensions/required/includes/e_update_oooimprovement.inc
diff --git a/testautomation/framework/optional/f_basic_gridcontrol.bas b/testautomation/framework/optional/f_basic_gridcontrol.bas
index 697618e7fc65..697618e7fc65 100755..100644
--- a/testautomation/framework/optional/f_basic_gridcontrol.bas
+++ b/testautomation/framework/optional/f_basic_gridcontrol.bas
diff --git a/testautomation/framework/optional/f_basic_vba-compat.bas b/testautomation/framework/optional/f_basic_vba-compat.bas
index 3a6d41d3e0af..80b48eb5c1e6 100755
--- a/testautomation/framework/optional/f_basic_vba-compat.bas
+++ b/testautomation/framework/optional/f_basic_vba-compat.bas
@@ -36,13 +36,17 @@ sub main
use "framework\optional\includes\basic_vba-compat_import_nothing.inc"
use "framework\optional\includes\basic_vba-compat_import_disabled.inc"
use "framework\optional\includes\basic_vba-compat_import_enabled.inc"
- use "framework\optional\includes\basic_vba-compat_security_check.inc"
-
+ use "framework\optional\includes\basic_vba-compat_thisworkbook.inc"
+ use "framework\optional\includes\basic_vba-compat_application-union.inc"
+ use "framework\optional\includes\basic_vba-compat_xlsm-xlsb.inc"
+
call hStatusIn( "framework" , "f_basic_vba-compat.bas" )
call tBasicVBACompatImportNothing()
call tBasicVBACompatImportDisabled()
call tBasicVBACompatImportEnabled()
- call tBasicVBACompatSecurityCheck()
+ call tBasicVBACompatThisWorkBook()
+ call tBasicVBACompatApplicationUnion()
+ call tBasicVBACompatXLSM_XLSB()
call hStatusOut()
end sub
@@ -56,6 +60,7 @@ sub LoadIncludeFiles
use "global\tools\includes\optional\t_basic_organizer_tools.inc"
use "global\tools\includes\optional\t_treelist_tools.inc"
+ use "global\tools\includes\optional\t_stringtools.inc"
use "global\tools\includes\optional\t_security_tools.inc"
use "global\tools\includes\optional\t_macro_tools.inc"
use "global\tools\includes\optional\t_docfuncs.inc"
diff --git a/testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc b/testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc
index d144b7cdb88a..d144b7cdb88a 100755..100644
--- a/testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc
+++ b/testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc
diff --git a/testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc b/testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc
index e20124b78b93..e20124b78b93 100755..100644
--- a/testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc
+++ b/testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc
diff --git a/testautomation/framework/optional/includes/basic_delete_modules.inc b/testautomation/framework/optional/includes/basic_delete_modules.inc
index 3fe642ea8ec6..3fe642ea8ec6 100755..100644
--- a/testautomation/framework/optional/includes/basic_delete_modules.inc
+++ b/testautomation/framework/optional/includes/basic_delete_modules.inc
diff --git a/testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc b/testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc
index 1a47c8296588..1a47c8296588 100755..100644
--- a/testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc
+++ b/testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc
diff --git a/testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc b/testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc
index 79b4e039fa14..79b4e039fa14 100755..100644
--- a/testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc
+++ b/testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc
diff --git a/testautomation/framework/optional/includes/basic_documents.inc b/testautomation/framework/optional/includes/basic_documents.inc
index d5d12b1aa12f..d5d12b1aa12f 100755..100644
--- a/testautomation/framework/optional/includes/basic_documents.inc
+++ b/testautomation/framework/optional/includes/basic_documents.inc
diff --git a/testautomation/framework/optional/includes/basic_eventbinding.inc b/testautomation/framework/optional/includes/basic_eventbinding.inc
index 85601c312667..85601c312667 100755..100644
--- a/testautomation/framework/optional/includes/basic_eventbinding.inc
+++ b/testautomation/framework/optional/includes/basic_eventbinding.inc
diff --git a/testautomation/framework/optional/includes/basic_formcontrols.inc b/testautomation/framework/optional/includes/basic_formcontrols.inc
index 01af07357d52..01af07357d52 100755..100644
--- a/testautomation/framework/optional/includes/basic_formcontrols.inc
+++ b/testautomation/framework/optional/includes/basic_formcontrols.inc
diff --git a/testautomation/framework/optional/includes/basic_gridcontrol.inc b/testautomation/framework/optional/includes/basic_gridcontrol.inc
index dc96ef30e16c..b23e2318d657 100755
--- a/testautomation/framework/optional/includes/basic_gridcontrol.inc
+++ b/testautomation/framework/optional/includes/basic_gridcontrol.inc
@@ -54,72 +54,50 @@ testcase tGridcontrolLoad
call sleep 1
printlog "Start the macro, that performs the test"
- printlog "Tools->Macros->Run Macro..."
- ToolsMacrosRunMacro
- Kontext "ScriptSelector"
- if ScriptSelector.exists(10) then
- x = LibraryTreeList.getItemCount
- printlog "Look for library 'gridcontrol'"
- for i = 1 to x
- sTemp = LibraryTreeList.getItemText(i)
- 'printlog "("+i+"/"+x+"): '" + sTemp + "'"
- if (instr(sTemp,"gridcontrol")>0 OR instr(sTemp,"GRIDCONTROL")) then
- a = i
- printlog "Found library ("+i+"/"+x+"): '" + sTemp + "'"
- endif
+ Kontext "GridControlDialogStarter"
+ ' FAILS IF DOCUMENT IS READONLY....
+ ShowGridcontrol.typeKeys "<space>"
+ Kontext "GridControlDialog"
+ if GridControlDialog.exists(5) then
+ for i=1 to gridcontrolcontrol.getcolumncount
+ for a=1 to gridcontrolcontrol.getrowcount
+ printlog " " + i + ":"+a+": '" + gridcontrolcontrol.getitemtype (i,a) + "' '" + gridcontrolcontrol.getitemtext (i,a) + "'"
+ next a
next i
- if 0 <> a then
- printlog "Select the library and unfold it"
- LibraryTreeList.select(a)
- LibraryTreeList.typeKeys("+")
- printlog "Go to 'Standard' and unfold"
- LibraryTreeList.typeKeys("<down>")
- LibraryTreeList.typeKeys("+")
- printlog "Go to 'Module1'"
- LibraryTreeList.typeKeys("<down>")
+ gridcontrolcontrol.select 5
- printlog "Select macro name 'VclTestTool'"
- x = ScriptList.getItemCount
- for i = 1 to x
- sTemp = ScriptList.getItemText(i)
- 'printlog "("+i+"/"+x+"): '" + sTemp + "'"
- if "VclTestTool" = sTemp then
- a = i
- printlog "Found macro ("+i+"/"+x+"): '" + sTemp + "'"
- endif
- next i
- if (0 <> a) then
- printlog "Select the macro"
- ScriptList.select(a)
- printlog "Start the macro by pressing the button 'run'"
- ScriptSelector.ok
- printlog "sleep... at least 60 seconds"
- call sleep(60)
- printlog "If macro fails for whatever reason, a message comes up"
- Kontext
- if active.exists() then
- warnlog "" + active.getText
- active.ok
- try
- EditCopy
- warnlog getclipboard()
- catch
- endcatch
- printlog "close basic ide"
- call hCloseDocument()
- printlog "close document"
- call hCloseDocument()
- goto endsub
- endif
+ kontext
+ if active.exists(5) then
+ printlog active.gettext
+ active.ok
+ else
+ warnlog "No selection Event by .select"
+ endif
- else
- warnlog sLocation + "Macro not found: 'Main'"
- endif
+ Kontext "GridControlDialog"
+ gridcontrolcontrol.typeKeys("<down>")
+
+ kontext
+ if active.exists(5) then
+ printlog active.gettext
+ active.ok
else
- warnlog sLocation + "Library not found: 'gridcontrol'"
+ warnlog "No selection event by .typeKeys <down>"
endif
+ Kontext "GridControlDialog"
+ gridcontrolcontrol.typeKeys("<up>")
+ kontext
+ if active.exists(5) then
+ printlog active.gettext
+ active.ok
+ else
+ warnlog "No selection event by .typeKeys <up>"
+ endif
+
+ Kontext "GridControlDialog"
+ GridControlDialog.close
else
- warnlog sLocation + "'Run macro dialog' didn't came up"
+ warnlog "Gridcontrol Dialog did not come up after pressing button"
endif
printlog "clean up"
@@ -129,3 +107,4 @@ testcase tGridcontrolLoad
endif
endcase
+
diff --git a/testautomation/framework/optional/includes/basic_ide.inc b/testautomation/framework/optional/includes/basic_ide.inc
index 799260201257..799260201257 100755..100644
--- a/testautomation/framework/optional/includes/basic_ide.inc
+++ b/testautomation/framework/optional/includes/basic_ide.inc
diff --git a/testautomation/framework/optional/includes/basic_library_export.inc b/testautomation/framework/optional/includes/basic_library_export.inc
index 18bb4af4441c..18bb4af4441c 100755..100644
--- a/testautomation/framework/optional/includes/basic_library_export.inc
+++ b/testautomation/framework/optional/includes/basic_library_export.inc
diff --git a/testautomation/framework/optional/includes/basic_library_import.inc b/testautomation/framework/optional/includes/basic_library_import.inc
index ec4cc8fa3b53..ec4cc8fa3b53 100755..100644
--- a/testautomation/framework/optional/includes/basic_library_import.inc
+++ b/testautomation/framework/optional/includes/basic_library_import.inc
diff --git a/testautomation/framework/optional/includes/basic_macros.inc b/testautomation/framework/optional/includes/basic_macros.inc
index 0d5e2a451d60..0d5e2a451d60 100755..100644
--- a/testautomation/framework/optional/includes/basic_macros.inc
+++ b/testautomation/framework/optional/includes/basic_macros.inc
diff --git a/testautomation/framework/optional/includes/basic_modulehide.inc b/testautomation/framework/optional/includes/basic_modulehide.inc
index 130915ffec46..130915ffec46 100755..100644
--- a/testautomation/framework/optional/includes/basic_modulehide.inc
+++ b/testautomation/framework/optional/includes/basic_modulehide.inc
diff --git a/testautomation/framework/optional/includes/basic_modulenames.inc b/testautomation/framework/optional/includes/basic_modulenames.inc
index 28c260642482..28c260642482 100755..100644
--- a/testautomation/framework/optional/includes/basic_modulenames.inc
+++ b/testautomation/framework/optional/includes/basic_modulenames.inc
diff --git a/testautomation/framework/optional/includes/basic_modules.inc b/testautomation/framework/optional/includes/basic_modules.inc
index 203ebf7bc219..203ebf7bc219 100755..100644
--- a/testautomation/framework/optional/includes/basic_modules.inc
+++ b/testautomation/framework/optional/includes/basic_modules.inc
diff --git a/testautomation/framework/optional/includes/basic_package_export.inc b/testautomation/framework/optional/includes/basic_package_export.inc
index a8a2ae00459d..a8a2ae00459d 100755..100644
--- a/testautomation/framework/optional/includes/basic_package_export.inc
+++ b/testautomation/framework/optional/includes/basic_package_export.inc
diff --git a/testautomation/framework/optional/includes/basic_package_import.inc b/testautomation/framework/optional/includes/basic_package_import.inc
index 4ef74de4f112..4ef74de4f112 100755..100644
--- a/testautomation/framework/optional/includes/basic_package_import.inc
+++ b/testautomation/framework/optional/includes/basic_package_import.inc
diff --git a/testautomation/framework/optional/includes/basic_protected_libraries.inc b/testautomation/framework/optional/includes/basic_protected_libraries.inc
index 132549c16d8d..132549c16d8d 100755..100644
--- a/testautomation/framework/optional/includes/basic_protected_libraries.inc
+++ b/testautomation/framework/optional/includes/basic_protected_libraries.inc
diff --git a/testautomation/framework/optional/includes/basic_spectemplate.inc b/testautomation/framework/optional/includes/basic_spectemplate.inc
index 92a792cd5797..92a792cd5797 100755..100644
--- a/testautomation/framework/optional/includes/basic_spectemplate.inc
+++ b/testautomation/framework/optional/includes/basic_spectemplate.inc
diff --git a/testautomation/framework/optional/includes/basic_usertemplate.inc b/testautomation/framework/optional/includes/basic_usertemplate.inc
index de3b605ed510..de3b605ed510 100755..100644
--- a/testautomation/framework/optional/includes/basic_usertemplate.inc
+++ b/testautomation/framework/optional/includes/basic_usertemplate.inc
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc b/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc
new file mode 100755
index 000000000000..222b99215f81
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_application-union.inc
@@ -0,0 +1,132 @@
+'encoding UTF-8 Do not remove or change this line!
+'*******************************************************************************
+' 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.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : Test VBA compatibility switches
+'*
+'\******************************************************************************
+
+testcase tBasicVBACompatApplicationUnion()
+
+ printlog( "Functionality of Application.Union" )
+ ' Based on issue #i110724
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+ const DOCUMENT_NAME = "vba-application-union.xls"
+ const LIBRARY_NAME = "Standard"
+ const MODULE_NAME = "Module1"
+ const EXPECTED_MACRO_COUNT = 6
+ const MAX_WAIT = 2
+ const RC_FAILURE = -1
+
+ dim macro_identifier( EXPECTED_MACRO_COUNT )
+ macro_identifier( 1 ) = "1: True"
+ macro_identifier( 2 ) = "2: True"
+ macro_identifier( 3 ) = "3: True"
+ macro_identifier( 4 ) = "4: True"
+ macro_identifier( 5 ) = "5: True"
+ macro_identifier( 6 ) = "6: True"
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim iMacroPosition as integer
+ dim iCurrentMacro as integer
+ dim iRepeat as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ printlog( "Load the test file" )
+ hFileOpen( cTestFile )
+
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_WAIT ) ) then
+
+ iMacroPosition = hSelectNodeByName( MakroAus, DOCUMENT_NAME )
+ hExpandNode( MakroAus, iMacroPosition )
+
+ printlog( "Move to node <" & LIBRARY_NAME & ">" )
+ iMacroPosition = hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, LIBRARY_NAME ) ) then
+ warnlog( "This is not the expected library" )
+ endif
+
+ printlog( "Move to node <" & MODULE_NAME & ">" )
+ hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, MODULE_NAME ) ) then
+ warnlog( "This is not the expected module" )
+ endif
+
+ printlog( "Click <Ausfuehren> to execute the macro" )
+ if ( hClickButton( Ausfuehren ) <> RC_FAILURE ) then
+
+ printlog( "Check for the " & EXPECTED_MACRO_COUNT & " expected messageboxes" )
+ for iCurrentMacro = 1 to EXPECTED_MACRO_COUNT
+
+ printlog( "" )
+ kontext "Active"
+ printlog( iCurrentMacro & ": Check for messagebox: " & macro_identifier( iCurrentMacro ) )
+ if ( Active.exists( MAX_WAIT ) ) then
+
+ if ( Active.getText() = macro_identifier( iCurrentMacro ) ) then
+ printlog( "The expected macro was executed" )
+ else
+ warnlog( "Unexpected macro executed: " & Active.getText() )
+ endif
+ Active.ok()
+
+ else
+ warnlog( "Expected messagebox not displayed within reasonable timeframe" )
+ goto endsub
+ endif
+
+ next iCurrentMacro
+ else
+ warnlog( "Unable to execute macro, the <Run Macro> button is disabled" )
+ kontext "Makro"
+ Makro.close()
+ endif
+ else
+ warnlog( "Failed to open BASIC organizer" )
+ endif
+
+ printlog( "Cleanup" )
+ hCloseDocument()
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
index f5576308a6a9..764ba407236a 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc
@@ -36,12 +36,23 @@ testcase tBasicVBACompatImportDisabled()
printlog( "Test VBA compatibility switch / executable Microsoft(R) Excel(R) Macros" )
printlog( "Test case 2: Import macros but do not set the executable mode" )
-
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
+
+ const NODE_COUNT = 78
+
+ const DOCUMENT_POSITION_OFFSET = -7
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = FALSE
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/vba-test.xls"
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
dim cNodeCount as integer
@@ -57,15 +68,6 @@ testcase tBasicVBACompatImportDisabled()
dim iCurrentModule as integer
dim cCurrentModule as string
dim bFound as boolean
-
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT_OOO = 78 ' OpenOffice.org
- const NODE_COUNT = 80 ' branded product
-
- const DOCUMENT_POSITION_OFFSET = -7
-
- const IMPORT_EXCEL_MACROS = TRUE
- const EXEC_EXCEL_MACROS = FALSE
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
@@ -92,9 +94,11 @@ testcase tBasicVBACompatImportDisabled()
printlog( "Verify position of the document node" )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- if ( MakroAus.getSelText() <> "vba-test.xls" ) then
- qaerrorlog( "The document node is not at the expected position" )
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
for iCurrentModule = 2 to 7
@@ -135,7 +139,6 @@ testcase tBasicVBACompatImportDisabled()
hSetExcelImportModeDefault()
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
-
endcase
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
index 3e6450e4c2e7..98173ee8ba48 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc
@@ -39,22 +39,40 @@ testcase tBasicVBACompatImportEnabled()
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
-
- dim cFile as string : cFile = "vba-test.xls"
+
+ ' Depending on the mode of macro import we have differtent basic libraries listed
+ const NODE_COUNT = 78
+
+ const DOCUMENT_POSITION_OFFSET = -7
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & cFile
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
dim cNodeCount as integer
- ' note that index 0 and 1 are ommitted intentionally
- dim caNodeData( 3 ) as string
- caNodeData( 2 ) = "Modul1"
- caNodeData( 3 ) = "Modul2"
-
- dim caScripts( 3 ) as string
- caScripts( 2 ) = "ConcatFct Ende"
- caScripts( 3 ) = "WriteIt"
+ dim caNodeData( 7 ) as string
+ caNodeData( 0 ) = DOCUMENT_NAME ' The document, not used
+ caNodeData( 1 ) = "Standard" ' The default library, not used
+ caNodeData( 2 ) = "DieseArbeitsmappe"
+ caNodeData( 3 ) = "Modul1"
+ caNodeData( 4 ) = "Modul2"
+ caNodeData( 5 ) = "Tabelle1"
+ caNodeData( 6 ) = "Tabelle2"
+ caNodeData( 7 ) = "Tabelle3"
+
+ ' These are the scripts belonging to each node above. If multiple scripts exist
+ ' they are separated by spaces. Example: "Modul1" has "ConcatFct" and "Ende" scripts.
+ dim caScripts( 7 ) as string
+ caScripts( 3 ) = "ConcatFct Ende"
+ caScripts( 4 ) = "WriteIt"
dim iCurrentModule as integer
dim iCurrentScript as integer
@@ -62,19 +80,10 @@ testcase tBasicVBACompatImportEnabled()
dim cTempString as string
dim bFound as boolean
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT_OOO = 74
- const NODE_COUNT = 76
-
- const DOCUMENT_POSITION_OFFSET = -3
-
- const IMPORT_EXCEL_MACROS = TRUE
- const EXEC_EXCEL_MACROS = TRUE
-
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
- printlog( "Open Tools/Options" )
+ printlog( "Open Tools/Options and set the VBA macro execution mode" )
hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
@@ -96,26 +105,13 @@ testcase tBasicVBACompatImportEnabled()
printlog( "Verify position of the document node." )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- cTempString = MakroAus.getSelText()
- if ( cTempString <> cFile ) then
- qaerrorlog( "The filename does not match. File may be read-only." )
- if ( instr( cTempString, cFile ) > 1 ) then
- printlog( "Filename is contained in the UI string." )
- select case ( getAttr( cTestFile ) )
- case 0 : warnlog( "The file appears to be read-only but it is " & _
- "not write-protected on filesystem level." )
- case 1 : printlog( "The file is read-only on filesystem level. Ok." )
- case else
- warnlog( "getAttr() returned unexpected value. 1 or 2 are allowed" )
- printlog( "RC from getAttr() is: " & getAttr( cTestFile ) )
- end select
- else
- qaerrorlog( "The document node is not at the expected position." )
- qaerrorlog( "Object at this position is: " & MakroAus.getSelText() )
- endif
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
- for iCurrentModule = 2 to 3
+ for iCurrentModule = 2 to 7
printlog( "Look for: " & caNodeData( iCurrentModule ) )
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc b/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
index bab6bf1a4b1b..50c59cf88e10 100755
--- a/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
+++ b/testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc
@@ -38,21 +38,24 @@ testcase tBasicVBACompatImportNothing()
' This test case is based on the use cases provided in issue #i88690
' Spec: http://specs.openoffice.org/appwide/options_settings/Option_Dialog.odt
-
- dim cTestFile as string
- cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/vba-test.xls"
-
- dim cNodeCount as integer
-
- ' Depending on the mode of macro import we have differtent basic libraries listed
- const NODE_COUNT = 74 ' Do not import Microsoft(R) Excel(R) macros at all
- const NODE_COUNT_OOO = 72
- const MACRO_LIST = 0 ' The document library should have no scripts listed
+' Depending on the mode of macro import we have differtent basic libraries listed
+ const NODE_COUNT = 72 ' Do not import Microsoft(R) Excel(R) macros at all
+ const MACRO_LIST = 0 ' The document library should have no scripts listed
const DOCUMENT_POSITION_OFFSET = -1
-
+
const IMPORT_EXCEL_MACROS = FALSE
const EXEC_EXCEL_MACROS = FALSE
-
+
+ const DOCUMENT_NAME = "vba-test.xls"
+ const MATCH_NONE = 0
+ const MATCH_EXACT = 1
+ const MATCH_PARTLY = 2
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim cNodeCount as integer
+
printlog( "Set macro security to low" )
hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
@@ -78,9 +81,11 @@ testcase tBasicVBACompatImportNothing()
printlog( "Verify position of the document node" )
MakroAus.select( cNodeCount + DOCUMENT_POSITION_OFFSET )
- if ( MakroAus.getSelText() <> "vba-test.xls" ) then
- qaerrorlog( "The document node is not at the expected position" )
- endif
+ select case( hCompareSubStrings( MakroAus.getSelText(), DOCUMENT_NAME ) )
+ case MATCH_NONE : warnlog ( "The document is not listed at the expected position" )
+ case MATCH_EXACT : printlog( "The document is at the expected position and writable" )
+ case MATCH_PARTLY : printlog( "The document is at the expected position and write protected" )
+ end select
printlog( "Select the last node, this should be the standard Library for the document" )
MakroAus.select( cNodeCount )
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc b/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc
new file mode 100755
index 000000000000..03c52146a8fb
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_thisworkbook.inc
@@ -0,0 +1,143 @@
+'encoding UTF-8 Do not remove or change this line!
+'*******************************************************************************
+' 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.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : Test VBA compatibility switches
+'*
+'\******************************************************************************
+
+testcase tBasicVBACompatThisWorkBook()
+
+ printlog( "Functionality of .thisWorkbook" )
+ ' Based on issue #i110672
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+ const DOCUMENT_NAME = "vba-thisworkbook.xls"
+ const LIBRARY_NAME = "Standard"
+ const MODULE_NAME = "Module1"
+ const EXPECTED_MACRO_COUNT = 2
+ const MAX_REPEAT_COUNT = 2
+ const MAX_WAIT = 2
+
+ dim macro_identifier( EXPECTED_MACRO_COUNT )
+ macro_identifier( 1 ) = "Test 1 passed."
+ macro_identifier( 2 ) = "Test 2 passed."
+
+ dim cTestFile as string
+ cTestFile = gTesttoolPath & "framework/optional/input/vba-compat/" & DOCUMENT_NAME
+
+ dim iMacroPosition as integer
+ dim iCurrentMacro as integer
+ dim iRepeat as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ printlog( "Load the test file" )
+ hFileOpen( cTestFile )
+
+ printlog( "Execute the procedure twice to trigger issue 111553" )
+ for iRepeat = 1 to MAX_REPEAT_COUNT
+
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_WAIT ) ) then
+
+ iMacroPosition = hSelectNodeByName( MakroAus, DOCUMENT_NAME )
+ hExpandNode( MakroAus, iMacroPosition )
+
+ printlog( "Move to node <" & LIBRARY_NAME & ">" )
+ iMacroPosition = hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, LIBRARY_NAME ) ) then
+ warnlog( "This is not the expected library" )
+ endif
+
+ printlog( "Move to node <" & MODULE_NAME & ">" )
+ hSelectNextNode( MakroAus )
+ if ( not hVerifyNodeName( MakroAus, MODULE_NAME ) ) then
+ warnlog( "This is not the expected module" )
+ endif
+
+ printlog( "Click <Ausfuehren> to execute the macro" )
+ iMacroPosition = hClickButton( Ausfuehren )
+
+ printlog( "Check for two expected messageboxes" )
+ for iCurrentMacro = 1 to EXPECTED_MACRO_COUNT
+
+ kontext "Active"
+ printlog( "Check for messagebox: " & macro_identifier( iCurrentMacro ) )
+ if ( Active.exists( MAX_WAIT ) ) then
+
+ if ( Active.getText() = macro_identifier( iCurrentMacro ) ) then
+ printlog( "Correct macro executed" )
+ else
+ printlog( "Macro execution error, trying to identify..." )
+ if ( instr( Active.getText(), "BASIC runtime error." ) > 0 ) then
+ if ( iRepeat = MAX_REPEAT_COUNT ) then
+ warnlog( "#i111533 - Cannot execute ThisWorkbook macro twice" )
+ Active.ok()
+ hFileCloseAll()
+ goto endsub
+ else
+ warnlog( "Executing macro failed" )
+ goto endsub
+ endif
+ else
+ warnlog( "Unknown messagebox. Aborting test" )
+ goto endsub
+ endif
+ endif
+
+ Active.ok()
+
+ else
+ warnlog( "Expected messagebox not displayed within reasonable timeframe" )
+ goto endsub
+ endif
+
+ next iCurrentMacro
+ else
+ warnlog( "A macro with the name <" & MODULE_NAME & "> could not be found" )
+ goto endsub
+ endif
+
+ next iRepeat
+
+ printlog( "Cleanup" )
+ hCloseDocument()
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+
diff --git a/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc b/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc
new file mode 100755
index 000000000000..cfc8f06072e3
--- /dev/null
+++ b/testautomation/framework/optional/includes/basic_vba-compat_xlsm-xlsb.inc
@@ -0,0 +1,187 @@
+'encoding UTF-8 Do not remove or change this line!
+'*******************************************************************************
+' 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.
+'
+'/******************************************************************************
+'*
+'* owner : joerg.skottke@sun.com
+'*
+'* short description : Test VBA compatibility switches
+'*
+'\******************************************************************************
+
+testcase tBasicVBACompatXLSM_XLSB()
+
+ printlog( "Functionality of macros in XLSM/XLSB files" )
+ ' Based on issue #i111007
+
+ const IMPORT_EXCEL_MACROS = TRUE
+ const EXEC_EXCEL_MACROS = TRUE
+
+ const FILE_COUNT = 2
+ const MODULE_COUNT = 7
+
+ const MODULE_NOT_FOUND = 0
+ const MAX_DELAY = 3
+ const RC_TIMEOUT = -1
+
+ const THE_MODULE_THAT_BEHAVES_DIFFERENTLY = 6
+
+ const RELATIVE_PATH = "framework/optional/input/vba-compat/"
+
+ ' We have two files to load, on e .xlsm and one .xlsb
+ dim cFileList( FILE_COUNT ) as string
+ cFileList( 1 ) = "vba-project.xlsm"
+ cFileList( 2 ) = "vba-project.xlsb"
+
+ ' both documents import the same modules
+ dim cTestModuleList( MODULE_COUNT )
+ cTestModuleList( 1 ) = "MyChartModule"
+ cTestModuleList( 2 ) = "MyCodeModule"
+ cTestModuleList( 3 ) = "MyPrivateClassModule"
+ cTestModuleList( 4 ) = "MyPublicClassModule"
+ cTestModuleList( 5 ) = "MySheetModule"
+ cTestModuleList( 6 ) = "MyUserForm"
+ cTestModuleList( 7 ) = "MyWorkbookModule"
+
+ dim cTestFile as string
+ dim iCurrentFile as integer
+ dim iCurrentModule as integer
+
+ printlog( "Set macro security to low" )
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_LOW )
+
+ printlog( "Open Tools/Options" )
+ hSetExcelBasicImportMode( IMPORT_EXCEL_MACROS, EXEC_EXCEL_MACROS )
+
+ for iCurrentFile = 1 to FILE_COUNT
+
+ cTestFile = gTesttoolPath & RELATIVE_PATH & cFileList( iCurrentFile )
+
+ printlog( "Loading document: " & cTestFile )
+ hFileOpen( cTestFile )
+
+ for iCurrentModule = 1 to MODULE_COUNT
+
+ printlog( "" )
+ printlog( "Tryng to execute macro: " & cTestModuleList( iCurrentModule ) )
+ ToolsMacro_uno
+
+ kontext "Makro"
+ if ( Makro.exists( MAX_DELAY ) ) then
+
+ if ( hSelectNodeByName( MakroAus, cTestModuleList( iCurrentModule ) ) <> MODULE_NOT_FOUND ) then
+
+ printlog( "Execute the default macro <Test> for the current module" )
+
+ if ( hClickButton( Ausfuehren ) <> RC_TIMEOUT ) then
+ if ( iCurrentModule = THE_MODULE_THAT_BEHAVES_DIFFERENTLY ) then
+ ' Fuzzy matching message string
+ hTestMacroType2( cTestModuleList( iCurrentModule ) )
+ else
+ ' Exact matching message string
+ hTestMacroType1( cTestModuleList( iCurrentModule ) )
+ endif
+ else
+ warnlog( "No executable macro found for the current module / <Run> button is disabled" )
+ endif
+ else
+ warnlog( "the expected macro module could not be found" )
+ endif
+ else
+ warnlog( "BASIC Macro organizer did not open" )
+ endif
+
+ next iCurrentModule
+
+ printlog( "Close the document" )
+ hFileCloseAll()
+
+ next iCurrentFile
+
+ hSetExcelImportModeDefault()
+ hSetMacroSecurityAPI( GC_MACRO_SECURITY_LEVEL_DEFAULT )
+
+endcase
+
+'*******************************************************************************
+
+function hTestMacroType1( cMessage as string ) as boolean
+
+ ' exact matching
+
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ if ( Active.getText() = cMessage ) then
+ printlog( "Correct macro has been executed" )
+ hTestMacroType1() = true
+ else
+ warnlog( "Incorrect macro executed: " )
+ printlog( "Expected: " & cMessage )
+ printlog( "Found...: " & Active.getText() )
+ hTestMacroType1() = false
+ endif
+
+ Active.ok()
+ WaitSlot()
+
+ else
+ warnlog( "Messagebox missing, macro was not executed" )
+ hTestMacroType1() = false
+ endif
+
+end function
+
+'*******************************************************************************
+
+function hTestMacroType2( cMessage as string ) as boolean
+
+ ' fuzzy matching
+
+ dim iCurrentMessage as integer
+
+ for iCurrentMessage = 1 to 2
+
+ kontext "Active"
+ if ( Active.exists( 2 ) ) then
+ if ( instr( Active.getText() , cMessage ) > 0 ) then
+ printlog( "Correct macro has been executed" )
+ hTestMacroType2() = true
+ else
+ warnlog( "Incorrect macro executed: " )
+ printlog( "Expected: " & cMessage )
+ printlog( "Found...: " & Active.getText() )
+ hTestMacroType2() = false
+ endif
+
+ Active.ok()
+ WaitSlot()
+
+ else
+ warnlog( "Messagebox missing, macro not executed" )
+ hTestMacroType2() = false
+ endif
+ next iCurrentMessage
+
+end function \ No newline at end of file
diff --git a/testautomation/framework/optional/includes/basic_vba_compat_tools.inc b/testautomation/framework/optional/includes/basic_vba_compat_tools.inc
index 77437770891a..77437770891a 100755..100644
--- a/testautomation/framework/optional/includes/basic_vba_compat_tools.inc
+++ b/testautomation/framework/optional/includes/basic_vba_compat_tools.inc
diff --git a/testautomation/framework/optional/includes/extras_file_open.inc b/testautomation/framework/optional/includes/extras_file_open.inc
index 680afdd77197..680afdd77197 100755..100644
--- a/testautomation/framework/optional/includes/extras_file_open.inc
+++ b/testautomation/framework/optional/includes/extras_file_open.inc
diff --git a/testautomation/framework/optional/includes/extras_labels.inc b/testautomation/framework/optional/includes/extras_labels.inc
index 11badbd0ba07..11badbd0ba07 100755..100644
--- a/testautomation/framework/optional/includes/extras_labels.inc
+++ b/testautomation/framework/optional/includes/extras_labels.inc
diff --git a/testautomation/framework/optional/includes/extras_modify_objects.inc b/testautomation/framework/optional/includes/extras_modify_objects.inc
index b8cf23170942..b8cf23170942 100755..100644
--- a/testautomation/framework/optional/includes/extras_modify_objects.inc
+++ b/testautomation/framework/optional/includes/extras_modify_objects.inc
diff --git a/testautomation/framework/optional/includes/extras_preview.inc b/testautomation/framework/optional/includes/extras_preview.inc
index 8e1129bd5bf4..8e1129bd5bf4 100755..100644
--- a/testautomation/framework/optional/includes/extras_preview.inc
+++ b/testautomation/framework/optional/includes/extras_preview.inc
diff --git a/testautomation/framework/optional/includes/extras_table_autoformat.inc b/testautomation/framework/optional/includes/extras_table_autoformat.inc
index 2de2c491c528..2de2c491c528 100755..100644
--- a/testautomation/framework/optional/includes/extras_table_autoformat.inc
+++ b/testautomation/framework/optional/includes/extras_table_autoformat.inc
diff --git a/testautomation/framework/optional/includes/f_usage_tracking.inc b/testautomation/framework/optional/includes/f_usage_tracking.inc
index 7ea54855eb5d..7ea54855eb5d 100755..100644
--- a/testautomation/framework/optional/includes/f_usage_tracking.inc
+++ b/testautomation/framework/optional/includes/f_usage_tracking.inc
diff --git a/testautomation/framework/optional/includes/filedlg_allowed_names.inc b/testautomation/framework/optional/includes/filedlg_allowed_names.inc
index ce386758c255..ce386758c255 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_allowed_names.inc
+++ b/testautomation/framework/optional/includes/filedlg_allowed_names.inc
diff --git a/testautomation/framework/optional/includes/filedlg_autocomplete.inc b/testautomation/framework/optional/includes/filedlg_autocomplete.inc
index a289e0c6116e..a289e0c6116e 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_autocomplete.inc
+++ b/testautomation/framework/optional/includes/filedlg_autocomplete.inc
diff --git a/testautomation/framework/optional/includes/filedlg_cjk_files.inc b/testautomation/framework/optional/includes/filedlg_cjk_files.inc
index 19f508193a8d..19f508193a8d 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_cjk_files.inc
+++ b/testautomation/framework/optional/includes/filedlg_cjk_files.inc
diff --git a/testautomation/framework/optional/includes/filedlg_cjk_folders.inc b/testautomation/framework/optional/includes/filedlg_cjk_folders.inc
index cc6555b715a1..cc6555b715a1 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_cjk_folders.inc
+++ b/testautomation/framework/optional/includes/filedlg_cjk_folders.inc
diff --git a/testautomation/framework/optional/includes/filedlg_document_properties.inc b/testautomation/framework/optional/includes/filedlg_document_properties.inc
index 089a1d131338..089a1d131338 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_document_properties.inc
+++ b/testautomation/framework/optional/includes/filedlg_document_properties.inc
diff --git a/testautomation/framework/optional/includes/filedlg_filternames.inc b/testautomation/framework/optional/includes/filedlg_filternames.inc
index 6c41ef444b61..6c41ef444b61 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_filternames.inc
+++ b/testautomation/framework/optional/includes/filedlg_filternames.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders1.inc b/testautomation/framework/optional/includes/filedlg_folders1.inc
index 52d905876df3..52d905876df3 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders1.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders1.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders2.inc b/testautomation/framework/optional/includes/filedlg_folders2.inc
index 4e1a8684ba03..4e1a8684ba03 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders2.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders2.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders3.inc b/testautomation/framework/optional/includes/filedlg_folders3.inc
index 9219c3a76be6..9219c3a76be6 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders3.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders3.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders4.inc b/testautomation/framework/optional/includes/filedlg_folders4.inc
index 0e90c3b70d9d..0e90c3b70d9d 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders4.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders4.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders5.inc b/testautomation/framework/optional/includes/filedlg_folders5.inc
index 03ea63a34a35..03ea63a34a35 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders5.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders5.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders6.inc b/testautomation/framework/optional/includes/filedlg_folders6.inc
index dae5106793f9..dae5106793f9 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders6.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders6.inc
diff --git a/testautomation/framework/optional/includes/filedlg_folders7.inc b/testautomation/framework/optional/includes/filedlg_folders7.inc
index 1a971d1bdada..1a971d1bdada 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_folders7.inc
+++ b/testautomation/framework/optional/includes/filedlg_folders7.inc
diff --git a/testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc b/testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc
index 96cff87d3d04..96cff87d3d04 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc
+++ b/testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc
diff --git a/testautomation/framework/optional/includes/filedlg_multiselection.inc b/testautomation/framework/optional/includes/filedlg_multiselection.inc
index ed6fc3670db8..ed6fc3670db8 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_multiselection.inc
+++ b/testautomation/framework/optional/includes/filedlg_multiselection.inc
diff --git a/testautomation/framework/optional/includes/filedlg_passwords.inc b/testautomation/framework/optional/includes/filedlg_passwords.inc
index c8dd68effe83..c8dd68effe83 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_passwords.inc
+++ b/testautomation/framework/optional/includes/filedlg_passwords.inc
diff --git a/testautomation/framework/optional/includes/filedlg_rename.inc b/testautomation/framework/optional/includes/filedlg_rename.inc
index 513a652b8f36..513a652b8f36 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_rename.inc
+++ b/testautomation/framework/optional/includes/filedlg_rename.inc
diff --git a/testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc b/testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc
index 885dc6a92f2d..885dc6a92f2d 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc
+++ b/testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc
diff --git a/testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc b/testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc
index 4fba22fb9c8f..4fba22fb9c8f 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc
+++ b/testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc
diff --git a/testautomation/framework/optional/includes/filedlg_tools.inc b/testautomation/framework/optional/includes/filedlg_tools.inc
index b4781813c89e..b4781813c89e 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_tools.inc
+++ b/testautomation/framework/optional/includes/filedlg_tools.inc
diff --git a/testautomation/framework/optional/includes/filedlg_triggers.inc b/testautomation/framework/optional/includes/filedlg_triggers.inc
index 47913a327091..47913a327091 100755..100644
--- a/testautomation/framework/optional/includes/filedlg_triggers.inc
+++ b/testautomation/framework/optional/includes/filedlg_triggers.inc
diff --git a/testautomation/framework/optional/includes/fontworkgallery.inc b/testautomation/framework/optional/includes/fontworkgallery.inc
index 08fea775ba4e..08fea775ba4e 100755..100644
--- a/testautomation/framework/optional/includes/fontworkgallery.inc
+++ b/testautomation/framework/optional/includes/fontworkgallery.inc
diff --git a/testautomation/framework/optional/includes/help_bookmarks.inc b/testautomation/framework/optional/includes/help_bookmarks.inc
index c4aebad1af9d..c4aebad1af9d 100755..100644
--- a/testautomation/framework/optional/includes/help_bookmarks.inc
+++ b/testautomation/framework/optional/includes/help_bookmarks.inc
diff --git a/testautomation/framework/optional/includes/help_compare_applications.inc b/testautomation/framework/optional/includes/help_compare_applications.inc
index 240535bed85b..240535bed85b 100755..100644
--- a/testautomation/framework/optional/includes/help_compare_applications.inc
+++ b/testautomation/framework/optional/includes/help_compare_applications.inc
diff --git a/testautomation/framework/optional/includes/help_compare_content.inc b/testautomation/framework/optional/includes/help_compare_content.inc
index 15874b0bd758..15874b0bd758 100755..100644
--- a/testautomation/framework/optional/includes/help_compare_content.inc
+++ b/testautomation/framework/optional/includes/help_compare_content.inc
diff --git a/testautomation/framework/optional/includes/help_compare_topics.inc b/testautomation/framework/optional/includes/help_compare_topics.inc
index 75dd76625b88..75dd76625b88 100755..100644
--- a/testautomation/framework/optional/includes/help_compare_topics.inc
+++ b/testautomation/framework/optional/includes/help_compare_topics.inc
diff --git a/testautomation/framework/optional/includes/help_search.inc b/testautomation/framework/optional/includes/help_search.inc
index 2e37fe58562e..2e37fe58562e 100755..100644
--- a/testautomation/framework/optional/includes/help_search.inc
+++ b/testautomation/framework/optional/includes/help_search.inc
diff --git a/testautomation/framework/optional/includes/help_view_topics.inc b/testautomation/framework/optional/includes/help_view_topics.inc
index 6a729fe27679..6a729fe27679 100755..100644
--- a/testautomation/framework/optional/includes/help_view_topics.inc
+++ b/testautomation/framework/optional/includes/help_view_topics.inc
diff --git a/testautomation/framework/optional/includes/loadsave_files.inc b/testautomation/framework/optional/includes/loadsave_files.inc
index c7fd948b5df3..c7fd948b5df3 100755..100644
--- a/testautomation/framework/optional/includes/loadsave_files.inc
+++ b/testautomation/framework/optional/includes/loadsave_files.inc
diff --git a/testautomation/framework/optional/includes/loadsave_new.inc b/testautomation/framework/optional/includes/loadsave_new.inc
index 924646423031..924646423031 100755..100644
--- a/testautomation/framework/optional/includes/loadsave_new.inc
+++ b/testautomation/framework/optional/includes/loadsave_new.inc
diff --git a/testautomation/framework/optional/includes/menuentries.inc b/testautomation/framework/optional/includes/menuentries.inc
index 5c00a7cf34f1..5c00a7cf34f1 100755..100644
--- a/testautomation/framework/optional/includes/menuentries.inc
+++ b/testautomation/framework/optional/includes/menuentries.inc
diff --git a/testautomation/framework/optional/includes/ole_1.inc b/testautomation/framework/optional/includes/ole_1.inc
index a90d517620a1..a90d517620a1 100755..100644
--- a/testautomation/framework/optional/includes/ole_1.inc
+++ b/testautomation/framework/optional/includes/ole_1.inc
diff --git a/testautomation/framework/optional/includes/ole_2.inc b/testautomation/framework/optional/includes/ole_2.inc
index f2c679e84b6d..f2c679e84b6d 100755..100644
--- a/testautomation/framework/optional/includes/ole_2.inc
+++ b/testautomation/framework/optional/includes/ole_2.inc
diff --git a/testautomation/framework/optional/includes/ole_3.inc b/testautomation/framework/optional/includes/ole_3.inc
index 22cab57056f6..22cab57056f6 100755..100644
--- a/testautomation/framework/optional/includes/ole_3.inc
+++ b/testautomation/framework/optional/includes/ole_3.inc
diff --git a/testautomation/framework/optional/includes/ole_tools.inc b/testautomation/framework/optional/includes/ole_tools.inc
index 0428f758cb3d..0428f758cb3d 100755..100644
--- a/testautomation/framework/optional/includes/ole_tools.inc
+++ b/testautomation/framework/optional/includes/ole_tools.inc
diff --git a/testautomation/framework/optional/includes/options_asia.inc b/testautomation/framework/optional/includes/options_asia.inc
index 730d5a0e666f..730d5a0e666f 100755..100644
--- a/testautomation/framework/optional/includes/options_asia.inc
+++ b/testautomation/framework/optional/includes/options_asia.inc
diff --git a/testautomation/framework/optional/includes/options_data.inc b/testautomation/framework/optional/includes/options_data.inc
index ac4c3240c3f4..ac4c3240c3f4 100755..100644
--- a/testautomation/framework/optional/includes/options_data.inc
+++ b/testautomation/framework/optional/includes/options_data.inc
diff --git a/testautomation/framework/optional/includes/options_int1.inc b/testautomation/framework/optional/includes/options_int1.inc
index 76b989679c15..76b989679c15 100755..100644
--- a/testautomation/framework/optional/includes/options_int1.inc
+++ b/testautomation/framework/optional/includes/options_int1.inc
diff --git a/testautomation/framework/optional/includes/options_lan1.inc b/testautomation/framework/optional/includes/options_lan1.inc
index c3659cb68f14..c3659cb68f14 100755..100644
--- a/testautomation/framework/optional/includes/options_lan1.inc
+++ b/testautomation/framework/optional/includes/options_lan1.inc
diff --git a/testautomation/framework/optional/includes/options_loadsave_general.inc b/testautomation/framework/optional/includes/options_loadsave_general.inc
index 39885ffc2e3c..39885ffc2e3c 100755..100644
--- a/testautomation/framework/optional/includes/options_loadsave_general.inc
+++ b/testautomation/framework/optional/includes/options_loadsave_general.inc
diff --git a/testautomation/framework/optional/includes/options_loadsave_html.inc b/testautomation/framework/optional/includes/options_loadsave_html.inc
index 072f4f4dea24..072f4f4dea24 100755..100644
--- a/testautomation/framework/optional/includes/options_loadsave_html.inc
+++ b/testautomation/framework/optional/includes/options_loadsave_html.inc
diff --git a/testautomation/framework/optional/includes/options_loadsave_msoffice.inc b/testautomation/framework/optional/includes/options_loadsave_msoffice.inc
index b02f4778fd02..b02f4778fd02 100755..100644
--- a/testautomation/framework/optional/includes/options_loadsave_msoffice.inc
+++ b/testautomation/framework/optional/includes/options_loadsave_msoffice.inc
diff --git a/testautomation/framework/optional/includes/options_loadsave_vba.inc b/testautomation/framework/optional/includes/options_loadsave_vba.inc
index 3238f4de37d6..3238f4de37d6 100755..100644
--- a/testautomation/framework/optional/includes/options_loadsave_vba.inc
+++ b/testautomation/framework/optional/includes/options_loadsave_vba.inc
diff --git a/testautomation/framework/optional/includes/options_ls_2.inc b/testautomation/framework/optional/includes/options_ls_2.inc
index f3e9cee13250..f3e9cee13250 100755..100644
--- a/testautomation/framework/optional/includes/options_ls_2.inc
+++ b/testautomation/framework/optional/includes/options_ls_2.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_accessibility.inc b/testautomation/framework/optional/includes/options_ooo_accessibility.inc
index 93e389a67d69..93e389a67d69 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_accessibility.inc
+++ b/testautomation/framework/optional/includes/options_ooo_accessibility.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_appearance.inc b/testautomation/framework/optional/includes/options_ooo_appearance.inc
index afe8efa26be7..afe8efa26be7 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_appearance.inc
+++ b/testautomation/framework/optional/includes/options_ooo_appearance.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_colors.inc b/testautomation/framework/optional/includes/options_ooo_colors.inc
index ccf4b4642173..ccf4b4642173 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_colors.inc
+++ b/testautomation/framework/optional/includes/options_ooo_colors.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_fontreplacement.inc b/testautomation/framework/optional/includes/options_ooo_fontreplacement.inc
index d83be235b765..d83be235b765 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_fontreplacement.inc
+++ b/testautomation/framework/optional/includes/options_ooo_fontreplacement.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_general.inc b/testautomation/framework/optional/includes/options_ooo_general.inc
index 8197a4fe54d9..8197a4fe54d9 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_general.inc
+++ b/testautomation/framework/optional/includes/options_ooo_general.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_java.inc b/testautomation/framework/optional/includes/options_ooo_java.inc
index 4e8d39e124d9..4e8d39e124d9 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_java.inc
+++ b/testautomation/framework/optional/includes/options_ooo_java.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_memory.inc b/testautomation/framework/optional/includes/options_ooo_memory.inc
index 3f50fb90076d..3f50fb90076d 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_memory.inc
+++ b/testautomation/framework/optional/includes/options_ooo_memory.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_paths.inc b/testautomation/framework/optional/includes/options_ooo_paths.inc
index 692f538d6507..692f538d6507 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_paths.inc
+++ b/testautomation/framework/optional/includes/options_ooo_paths.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_print.inc b/testautomation/framework/optional/includes/options_ooo_print.inc
index 23cced8c737d..23cced8c737d 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_print.inc
+++ b/testautomation/framework/optional/includes/options_ooo_print.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_security.inc b/testautomation/framework/optional/includes/options_ooo_security.inc
index c3dece4de849..c3dece4de849 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_security.inc
+++ b/testautomation/framework/optional/includes/options_ooo_security.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_userdata.inc b/testautomation/framework/optional/includes/options_ooo_userdata.inc
index 9d5da5da6194..9d5da5da6194 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_userdata.inc
+++ b/testautomation/framework/optional/includes/options_ooo_userdata.inc
diff --git a/testautomation/framework/optional/includes/options_ooo_view.inc b/testautomation/framework/optional/includes/options_ooo_view.inc
index ff3ee7936751..ff3ee7936751 100755..100644
--- a/testautomation/framework/optional/includes/options_ooo_view.inc
+++ b/testautomation/framework/optional/includes/options_ooo_view.inc
diff --git a/testautomation/framework/optional/includes/scripting_basics.inc b/testautomation/framework/optional/includes/scripting_basics.inc
index 36f5ce44feec..36f5ce44feec 100755..100644
--- a/testautomation/framework/optional/includes/scripting_basics.inc
+++ b/testautomation/framework/optional/includes/scripting_basics.inc
diff --git a/testautomation/framework/optional/includes/scripting_organizers.inc b/testautomation/framework/optional/includes/scripting_organizers.inc
index b9b7dcebde7a..b9b7dcebde7a 100755..100644
--- a/testautomation/framework/optional/includes/scripting_organizers.inc
+++ b/testautomation/framework/optional/includes/scripting_organizers.inc
diff --git a/testautomation/framework/optional/includes/security_broken_signature.inc b/testautomation/framework/optional/includes/security_broken_signature.inc
index 3d7d822a9693..3d7d822a9693 100755..100644
--- a/testautomation/framework/optional/includes/security_broken_signature.inc
+++ b/testautomation/framework/optional/includes/security_broken_signature.inc
diff --git a/testautomation/framework/optional/includes/security_certification_dialogs.inc b/testautomation/framework/optional/includes/security_certification_dialogs.inc
index 2b645712cc02..2b645712cc02 100755..100644
--- a/testautomation/framework/optional/includes/security_certification_dialogs.inc
+++ b/testautomation/framework/optional/includes/security_certification_dialogs.inc
diff --git a/testautomation/framework/optional/includes/security_certified_docs.inc b/testautomation/framework/optional/includes/security_certified_docs.inc
index 59f74e809c6f..59f74e809c6f 100755..100644
--- a/testautomation/framework/optional/includes/security_certified_docs.inc
+++ b/testautomation/framework/optional/includes/security_certified_docs.inc
diff --git a/testautomation/framework/optional/includes/security_evilmacro1.inc b/testautomation/framework/optional/includes/security_evilmacro1.inc
index 7fb6ad1de02a..7fb6ad1de02a 100755..100644
--- a/testautomation/framework/optional/includes/security_evilmacro1.inc
+++ b/testautomation/framework/optional/includes/security_evilmacro1.inc
diff --git a/testautomation/framework/optional/includes/security_evilmacro2.inc b/testautomation/framework/optional/includes/security_evilmacro2.inc
index 00ae5ee0a938..00ae5ee0a938 100755..100644
--- a/testautomation/framework/optional/includes/security_evilmacro2.inc
+++ b/testautomation/framework/optional/includes/security_evilmacro2.inc
diff --git a/testautomation/framework/optional/includes/security_evilmacro3.inc b/testautomation/framework/optional/includes/security_evilmacro3.inc
index 1fb86e329088..1fb86e329088 100755..100644
--- a/testautomation/framework/optional/includes/security_evilmacro3.inc
+++ b/testautomation/framework/optional/includes/security_evilmacro3.inc
diff --git a/testautomation/framework/optional/includes/security_macrosecurity.inc b/testautomation/framework/optional/includes/security_macrosecurity.inc
index b996ff4a2cf8..b996ff4a2cf8 100755..100644
--- a/testautomation/framework/optional/includes/security_macrosecurity.inc
+++ b/testautomation/framework/optional/includes/security_macrosecurity.inc
diff --git a/testautomation/framework/optional/includes/security_recommend_password.inc b/testautomation/framework/optional/includes/security_recommend_password.inc
index eaceab3691b9..eaceab3691b9 100755..100644
--- a/testautomation/framework/optional/includes/security_recommend_password.inc
+++ b/testautomation/framework/optional/includes/security_recommend_password.inc
diff --git a/testautomation/framework/optional/includes/security_trusted_path.inc b/testautomation/framework/optional/includes/security_trusted_path.inc
index 679abdcc9be4..679abdcc9be4 100755..100644
--- a/testautomation/framework/optional/includes/security_trusted_path.inc
+++ b/testautomation/framework/optional/includes/security_trusted_path.inc
diff --git a/testautomation/framework/optional/includes/standardbar2.inc b/testautomation/framework/optional/includes/standardbar2.inc
index a4252179b198..a4252179b198 100755..100644
--- a/testautomation/framework/optional/includes/standardbar2.inc
+++ b/testautomation/framework/optional/includes/standardbar2.inc
diff --git a/testautomation/framework/optional/includes/toolbar_behavior.inc b/testautomation/framework/optional/includes/toolbar_behavior.inc
index 5f7357df7e31..5f7357df7e31 100755..100644
--- a/testautomation/framework/optional/includes/toolbar_behavior.inc
+++ b/testautomation/framework/optional/includes/toolbar_behavior.inc
diff --git a/testautomation/framework/optional/includes/w_grid_layout1.inc b/testautomation/framework/optional/includes/w_grid_layout1.inc
index 737cf850ad65..737cf850ad65 100755..100644
--- a/testautomation/framework/optional/includes/w_grid_layout1.inc
+++ b/testautomation/framework/optional/includes/w_grid_layout1.inc
diff --git a/testautomation/framework/optional/input/gridcontrol.odt b/testautomation/framework/optional/input/gridcontrol.odt
index b3e5c6fb40bb..46be0c44a065 100755
--- a/testautomation/framework/optional/input/gridcontrol.odt
+++ b/testautomation/framework/optional/input/gridcontrol.odt
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-application-union.xls b/testautomation/framework/optional/input/vba-compat/vba-application-union.xls
new file mode 100755
index 000000000000..b1f1be816b7b
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-application-union.xls
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-project.xlsb b/testautomation/framework/optional/input/vba-compat/vba-project.xlsb
new file mode 100755
index 000000000000..9fd88a8e545c
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-project.xlsb
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-project.xlsm b/testautomation/framework/optional/input/vba-compat/vba-project.xlsm
new file mode 100755
index 000000000000..6a8896e18599
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-project.xlsm
Binary files differ
diff --git a/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls b/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls
new file mode 100644
index 000000000000..f275fd9cca0e
--- /dev/null
+++ b/testautomation/framework/optional/input/vba-compat/vba-thisworkbook.xls
Binary files differ
diff --git a/testautomation/framework/required/includes/basic_dialog_export.inc b/testautomation/framework/required/includes/basic_dialog_export.inc
index 489a727545fe..489a727545fe 100755..100644
--- a/testautomation/framework/required/includes/basic_dialog_export.inc
+++ b/testautomation/framework/required/includes/basic_dialog_export.inc
diff --git a/testautomation/framework/required/includes/basic_dialog_i18n.inc b/testautomation/framework/required/includes/basic_dialog_i18n.inc
index bb1f0cf496ce..bb1f0cf496ce 100755..100644
--- a/testautomation/framework/required/includes/basic_dialog_i18n.inc
+++ b/testautomation/framework/required/includes/basic_dialog_i18n.inc
diff --git a/testautomation/framework/required/includes/basic_dialog_i18n_import.inc b/testautomation/framework/required/includes/basic_dialog_i18n_import.inc
index d4069484a0ab..d4069484a0ab 100755..100644
--- a/testautomation/framework/required/includes/basic_dialog_i18n_import.inc
+++ b/testautomation/framework/required/includes/basic_dialog_i18n_import.inc
diff --git a/testautomation/framework/required/includes/basic_macroassignment.inc b/testautomation/framework/required/includes/basic_macroassignment.inc
index 2db0c680967c..2db0c680967c 100755..100644
--- a/testautomation/framework/required/includes/basic_macroassignment.inc
+++ b/testautomation/framework/required/includes/basic_macroassignment.inc
diff --git a/testautomation/framework/required/includes/basic_organizer.inc b/testautomation/framework/required/includes/basic_organizer.inc
index eb33d3a554e3..eb33d3a554e3 100755..100644
--- a/testautomation/framework/required/includes/basic_organizer.inc
+++ b/testautomation/framework/required/includes/basic_organizer.inc
diff --git a/testautomation/framework/required/includes/first.inc b/testautomation/framework/required/includes/first.inc
index 0c0b737ffe5d..0c0b737ffe5d 100755..100644
--- a/testautomation/framework/required/includes/first.inc
+++ b/testautomation/framework/required/includes/first.inc
diff --git a/testautomation/framework/required/includes/graphics_import.inc b/testautomation/framework/required/includes/graphics_import.inc
index a2a92f961274..a2a92f961274 100755..100644
--- a/testautomation/framework/required/includes/graphics_import.inc
+++ b/testautomation/framework/required/includes/graphics_import.inc
diff --git a/testautomation/framework/required/includes/help_browser.inc b/testautomation/framework/required/includes/help_browser.inc
index 0b8b80bcbdaf..0b8b80bcbdaf 100755..100644
--- a/testautomation/framework/required/includes/help_browser.inc
+++ b/testautomation/framework/required/includes/help_browser.inc
diff --git a/testautomation/framework/required/includes/script_organizers.inc b/testautomation/framework/required/includes/script_organizers.inc
index feb72680c9c3..6d14b7f77f6e 100755
--- a/testautomation/framework/required/includes/script_organizers.inc
+++ b/testautomation/framework/required/includes/script_organizers.inc
@@ -32,21 +32,39 @@
'\******************************************************************************
testcase tUpdtScriptCount
+ dim sDialog as string
printlog( "Resource test for macros and scripts / related dialogs" )
const SCRIPTING_DIALOGS = 5
dim aScriptCount( SCRIPTING_DIALOGS )
+ ' JavaScript
aScriptCount( 1 ) = 10
+ ' BeanShell
aScriptCount( 2 ) = 14
- aScriptCount( 3 ) = 10
- if ( gOOo ) then
- aScriptCount( 4 ) = 585
- aScriptCount( 5 ) = 601
- else
- aScriptCount( 4 ) = 586
- aScriptCount( 5 ) = 602
- endif
+ if ( lcase( gPlatform ) = "osx" ) then
+ ' Python
+ aScriptCount( 3 ) = 8
+ else
+ ' Python
+ aScriptCount( 3 ) = 10
+ endif
+ if ( lcase( gPlatform ) = "osx" ) then
+ ' Run Macro
+ aScriptCount( 5 ) = 600
+ else
+ ' Run Macro
+ aScriptCount( 5 ) = 602
+ endif
+ if ( gOOo ) then
+ ' Makro Organizer
+ aScriptCount( 4 ) = 585
+ ' Run Macro
+ aScriptCount( 5 ) = aScriptCount( 5 ) - 1
+ else
+ ' Makro Organizer
+ aScriptCount( 4 ) = 586
+ endif
dim iCurrentDialog as integer
dim iCurrentScriptCount as integer
@@ -57,37 +75,39 @@ testcase tUpdtScriptCount
printlog( "" )
select case iCurrentDialog
- case 1: printlog( "JavaScript" )
+ case 1: sDialog = "JavaScript"
ToolsMacrosOrganizeMacrosJavaScript
kontext "ScriptOrganizer"
iCurrentScriptCount = hExpandAllNodes( ScriptTreeList )
ScriptOrganizer.cancel()
- case 2: printlog( "BeanShell" )
+ case 2: sDialog = "BeanShell"
ToolsMacrosOrganizeMacrosBeanShell
kontext "ScriptOrganizer"
iCurrentScriptCount = hExpandAllNodes( ScriptTreeList )
ScriptOrganizer.cancel()
- case 3: printlog( "Python" )
+ case 3: sDialog = "Python"
ToolsMacrosOrganizeMacrosPython
kontext "ScriptOrganizer"
iCurrentScriptCount = hExpandAllNodes( ScriptTreeList )
ScriptOrganizer.cancel()
- case 4: printlog( "Makro Organizer" )
+ case 4: sDialog = "Makro Organizer"
ToolsMacro_uno
Kontext "Makro"
hExpandAllNodes( MakroAus )
iCurrentScriptCount = hGetScriptCount( MakroAus, MakroListe )
Makro.close()
- case 5: printlog( "Run Macro" )
+ case 5: sDialog = "Run Macro"
ToolsMacrosRunMacro
kontext "ScriptSelector"
hExpandAllNodes( LibraryTreeList )
iCurrentScriptCount = hGetScriptCount( LibraryTreeList, ScriptList )
ScriptSelector.cancel()
end select
+
+ printlog sDialog
if ( aScriptCount( iCurrentDialog ) <> iCurrentScriptCount ) then
- warnlog( "Incorrect number of scripts for this dialog: " & iCurrentScriptCount )
+ warnlog( "Incorrect number of scripts for this dialog: '" + sDialog + "' expected:" + aScriptCount( iCurrentDialog ) + ", but is:" & iCurrentScriptCount )
else
printlog( "Number of scripts is ok" )
endif
@@ -95,7 +115,6 @@ testcase tUpdtScriptCount
next iCurrentDialog
hCloseDocument()
-
endcase
diff --git a/testautomation/framework/required/includes/security_dialogs.inc b/testautomation/framework/required/includes/security_dialogs.inc
index fec9900a28b8..fec9900a28b8 100755..100644
--- a/testautomation/framework/required/includes/security_dialogs.inc
+++ b/testautomation/framework/required/includes/security_dialogs.inc
diff --git a/testautomation/framework/required/includes/smoketest.inc b/testautomation/framework/required/includes/smoketest.inc
index dcff255d6c6c..dcff255d6c6c 100755..100644
--- a/testautomation/framework/required/includes/smoketest.inc
+++ b/testautomation/framework/required/includes/smoketest.inc
diff --git a/testautomation/framework/required/includes/standard_toolbar_1.inc b/testautomation/framework/required/includes/standard_toolbar_1.inc
index 4494d6a26cad..4494d6a26cad 100755..100644
--- a/testautomation/framework/required/includes/standard_toolbar_1.inc
+++ b/testautomation/framework/required/includes/standard_toolbar_1.inc
diff --git a/testautomation/framework/required/includes/standard_toolbar_3.inc b/testautomation/framework/required/includes/standard_toolbar_3.inc
index cbc08096b8a6..cbc08096b8a6 100755..100644
--- a/testautomation/framework/required/includes/standard_toolbar_3.inc
+++ b/testautomation/framework/required/includes/standard_toolbar_3.inc
diff --git a/testautomation/framework/required/includes/standard_toolbar_4.inc b/testautomation/framework/required/includes/standard_toolbar_4.inc
index d853e98d0b03..d853e98d0b03 100755..100644
--- a/testautomation/framework/required/includes/standard_toolbar_4.inc
+++ b/testautomation/framework/required/includes/standard_toolbar_4.inc
diff --git a/testautomation/framework/required/includes/standard_toolbar_5.inc b/testautomation/framework/required/includes/standard_toolbar_5.inc
index 76fa20d5dffa..76fa20d5dffa 100755..100644
--- a/testautomation/framework/required/includes/standard_toolbar_5.inc
+++ b/testautomation/framework/required/includes/standard_toolbar_5.inc
diff --git a/testautomation/framework/required/includes/standard_toolbar_6.inc b/testautomation/framework/required/includes/standard_toolbar_6.inc
index a72d8df3a36f..a72d8df3a36f 100755..100644
--- a/testautomation/framework/required/includes/standard_toolbar_6.inc
+++ b/testautomation/framework/required/includes/standard_toolbar_6.inc
diff --git a/testautomation/framework/required/includes/tools_customize.inc b/testautomation/framework/required/includes/tools_customize.inc
index 0db4af9fc487..0db4af9fc487 100755..100644
--- a/testautomation/framework/required/includes/tools_customize.inc
+++ b/testautomation/framework/required/includes/tools_customize.inc
diff --git a/testautomation/framework/required/includes/tools_options.inc b/testautomation/framework/required/includes/tools_options.inc
index 0b226db7e7b0..0b226db7e7b0 100755..100644
--- a/testautomation/framework/required/includes/tools_options.inc
+++ b/testautomation/framework/required/includes/tools_options.inc
diff --git a/testautomation/framework/required/includes/topten.inc b/testautomation/framework/required/includes/topten.inc
index 9aea2b0ab8b6..9aea2b0ab8b6 100755..100644
--- a/testautomation/framework/required/includes/topten.inc
+++ b/testautomation/framework/required/includes/topten.inc
diff --git a/testautomation/framework/required/includes/wizard_agenda.inc b/testautomation/framework/required/includes/wizard_agenda.inc
index b1b099e07c88..b1b099e07c88 100755..100644
--- a/testautomation/framework/required/includes/wizard_agenda.inc
+++ b/testautomation/framework/required/includes/wizard_agenda.inc
diff --git a/testautomation/framework/required/includes/wizard_documentconverter.inc b/testautomation/framework/required/includes/wizard_documentconverter.inc
index 7ba81116728b..7ba81116728b 100755..100644
--- a/testautomation/framework/required/includes/wizard_documentconverter.inc
+++ b/testautomation/framework/required/includes/wizard_documentconverter.inc
diff --git a/testautomation/framework/required/includes/wizard_euroconverter.inc b/testautomation/framework/required/includes/wizard_euroconverter.inc
index dd439ea4a3bd..dd439ea4a3bd 100755..100644
--- a/testautomation/framework/required/includes/wizard_euroconverter.inc
+++ b/testautomation/framework/required/includes/wizard_euroconverter.inc
diff --git a/testautomation/framework/required/includes/wizard_fax.inc b/testautomation/framework/required/includes/wizard_fax.inc
index 433a9bb7a593..433a9bb7a593 100755..100644
--- a/testautomation/framework/required/includes/wizard_fax.inc
+++ b/testautomation/framework/required/includes/wizard_fax.inc
diff --git a/testautomation/framework/required/includes/wizard_letter.inc b/testautomation/framework/required/includes/wizard_letter.inc
index 19afe2a96f90..19afe2a96f90 100755..100644
--- a/testautomation/framework/required/includes/wizard_letter.inc
+++ b/testautomation/framework/required/includes/wizard_letter.inc
diff --git a/testautomation/framework/required/includes/wizard_mailmerge.inc b/testautomation/framework/required/includes/wizard_mailmerge.inc
index d6dbe9ae826c..d6dbe9ae826c 100755..100644
--- a/testautomation/framework/required/includes/wizard_mailmerge.inc
+++ b/testautomation/framework/required/includes/wizard_mailmerge.inc
diff --git a/testautomation/framework/required/includes/wizard_presentation.inc b/testautomation/framework/required/includes/wizard_presentation.inc
index 2c06a00e1971..2c06a00e1971 100755..100644
--- a/testautomation/framework/required/includes/wizard_presentation.inc
+++ b/testautomation/framework/required/includes/wizard_presentation.inc
diff --git a/testautomation/framework/required/includes/wizard_webpage.inc b/testautomation/framework/required/includes/wizard_webpage.inc
index 6200079c8025..6200079c8025 100755..100644
--- a/testautomation/framework/required/includes/wizard_webpage.inc
+++ b/testautomation/framework/required/includes/wizard_webpage.inc
diff --git a/testautomation/framework/tools/includes/apicalls.inc b/testautomation/framework/tools/includes/apicalls.inc
index fca300c5eda7..fca300c5eda7 100755..100644
--- a/testautomation/framework/tools/includes/apicalls.inc
+++ b/testautomation/framework/tools/includes/apicalls.inc
diff --git a/testautomation/framework/tools/includes/arrayfuncs.inc b/testautomation/framework/tools/includes/arrayfuncs.inc
index df33885da4cd..df33885da4cd 100755..100644
--- a/testautomation/framework/tools/includes/arrayfuncs.inc
+++ b/testautomation/framework/tools/includes/arrayfuncs.inc
diff --git a/testautomation/framework/tools/includes/customize_tools.inc b/testautomation/framework/tools/includes/customize_tools.inc
index 2d6d17443913..2d6d17443913 100755..100644
--- a/testautomation/framework/tools/includes/customize_tools.inc
+++ b/testautomation/framework/tools/includes/customize_tools.inc
diff --git a/testautomation/framework/tools/includes/filedlg_tools.inc b/testautomation/framework/tools/includes/filedlg_tools.inc
index 68d46216ed4d..68d46216ed4d 100755..100644
--- a/testautomation/framework/tools/includes/filedlg_tools.inc
+++ b/testautomation/framework/tools/includes/filedlg_tools.inc
diff --git a/testautomation/framework/tools/includes/fileoperations.inc b/testautomation/framework/tools/includes/fileoperations.inc
index b8040eb5fbfb..b8040eb5fbfb 100755..100644
--- a/testautomation/framework/tools/includes/fileoperations.inc
+++ b/testautomation/framework/tools/includes/fileoperations.inc
diff --git a/testautomation/framework/tools/includes/formcontrols.inc b/testautomation/framework/tools/includes/formcontrols.inc
index 49c8dbaff943..49c8dbaff943 100755..100644
--- a/testautomation/framework/tools/includes/formcontrols.inc
+++ b/testautomation/framework/tools/includes/formcontrols.inc
diff --git a/testautomation/framework/tools/includes/help_tools.inc b/testautomation/framework/tools/includes/help_tools.inc
index ed55c319fd40..ed55c319fd40 100755..100644
--- a/testautomation/framework/tools/includes/help_tools.inc
+++ b/testautomation/framework/tools/includes/help_tools.inc
diff --git a/testautomation/framework/tools/includes/i18n_tools.inc b/testautomation/framework/tools/includes/i18n_tools.inc
index a2b65e12b736..a2b65e12b736 100755..100644
--- a/testautomation/framework/tools/includes/i18n_tools.inc
+++ b/testautomation/framework/tools/includes/i18n_tools.inc
diff --git a/testautomation/framework/tools/includes/init_tools.inc b/testautomation/framework/tools/includes/init_tools.inc
index e7b90fa75523..e7b90fa75523 100755..100644
--- a/testautomation/framework/tools/includes/init_tools.inc
+++ b/testautomation/framework/tools/includes/init_tools.inc
diff --git a/testautomation/framework/tools/includes/javatools.inc b/testautomation/framework/tools/includes/javatools.inc
index d5ac6fd36148..d5ac6fd36148 100755..100644
--- a/testautomation/framework/tools/includes/javatools.inc
+++ b/testautomation/framework/tools/includes/javatools.inc
diff --git a/testautomation/framework/tools/includes/options_tools.inc b/testautomation/framework/tools/includes/options_tools.inc
index baffbc968406..baffbc968406 100755..100644
--- a/testautomation/framework/tools/includes/options_tools.inc
+++ b/testautomation/framework/tools/includes/options_tools.inc
diff --git a/testautomation/framework/tools/includes/pbrowser_tools.inc b/testautomation/framework/tools/includes/pbrowser_tools.inc
index fefc739e48ea..fefc739e48ea 100755..100644
--- a/testautomation/framework/tools/includes/pbrowser_tools.inc
+++ b/testautomation/framework/tools/includes/pbrowser_tools.inc
diff --git a/testautomation/framework/tools/includes/performance.inc b/testautomation/framework/tools/includes/performance.inc
index 01d46d7df415..01d46d7df415 100755..100644
--- a/testautomation/framework/tools/includes/performance.inc
+++ b/testautomation/framework/tools/includes/performance.inc
diff --git a/testautomation/framework/tools/includes/private_environment.inc b/testautomation/framework/tools/includes/private_environment.inc
index 87cfab146f15..87cfab146f15 100755..100644
--- a/testautomation/framework/tools/includes/private_environment.inc
+++ b/testautomation/framework/tools/includes/private_environment.inc
diff --git a/testautomation/framework/tools/includes/scriptorganizer_tools.inc b/testautomation/framework/tools/includes/scriptorganizer_tools.inc
index e141448b5b79..e141448b5b79 100755..100644
--- a/testautomation/framework/tools/includes/scriptorganizer_tools.inc
+++ b/testautomation/framework/tools/includes/scriptorganizer_tools.inc
diff --git a/testautomation/framework/tools/includes/signature_tools.inc b/testautomation/framework/tools/includes/signature_tools.inc
index de9c56389eb0..de9c56389eb0 100755..100644
--- a/testautomation/framework/tools/includes/signature_tools.inc
+++ b/testautomation/framework/tools/includes/signature_tools.inc
diff --git a/testautomation/framework/tools/includes/spadmin_tools.inc b/testautomation/framework/tools/includes/spadmin_tools.inc
index f444b4821a5f..f444b4821a5f 100755..100644
--- a/testautomation/framework/tools/includes/spadmin_tools.inc
+++ b/testautomation/framework/tools/includes/spadmin_tools.inc
diff --git a/testautomation/framework/tools/includes/tabpages.inc b/testautomation/framework/tools/includes/tabpages.inc
index f22b8bd5a206..f22b8bd5a206 100755..100644
--- a/testautomation/framework/tools/includes/tabpages.inc
+++ b/testautomation/framework/tools/includes/tabpages.inc
diff --git a/testautomation/framework/tools/includes/template_tools.inc b/testautomation/framework/tools/includes/template_tools.inc
index 6363bae7aaf9..6363bae7aaf9 100755..100644
--- a/testautomation/framework/tools/includes/template_tools.inc
+++ b/testautomation/framework/tools/includes/template_tools.inc
diff --git a/testautomation/framework/tools/includes/toolbar_tools.inc b/testautomation/framework/tools/includes/toolbar_tools.inc
index e0952bfd9a2e..e0952bfd9a2e 100755..100644
--- a/testautomation/framework/tools/includes/toolbar_tools.inc
+++ b/testautomation/framework/tools/includes/toolbar_tools.inc
diff --git a/testautomation/framework/tools/includes/webtools.inc b/testautomation/framework/tools/includes/webtools.inc
index a56639a269e3..a56639a269e3 100755..100644
--- a/testautomation/framework/tools/includes/webtools.inc
+++ b/testautomation/framework/tools/includes/webtools.inc
diff --git a/testautomation/framework/tools/includes/window_tools.inc b/testautomation/framework/tools/includes/window_tools.inc
index bb8579edfba7..bb8579edfba7 100755..100644
--- a/testautomation/framework/tools/includes/window_tools.inc
+++ b/testautomation/framework/tools/includes/window_tools.inc
diff --git a/testautomation/framework/tools/includes/wizards.inc b/testautomation/framework/tools/includes/wizards.inc
index f8890f0e5a4f..f8890f0e5a4f 100755..100644
--- a/testautomation/framework/tools/includes/wizards.inc
+++ b/testautomation/framework/tools/includes/wizards.inc
diff --git a/testautomation/global/input/officeinfo.txt b/testautomation/global/input/officeinfo.txt
index 92b4e492740d..430e4141e3dd 100755..100644
--- a/testautomation/global/input/officeinfo.txt
+++ b/testautomation/global/input/officeinfo.txt
@@ -1,7 +1,5 @@
[Current program versions]
-StarOffice=9
-StarSuite=9
-OpenOffice.org=3.1
-BrOffice.org=3.1
-Oracle Open Office=3.2
+OpenOffice.org=3.3
+BrOffice.org=3.3
+Oracle Open Office=3.3
diff --git a/testautomation/global/required/includes/g_001.inc b/testautomation/global/required/includes/g_001.inc
index 3d22b6b8a1df..3d22b6b8a1df 100755..100644
--- a/testautomation/global/required/includes/g_001.inc
+++ b/testautomation/global/required/includes/g_001.inc
diff --git a/testautomation/global/required/includes/g_009.inc b/testautomation/global/required/includes/g_009.inc
index 1e6372bbdb7f..1e6372bbdb7f 100755..100644
--- a/testautomation/global/required/includes/g_009.inc
+++ b/testautomation/global/required/includes/g_009.inc
diff --git a/testautomation/global/required/includes/g_customize.inc b/testautomation/global/required/includes/g_customize.inc
index f2df48f3c552..f2df48f3c552 100755..100644
--- a/testautomation/global/required/includes/g_customize.inc
+++ b/testautomation/global/required/includes/g_customize.inc
diff --git a/testautomation/global/required/includes/g_findbar.inc b/testautomation/global/required/includes/g_findbar.inc
new file mode 100644
index 000000000000..38af3edd28aa
--- /dev/null
+++ b/testautomation/global/required/includes/g_findbar.inc
@@ -0,0 +1,159 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' 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.
+'
+'/************************************************************************
+'*
+'* owner : Joerg.Skottke@Sun.Com
+'*
+'* short description : Update test for the findbar
+'*
+'\***********************************************************************
+
+testcase tUpdtFindBar()
+
+ ' This test is incomplete. It needs to be integrated into all update tests
+ ' and it needs to be added to the toolbar management functions
+
+ printlog( "Update test for the findbar" )
+
+ const TEST_STRING = "VCL Testtool"
+
+ select case( gApplication )
+ case "IMPRESS", "DRAW", "DATABASE"
+ kontext "FindBar"
+ if ( FindBar.exists() ) then
+ warnlog( "The FindBar should not be visible by default" )
+ endif
+ end select
+
+ hNewDocument()
+
+ kontext "FindBar"
+ if ( FindBar.exists() ) then
+
+ printlog( "FindBar has " & FindBar.getItemCount() & " items" )
+
+ printlog( "Insert text into search field" )
+ FindText.setText( TEST_STRING )
+
+ printlog( "Click <Find next> (down arrow)" )
+ DownSearch.click()
+
+ kontext "Active"
+ if ( Active.exists( 1 ) ) then
+ printlog( "Expected message: " & Active.getText()
+ call DialogTest( Active )
+
+ kontext "Active"
+ Active.ok()
+ else
+ warnlog( "Messagebox missing <No matches found>" )
+ endif
+
+ printlog( "Click <Find last> (up arrow)" )
+ kontext "FindBar"
+ UpSearch.click()
+
+ kontext "Active"
+ if ( Active.exists( 1 ) ) then
+ printlog( "Expected message: " & Active.getText()
+ call DialogTest( Active )
+
+ kontext "Active"
+ Active.ok()
+ else
+ warnlog( "Messagebox missing <No matches found>" )
+ endif
+
+ warnlog( "#i111984 - exclude <SearchDialog> button from testing" )
+ goto skip_SearchDialog
+
+ printlog( "Search dialog button may not be visible by default" )
+ kontext "FindBar"
+ if ( SearchDialog.exists() ) then
+ if ( SearchDialog.isVisible() ) then
+ SearchDialog.click()
+ warnlog( "Button <Search Dialog> is visible, it should be hidden by default" )
+ else
+ printlog( "Button <Search Dialog> is hidden, good" )
+ endif
+ else
+ warnlog( "<Search Dialog> button should not be visible" )
+ endif
+
+ printlog( "Add <Search Dialog> button to toolbar" )
+ hToggleSearchDialog()
+
+ kontext "FindBar"
+ SearchDialog.click()
+
+ kontext "FindAndReplace"
+ if ( FindAndReplace.exists( 1 ) ) then
+ call DialogTest( FindAndReplace )
+
+ kontext "FindAndReplace"
+ if ( SearchFor.getSelText() = TEST_STRING ) then
+ printlog( "Test string has been inserted into <SearchFor> Listbox. Good." )
+ else
+ warnlog( "Search string should have been copied from findbar to search dialog" )
+ endif
+ FindAndReplace.close()
+ else
+ warnlog( "Dialog <Search And Replace> is missing" )
+ endif
+
+ printlog( "Remove <Search Dialog> button from toolbar" )
+ hToggleSearchDialog()
+
+ skip_SearchDialog:
+
+ else
+ warnlog( "FindBar is not visible" )
+ endif
+
+ hCloseDocument()
+
+endcase
+
+'*******************************************************************************
+
+function hToggleSearchDialog()
+
+ printlog( "Make button <Search Dialog> visible via context menu" )
+
+ const MENU_VISIBLE_BUTTONS = 1
+ const MENU_SEARCH_AND_REPLACE = 4
+
+ kontext "FindBar"
+ FindBar.openContextMenu()
+ wait( 1000 )
+
+ hMenuSelectNr( MENU_VISIBLE_BUTTONS )
+ wait( 1000 )
+
+ hMenuSelectNr( MENU_SEARCH_AND_REPLACE )
+ wait( 1000 )
+
+end function \ No newline at end of file
diff --git a/testautomation/global/required/includes/g_numberformatter1.inc b/testautomation/global/required/includes/g_numberformatter1.inc
index 6eb8191c4367..6eb8191c4367 100755..100644
--- a/testautomation/global/required/includes/g_numberformatter1.inc
+++ b/testautomation/global/required/includes/g_numberformatter1.inc
diff --git a/testautomation/global/required/includes/g_option.inc b/testautomation/global/required/includes/g_option.inc
index 3ff884d6be57..4ea25785b68c 100755
--- a/testautomation/global/required/includes/g_option.inc
+++ b/testautomation/global/required/includes/g_option.inc
@@ -502,21 +502,21 @@ testcase tToolsOptionsLanguageSettings
Optionen.TypeKeys "<Down>", 6
WaitSlot() ' similar effect as a NOOP
OptionenBearbeiten.Click
- Kontext "SilbentrennungOptionen"
- Call DialogTest ( SilbentrennungOptionen )
- SilbentrennungOptionen.Cancel
+ Kontext "HyphenationOptions"
+ Call DialogTest ( HyphenationOptions )
+ HyphenationOptions.Cancel
Kontext "TabLinguistik"
Optionen.TypeKeys "<Down>"
OptionenBearbeiten.Click
- Kontext "SilbentrennungOptionen"
- Call DialogTest ( SilbentrennungOptionen )
- SilbentrennungOptionen.Cancel
+ Kontext "HyphenationOptions"
+ Call DialogTest ( HyphenationOptions )
+ HyphenationOptions.Cancel
Kontext "TabLinguistik"
Optionen.TypeKeys "<Down>"
OptionenBearbeiten.Click
- Kontext "SilbentrennungOptionen"
- Call DialogTest ( SilbentrennungOptionen )
- SilbentrennungOptionen.Cancel
+ Kontext "HyphenationOptions"
+ Call DialogTest ( HyphenationOptions )
+ HyphenationOptions.Cancel
endif
case 3,5 :
try
diff --git a/testautomation/global/required/includes/g_option_application.inc b/testautomation/global/required/includes/g_option_application.inc
index 4fe4a6cb2cad..4fe4a6cb2cad 100755..100644
--- a/testautomation/global/required/includes/g_option_application.inc
+++ b/testautomation/global/required/includes/g_option_application.inc
diff --git a/testautomation/global/required/includes/g_printing.inc b/testautomation/global/required/includes/g_printing.inc
index a4ff969bcdf9..a4ff969bcdf9 100755..100644
--- a/testautomation/global/required/includes/g_printing.inc
+++ b/testautomation/global/required/includes/g_printing.inc
diff --git a/testautomation/global/sid/all.sid b/testautomation/global/sid/all.sid
index 8639bfa0f0b6..5ee1c157235f 100755..100644
--- a/testautomation/global/sid/all.sid
+++ b/testautomation/global/sid/all.sid
@@ -479,14 +479,12 @@ FormatAusrichtung SID_ALIGN
' ****
' **** Alle
ExtrasRechtschreibungAutomatisch SID_AUTOSPELL_CHECK
-ExtrasSilbentrennung FN_HYPHENATE_OPT_DLG
ExtrasAutoKorrektur SID_AUTO_CORRECT_DLG
ExtrasMakro SID_BASICCHOOSER
ExtrasAnpassen SID_CONFIG
ExtrasOptionen SID_OPTIONS_TREEDIALOG
' **** Writer
-ExtrasThesaurusWriter FN_THESAURUS_DLG
ExtrasKapitelnumerierung FN_NUMBERING_OUTLINE_DLG
ExtrasZeilennumerierung FN_LINE_NUMBERING_DLG
ExtrasSeitennummer FN_CHANGE_PAGENUM
@@ -505,7 +503,6 @@ ExtrasAktualisierenSeitenformatierung FN_REPAGINATE
ExtrasSeitenformatierung FN_REPAGINATE
' **** Calc
-ExtrasThesaurusCalc SID_THESAURUS
ExtrasDetektivAlleSpurenEntfernen SID_DETECTIVE_DEL_ALL
ExtrasDetektivFuellModus SID_DETECTIVE_FILLMODE
ExtrasDetektivSpurZumFehler SID_DETECTIVE_ADD_ERR
@@ -525,7 +522,6 @@ ExtrasAutoEingabe FID_AUTOCOMPLETE
' **** Draw / Impress
ExtrasThesaurusDraw SID_THESAURUS
-ExtrasSilbentrennungDraw SID_HYPHENATION
ExtrasPipette SID_BMPMASK
ExtrasDiawechsel .uno:SlideChangeWindow
ExtrasAnimation SID_ANIMATION_OBJECTS
diff --git a/testautomation/global/sid/e_all.sid b/testautomation/global/sid/e_all.sid
index de68cf13f79d..b9fa2d9c81e8 100755..100644
--- a/testautomation/global/sid/e_all.sid
+++ b/testautomation/global/sid/e_all.sid
@@ -256,7 +256,7 @@ ViewSnapLinesFront SID_HELPLINES_FRONT
ViewStatusBarVisible .uno:StatusBarVisible
ViewShowImeStatusWindow .uno:ShowImeStatusWindow
ViewShowRuler .uno:ShowRuler
-ViewTaskPane .uno:RightPane
+ViewTaskPane .uno:TaskPane
ViewTaskSlide .uno:LeftPaneImpress
ViewTitle SID_TITLE_MASTERPAGE
ViewToolbarsOptionbar .uno:AvailableToolbars?Toolbar:string=optionsbar
@@ -414,6 +414,9 @@ FormatStylesLoad SID_TEMPLATE_LOAD
FormatStylist SID_STYLE_DESIGNER
FormatControl SID_FM_CTL_PROPERTIES
FormatForm SID_FM_PROPERTIES
+FormatChangeCaseToSentence .uno:ChangeCaseToSentenceCase
+FormatChangeCaseCapitalizeEveryWord .uno:ChangeCaseToTitleCase
+FormatChangeCaseToggleCase .uno:ChangeCaseToToggleCase
FormatChangeCaseUpper .uno:ChangeCaseToUpper
FormatChangeCaseLower .uno:ChangeCaseToLower
FormatChangeCaseHalfWidth .uno:ChangeCaseToHalfWidth
@@ -734,13 +737,13 @@ ToolsUpdateAllIndexes FN_UPDATE_TOX
ToolsBibliographyDatabase SID_COMP_BIBLIOGRAPHY
ToolsWordCount FN_WORDCOUNT_DIALOG
TableTableProperties .uno:TableDialog
+ToolsLanguageHyphenation FN_HYPHENATE_OPT_DLG
' **** WriterWeb
ToolsPageFormatting FN_REPAGINATE
' **** Calc
ToolsSpellcheckAutoCheckCalc SID_AUTOSPELL_CHECK
-ToolsLanguageThesaurusCalc .uno:Thesaurus
ToolsLanguageHyphenateCalc .uno:Hyphenate
ToolsDetectiveRemoveAllTraces SID_DETECTIVE_DEL_ALL
ToolsDetectiveFillMode SID_DETECTIVE_FILLMODE
@@ -766,6 +769,7 @@ ToolsGallery .uno:Gallery
ToolsEyedropper SID_BMPMASK
ToolsMediaPlayer .uno:AVMediaPlayer
ToolsChineseTranslation .uno:ChineseConversion
+ToolsLanguageHyphenationDraw SID_HYPHENATION
' **** Math
ToolsSymbolsCatalog SID_SYMBOLS_CATALOGUE
diff --git a/testautomation/global/system/includes/declare.inc b/testautomation/global/system/includes/declare.inc
index 97ef228a8118..97ef228a8118 100755..100644
--- a/testautomation/global/system/includes/declare.inc
+++ b/testautomation/global/system/includes/declare.inc
diff --git a/testautomation/global/system/includes/inivalue.inc b/testautomation/global/system/includes/inivalue.inc
index e73aa240fef5..e73aa240fef5 100755..100644
--- a/testautomation/global/system/includes/inivalue.inc
+++ b/testautomation/global/system/includes/inivalue.inc
diff --git a/testautomation/global/system/includes/sysinfo.inc b/testautomation/global/system/includes/sysinfo.inc
index f6b7ba369b1f..f6b7ba369b1f 100755..100644
--- a/testautomation/global/system/includes/sysinfo.inc
+++ b/testautomation/global/system/includes/sysinfo.inc
diff --git a/testautomation/global/tools/includes/optional/t_accels.inc b/testautomation/global/tools/includes/optional/t_accels.inc
index 4d04afaf3554..4d04afaf3554 100755..100644
--- a/testautomation/global/tools/includes/optional/t_accels.inc
+++ b/testautomation/global/tools/includes/optional/t_accels.inc
diff --git a/testautomation/global/tools/includes/optional/t_basic_ide_tools.inc b/testautomation/global/tools/includes/optional/t_basic_ide_tools.inc
index c13cb2ac1a04..c13cb2ac1a04 100755..100644
--- a/testautomation/global/tools/includes/optional/t_basic_ide_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_basic_ide_tools.inc
diff --git a/testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc b/testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc
index cb348d3c1c3f..cb348d3c1c3f 100755..100644
--- a/testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc
diff --git a/testautomation/global/tools/includes/optional/t_control_objects.inc b/testautomation/global/tools/includes/optional/t_control_objects.inc
index 00bafbf04ed5..00bafbf04ed5 100755..100644
--- a/testautomation/global/tools/includes/optional/t_control_objects.inc
+++ b/testautomation/global/tools/includes/optional/t_control_objects.inc
diff --git a/testautomation/global/tools/includes/optional/t_ctrl_1.inc b/testautomation/global/tools/includes/optional/t_ctrl_1.inc
index d7fd3ac42f81..d7fd3ac42f81 100755..100644
--- a/testautomation/global/tools/includes/optional/t_ctrl_1.inc
+++ b/testautomation/global/tools/includes/optional/t_ctrl_1.inc
diff --git a/testautomation/global/tools/includes/optional/t_ctrl_2.inc b/testautomation/global/tools/includes/optional/t_ctrl_2.inc
index 498f6f9f33ce..498f6f9f33ce 100755..100644
--- a/testautomation/global/tools/includes/optional/t_ctrl_2.inc
+++ b/testautomation/global/tools/includes/optional/t_ctrl_2.inc
diff --git a/testautomation/global/tools/includes/optional/t_docfuncs.inc b/testautomation/global/tools/includes/optional/t_docfuncs.inc
index 75aacf2e11e9..75aacf2e11e9 100755..100644
--- a/testautomation/global/tools/includes/optional/t_docfuncs.inc
+++ b/testautomation/global/tools/includes/optional/t_docfuncs.inc
diff --git a/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc b/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
index c231e6a798e6..ee4d7f55beba 100755
--- a/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_extension_manager_tools.inc
@@ -79,6 +79,7 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
'///+<li>-4 = Unknown messagebox before the file Open dialog exists</li>
'///+<li>-5 = Broken dependency warning displayed</li>
'///+<li>-6 = The File Open dialog did not pop up</li>
+ '///+<li>-7 = Unknown and unhandled messagebox. function exit</li>
'///</ul>
'///</ol>
@@ -100,6 +101,7 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
'///+<li>Verify that the requested extension exists (filesystem level)</li>
if ( not FileExists( path ) ) then
printlog( CFN & "Requested extension does not exist" )
+ printlog( CFN & path )
hExtensionAddGUI() = -1
exit function
endif
@@ -233,6 +235,8 @@ function hExtensionAddGUI( _path as string, _flags as string ) as integer
else
printlog( CFN & "Unexpected/unknown dialog displayed" )
printlog( Active.getText() )
+ hExtensionAddGUI() = -7
+ exit function
endif
else
if ( instr( flags , "noupdate" ) <> 0 ) then
diff --git a/testautomation/global/tools/includes/optional/t_filetools.inc b/testautomation/global/tools/includes/optional/t_filetools.inc
index 76cbb35b153c..76cbb35b153c 100755..100644
--- a/testautomation/global/tools/includes/optional/t_filetools.inc
+++ b/testautomation/global/tools/includes/optional/t_filetools.inc
diff --git a/testautomation/global/tools/includes/optional/t_key_tools.inc b/testautomation/global/tools/includes/optional/t_key_tools.inc
index 9bf994824cc9..9bf994824cc9 100755..100644
--- a/testautomation/global/tools/includes/optional/t_key_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_key_tools.inc
diff --git a/testautomation/global/tools/includes/optional/t_listfuncs.inc b/testautomation/global/tools/includes/optional/t_listfuncs.inc
index 2e9b6e20e1a3..2e9b6e20e1a3 100755..100644
--- a/testautomation/global/tools/includes/optional/t_listfuncs.inc
+++ b/testautomation/global/tools/includes/optional/t_listfuncs.inc
diff --git a/testautomation/global/tools/includes/optional/t_locale_tools.inc b/testautomation/global/tools/includes/optional/t_locale_tools.inc
index 83a80ad0d107..83a80ad0d107 100755..100644
--- a/testautomation/global/tools/includes/optional/t_locale_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_locale_tools.inc
diff --git a/testautomation/global/tools/includes/optional/t_macro_tools.inc b/testautomation/global/tools/includes/optional/t_macro_tools.inc
index 825a1f98bef2..825a1f98bef2 100755..100644
--- a/testautomation/global/tools/includes/optional/t_macro_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_macro_tools.inc
diff --git a/testautomation/global/tools/includes/optional/t_ole.inc b/testautomation/global/tools/includes/optional/t_ole.inc
index 28268ef5394e..28268ef5394e 100755..100644
--- a/testautomation/global/tools/includes/optional/t_ole.inc
+++ b/testautomation/global/tools/includes/optional/t_ole.inc
diff --git a/testautomation/global/tools/includes/optional/t_proxy_info.inc b/testautomation/global/tools/includes/optional/t_proxy_info.inc
index 90fe1cfe3e48..90fe1cfe3e48 100755..100644
--- a/testautomation/global/tools/includes/optional/t_proxy_info.inc
+++ b/testautomation/global/tools/includes/optional/t_proxy_info.inc
diff --git a/testautomation/global/tools/includes/optional/t_server_info.inc b/testautomation/global/tools/includes/optional/t_server_info.inc
index 75ff6ab8a8b4..75ff6ab8a8b4 100755..100644
--- a/testautomation/global/tools/includes/optional/t_server_info.inc
+++ b/testautomation/global/tools/includes/optional/t_server_info.inc
diff --git a/testautomation/global/tools/includes/optional/t_set_standard_controls.inc b/testautomation/global/tools/includes/optional/t_set_standard_controls.inc
index bcc8cda10e5b..bcc8cda10e5b 100755..100644
--- a/testautomation/global/tools/includes/optional/t_set_standard_controls.inc
+++ b/testautomation/global/tools/includes/optional/t_set_standard_controls.inc
diff --git a/testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc b/testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc
index cdc0eae38540..cdc0eae38540 100755..100644
--- a/testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc
+++ b/testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc
diff --git a/testautomation/global/tools/includes/optional/t_stringtools.inc b/testautomation/global/tools/includes/optional/t_stringtools.inc
index 0fc34d89ecf6..0fc34d89ecf6 100755..100644
--- a/testautomation/global/tools/includes/optional/t_stringtools.inc
+++ b/testautomation/global/tools/includes/optional/t_stringtools.inc
diff --git a/testautomation/global/tools/includes/optional/t_toolbar_calc.inc b/testautomation/global/tools/includes/optional/t_toolbar_calc.inc
index 30c2b7e7e11c..30c2b7e7e11c 100755..100644
--- a/testautomation/global/tools/includes/optional/t_toolbar_calc.inc
+++ b/testautomation/global/tools/includes/optional/t_toolbar_calc.inc
diff --git a/testautomation/global/tools/includes/optional/t_toolbar_impress.inc b/testautomation/global/tools/includes/optional/t_toolbar_impress.inc
index 433c83f23515..433c83f23515 100755..100644
--- a/testautomation/global/tools/includes/optional/t_toolbar_impress.inc
+++ b/testautomation/global/tools/includes/optional/t_toolbar_impress.inc
diff --git a/testautomation/global/tools/includes/optional/t_toolbar_writer.inc b/testautomation/global/tools/includes/optional/t_toolbar_writer.inc
index dea5fe027a63..dea5fe027a63 100755..100644
--- a/testautomation/global/tools/includes/optional/t_toolbar_writer.inc
+++ b/testautomation/global/tools/includes/optional/t_toolbar_writer.inc
diff --git a/testautomation/global/tools/includes/optional/t_treelist_tools.inc b/testautomation/global/tools/includes/optional/t_treelist_tools.inc
index b459b2c0f4a0..36cfe7370901 100755
--- a/testautomation/global/tools/includes/optional/t_treelist_tools.inc
+++ b/testautomation/global/tools/includes/optional/t_treelist_tools.inc
@@ -356,6 +356,16 @@ function hSelectNodeByName( oControl as object , _name as string ) as integer
iThisNode = iCurrentNode
exit for
endif
+
+ if ( instr( cNodeName, _name ) > 0 ) then
+ if ( instr( cNodeName, "(" ) > 0 ) then
+ printlog( CFN & "Node has readonly marker" )
+ iThisNode = iCurrentNode
+ exit for
+ else
+ qaerrorlog( CFN & "Fuzzy match. This might or might not be the correct node" )
+ endif
+ endif
next iCurrentNode
endcatch
diff --git a/testautomation/global/tools/includes/optional/t_ui_filters.inc b/testautomation/global/tools/includes/optional/t_ui_filters.inc
index 0b22b8a94141..0b22b8a94141 100755..100644
--- a/testautomation/global/tools/includes/optional/t_ui_filters.inc
+++ b/testautomation/global/tools/includes/optional/t_ui_filters.inc
diff --git a/testautomation/global/tools/includes/optional/t_user_info.inc b/testautomation/global/tools/includes/optional/t_user_info.inc
index eed58aa7d530..eed58aa7d530 100755..100644
--- a/testautomation/global/tools/includes/optional/t_user_info.inc
+++ b/testautomation/global/tools/includes/optional/t_user_info.inc
diff --git a/testautomation/global/tools/includes/optional/t_xml1.inc b/testautomation/global/tools/includes/optional/t_xml1.inc
index e84dad7ddf47..e84dad7ddf47 100755..100644
--- a/testautomation/global/tools/includes/optional/t_xml1.inc
+++ b/testautomation/global/tools/includes/optional/t_xml1.inc
diff --git a/testautomation/global/tools/includes/optional/t_xml2.inc b/testautomation/global/tools/includes/optional/t_xml2.inc
index 93bd725dbc38..93bd725dbc38 100755..100644
--- a/testautomation/global/tools/includes/optional/t_xml2.inc
+++ b/testautomation/global/tools/includes/optional/t_xml2.inc
diff --git a/testautomation/global/tools/includes/optional/t_xml_filter1.inc b/testautomation/global/tools/includes/optional/t_xml_filter1.inc
index e82b7f17553f..e82b7f17553f 100755..100644
--- a/testautomation/global/tools/includes/optional/t_xml_filter1.inc
+++ b/testautomation/global/tools/includes/optional/t_xml_filter1.inc
diff --git a/testautomation/global/tools/includes/required/t_dir.inc b/testautomation/global/tools/includes/required/t_dir.inc
index 0c7d887825f7..0c7d887825f7 100755..100644
--- a/testautomation/global/tools/includes/required/t_dir.inc
+++ b/testautomation/global/tools/includes/required/t_dir.inc
diff --git a/testautomation/global/tools/includes/required/t_dirloc.inc b/testautomation/global/tools/includes/required/t_dirloc.inc
index d8bef397c74b..d8bef397c74b 100755..100644
--- a/testautomation/global/tools/includes/required/t_dirloc.inc
+++ b/testautomation/global/tools/includes/required/t_dirloc.inc
diff --git a/testautomation/global/tools/includes/required/t_doc1.inc b/testautomation/global/tools/includes/required/t_doc1.inc
index ed74336dfc72..ed74336dfc72 100755..100644
--- a/testautomation/global/tools/includes/required/t_doc1.inc
+++ b/testautomation/global/tools/includes/required/t_doc1.inc
diff --git a/testautomation/global/tools/includes/required/t_files.inc b/testautomation/global/tools/includes/required/t_files.inc
index 0736de15debf..0736de15debf 100755..100644
--- a/testautomation/global/tools/includes/required/t_files.inc
+++ b/testautomation/global/tools/includes/required/t_files.inc
diff --git a/testautomation/global/tools/includes/required/t_filters.inc b/testautomation/global/tools/includes/required/t_filters.inc
index 21ba12af5363..21ba12af5363 100755..100644
--- a/testautomation/global/tools/includes/required/t_filters.inc
+++ b/testautomation/global/tools/includes/required/t_filters.inc
diff --git a/testautomation/global/tools/includes/required/t_lists.inc b/testautomation/global/tools/includes/required/t_lists.inc
index 3819a21097b0..3819a21097b0 100755..100644
--- a/testautomation/global/tools/includes/required/t_lists.inc
+++ b/testautomation/global/tools/includes/required/t_lists.inc
diff --git a/testautomation/global/tools/includes/required/t_option.inc b/testautomation/global/tools/includes/required/t_option.inc
index b94d4a028833..b94d4a028833 100755..100644
--- a/testautomation/global/tools/includes/required/t_option.inc
+++ b/testautomation/global/tools/includes/required/t_option.inc
diff --git a/testautomation/global/tools/includes/required/t_option2.inc b/testautomation/global/tools/includes/required/t_option2.inc
index 174048985c59..174048985c59 100755..100644
--- a/testautomation/global/tools/includes/required/t_option2.inc
+++ b/testautomation/global/tools/includes/required/t_option2.inc
diff --git a/testautomation/global/tools/includes/required/t_tools1.inc b/testautomation/global/tools/includes/required/t_tools1.inc
index a908af39e5af..a908af39e5af 100755..100644
--- a/testautomation/global/tools/includes/required/t_tools1.inc
+++ b/testautomation/global/tools/includes/required/t_tools1.inc
diff --git a/testautomation/global/tools/includes/required/t_tools2.inc b/testautomation/global/tools/includes/required/t_tools2.inc
index 2301c2e5648f..2301c2e5648f 100755..100644
--- a/testautomation/global/tools/includes/required/t_tools2.inc
+++ b/testautomation/global/tools/includes/required/t_tools2.inc
diff --git a/testautomation/global/tools/includes/required/t_tools3.inc b/testautomation/global/tools/includes/required/t_tools3.inc
index b55546edd8d6..b55546edd8d6 100755..100644
--- a/testautomation/global/tools/includes/required/t_tools3.inc
+++ b/testautomation/global/tools/includes/required/t_tools3.inc
diff --git a/testautomation/global/win/bars.win b/testautomation/global/win/bars.win
index dd65f825893d..525be7d897ca 100755
--- a/testautomation/global/win/bars.win
+++ b/testautomation/global/win/bars.win
@@ -356,6 +356,13 @@ ExtrusionLightingFloater .uno:ExtrusionLightingFloater
ExtrusionSurfaceFloater .uno:ExtrusionSurfaceFloater
Extrusion3DColor .uno:Extrusion3DColor
'-------------------------------------------------------------------------
+*FindBar .HelpId:findbar
+'-------------------------------------------------------------------------
+FindText .uno:FindText
+DownSearch .uno:DownSearch
+UpSearch .uno:UpSearch
+SearchDialog .uno:SearchDialog
+'-------------------------------------------------------------------------
*Flowchart .HelpId:flowchartshapes
'-------------------------------------------------------------------------
Process .uno:FlowChartShapes.flowchart-process
diff --git a/testautomation/global/win/dial_d_h.win b/testautomation/global/win/dial_d_h.win
index 1540dbd8743f..ab6183ad7724 100755
--- a/testautomation/global/win/dial_d_h.win
+++ b/testautomation/global/win/dial_d_h.win
@@ -483,6 +483,12 @@ Gruppenliste HID_TEMPLATE_FILTER
Interlace filter:CheckBox:DLG_EXPORT_GIF:CBX_INTERLACED
TransparentSpeichern filter:CheckBox:DLG_EXPORT_GIF:CBX_TRANSLUCENT
+*GridControlDialogStarter ACTIVE
+ShowGridcontrol sym:showGridcontrol
+
+*GridControlDialog sym:gridcontroldialog
+gridcontrolcontrol sym:gridcontrolself
+
*GroupingDlg HID_SC_DPDATEGROUP
AutoStart sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_AUTOSTART
ManualStart sc:RadioButton:RID_SCDLG_DPNUMGROUP:RB_MANSTART
diff --git a/testautomation/global/win/dial_p_s.win b/testautomation/global/win/dial_p_s.win
index 6f76fe17b2bd..accef3714a3b 100755
--- a/testautomation/global/win/dial_p_s.win
+++ b/testautomation/global/win/dial_p_s.win
@@ -231,16 +231,6 @@ FormatRTF sw:CheckBox:DLG_MAILMERGE:CB_FORMAT_RTF
FormatStarWriter sw:CheckBox:DLG_MAILMERGE:CB_FORMAT_SW
Datenbankfeldliste sw:ListBox:DLG_MAILMERGE:LB_COLUMN
-*Silbentrennung HID_HYPHENATE svx:ModalDialog:RID_SVXDLG_HYPHENATE
-Wort cui:Edit:RID_SVXDLG_HYPHENATE:ED_WORD
-Vor cui:ImageButton:RID_SVXDLG_HYPHENATE:BTN_LEFT
-Zurueck cui:ImageButton:RID_SVXDLG_HYPHENATE:BTN_RIGHT
-Weiter cui:PushButton:RID_SVXDLG_HYPHENATE:BTN_HYPH_CONTINUE
-Entfernen cui:PushButton:RID_SVXDLG_HYPHENATE:BTN_HYPH_DELETE
-
-*SilbentrennungOptionen HID_LNGDLG_NUM_PREBREAK
-ZeichenVorUmbruch cui:NumericField:RID_SVXDLG_LNG_ED_NUM_PREBREAK:ED_PREBREAK
-
*Sonderzeichen SID_CHARMAP
Schrift cui:ListBox:RID_SVXDLG_CHARMAP:LB_FONT
SchriftListe HID_CHARMAP_CTL_SHOWSET
@@ -341,9 +331,6 @@ Zusaetze sc:MoreButton:RID_SCDLG_SPEC_FILTER:BTN_MORE
FilterkriterienMin sc:ImageButton:RID_SCDLG_SPEC_FILTER:RB_CRITERIA_AREA
FilterergebnisMin sc:ImageButton:RID_SCDLG_SPEC_FILTER:RB_COPY_AREA
-*SpracheAuswaehlen HID_THES_LANGUAGE
-Auswahl cui:ListBox:RID_SVXDLG_THES_LANGUAGE:LB_THES_LANGUAGE
-
*StandardFilter SID_FILTER
FeldName1 sc:ListBox:RID_SCDLG_FILTER:LB_FIELD1
Feldname2 sc:ListBox:RID_SCDLG_FILTER:LB_FIELD2
diff --git a/testautomation/global/win/dial_t_z.win b/testautomation/global/win/dial_t_z.win
index c37ad2512873..1f317fd412da 100755
--- a/testautomation/global/win/dial_t_z.win
+++ b/testautomation/global/win/dial_t_z.win
@@ -125,14 +125,6 @@ Umrandung sw:CheckBox:DLG_CONV_TEXT_TABLE:CB_BORDER
Textmarken sw:ComboBox:DLG_INSERT_BOOKMARK:CB_BOOKMARK
Loeschen sw:PushButton:DLG_INSERT_BOOKMARK:BT_DELETE
-*Thesaurus SID_THESAURUS
-Wort cui:ListBox:RID_SVXDLG_THESAURUS:LB_WORD
-Ersetzen cui:Edit:RID_SVXDLG_THESAURUS:ED_REPL
-Bedeutung cui:ListBox:RID_SVXDLG_THESAURUS:LB_MEAN
-Synonym cui:ListBox:RID_SVXDLG_THESAURUS:LB_SYNON
-Nachschlagen cui:PushButton:RID_SVXDLG_THESAURUS:BTN_LOOKUP
-Sprache cui:PushButton:RID_SVXDLG_THESAURUS:BTN_LANGUAGE
-
*Ueberblenden SID_POLYGON_MORPHING
Attributierung sd:CheckBox:DLG_MORPH:CBX_ATTRIBUTES
GleicheOrientierung sd:CheckBox:DLG_MORPH:CBX_ORIENTATION
@@ -170,10 +162,6 @@ Vorschau sd:PushButton:DLG_VECTORIZE:BTN_PREVIEW
*UndoRedoBox HID_SVXTBX_UNDO_REDO_CTRL
UndoRedoList svx:ListBox:RID_SVXTBX_UNDO_REDO_CTRL:LB_SVXTBX_UNDO_REDO_CTRL
-*UrlOeffnen sfx2:ModalDialog:RID_URLOPEN
-URL sfx2:Edit:RID_URLOPEN:RID_URLOPEN_URL
-URLText sfx2:Edit:RID_URLOPEN:RID_URLOPEN_URL
-
*Verbinder HID_PAGE_CONNECTION SVX:TABPAGE:RID_SVXPAGE_CONNECTION
Linie1 cui:METRICFIELD:RID_SVXPAGE_CONNECTION:MTR_FLD_LINE_1
Linie2 cui:METRICFIELD:RID_SVXPAGE_CONNECTION:MTR_FLD_LINE_2
diff --git a/testautomation/global/win/edia_d_h.win b/testautomation/global/win/edia_d_h.win
index 0e2fd251d285..2829054eba2d 100755
--- a/testautomation/global/win/edia_d_h.win
+++ b/testautomation/global/win/edia_d_h.win
@@ -481,8 +481,20 @@ Suggestion4 cui:Edit:RID_SVX_MDLG_HANGULHANJA_EDIT:ED_4
NewEntry cui:PushButton:RID_SVX_MDLG_HANGULHANJA_EDIT:PB_HHE_NEW
DeleteEntry cui:PushButton:RID_SVX_MDLG_HANGULHANJA_EDIT:PB_HHE_DELETE
+*Hyphenation HID_HYPHENATE svx:ModalDialog:RID_SVXDLG_HYPHENATE
+Wort cui:Edit:RID_SVXDLG_HYPHENATE:ED_WORD
+Vor cui:ImageButton:RID_SVXDLG_HYPHENATE:BTN_LEFT
+Zurueck cui:ImageButton:RID_SVXDLG_HYPHENATE:BTN_RIGHT
+Weiter cui:PushButton:RID_SVXDLG_HYPHENATE:BTN_HYPH_CONTINUE
+Entfernen cui:PushButton:RID_SVXDLG_HYPHENATE:BTN_HYPH_DELETE
+HyphenateAll cui:PushButton:RID_SVXDLG_HYPHENATE:BTN_HYPH_ALL
+
+*HyphenationOptions HID_LNGDLG_NUM_PREBREAK
+ZeichenVorUmbruch cui:NumericField:RID_SVXDLG_LNG_ED_NUM_PREBREAK:ED_PREBREAK
+
*HTMLImportOptions sc:ModalDialog:RID_SCDLG_TEXT_IMPORT_OPTIONS
Automatic sc:RadioButton:RID_SCDLG_TEXT_IMPORT_OPTIONS:RB_AUTOMATIC
Custom sc:RadioButton:RID_SCDLG_TEXT_IMPORT_OPTIONS:RB_CUSTOM
CustomLanguage sc:ListBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:LB_CUSTOM_LANG
DetectSpecialNumbers sc:CheckBox:RID_SCDLG_TEXT_IMPORT_OPTIONS:BTN_CONVERT_DATE
+
diff --git a/testautomation/global/win/edia_t_z.win b/testautomation/global/win/edia_t_z.win
index a53038e79394..670a872ac657 100755
--- a/testautomation/global/win/edia_t_z.win
+++ b/testautomation/global/win/edia_t_z.win
@@ -2,7 +2,7 @@
TableWindow HID_CTL_TABLEEDIT
Fieldname HID_TABDESIGN_NAMECELL
FieldType HID_TABDESIGN_TYPECELL
-Description HID_TABDESIGN_COMMENTCELL
+Description HID_TABDESIGN_HELPTEXT
*TablesFilter HID_DSADMIN_TABLE_SUBSCRIPTION
Tables HID_DSADMIN_TABLE_SELECTOR
@@ -40,8 +40,8 @@ FinishBtn HID_DLGTABLE_CMDFINISH
CancelBtn HID_DLGTABLE_CMDCANCEL
' not nice solved, but can't do better right now; complains -> TBO
-*Tasks sd:DockingWindow:FLT_RIGHT_PANE_DOCKING_WINDOW
-View HID_SD_TASK_PANE_VIEW_MENU
+*Tasks sd:DockingWindow:FLT_TOOL_PANEL_DOCKING_WINDOW
+View HID_TASKPANE_VIEW_MENU
'? HID_SD_WIN_DOCUMENT
' Master Pages
UsedInThisPresentationPreview HID_SD_TASK_PANE_PREVIEW_CURRENT
@@ -128,6 +128,13 @@ RecentFile HID_XML_FILTER_TEST_IMPORT_RECENT
FixedRecentFile HID_XML_FILTER_TEST_IMPORT_RECENT_FILE
CloseBtn HID_XML_FILTER_TEST_CLOSE
+*Thesaurus SID_THESAURUS
+CurrentWord cui:ComboBox:RID_SVXDLG_THESAURUS:CB_WORD
+RecallCurrentWord cui:ImageButton:RID_SVXDLG_THESAURUS:BTN_LEFT
+Alternatives HID_CT_THES_ALTERNATIVES
+ReplaceWith cui:Edit:RID_SVXDLG_THESAURUS:ED_REPL
+Language cui:MenuButton:RID_SVXDLG_THESAURUS:MB_LANGUAGE
+
*TextImport SC:MODALDIALOG:RID_SCDLG_ASCII
CharacterSet SC:LISTBOX:RID_SCDLG_ASCII:LB_CHARSET
Language sc:ListBox:RID_SCDLG_ASCII:LB_CUSTOMLANG
diff --git a/testautomation/global/win/tab_a_d.win b/testautomation/global/win/tab_a_d.win
index af6d933aefb4..a3135d80e1dd 100755
--- a/testautomation/global/win/tab_a_d.win
+++ b/testautomation/global/win/tab_a_d.win
@@ -151,6 +151,7 @@ GenauigkeitWieAngezeigt sc:CheckBox:RID_SCPAGE_CALC:BTN_CALC
Suchkriterien sc:CheckBox:RID_SCPAGE_CALC:BTN_MATCH
RegulaererAusdruck sc:CheckBox:RID_SCPAGE_CALC:BTN_REGEX
SpaltenZeilenbeschriftung sc:CheckBox:RID_SCPAGE_CALC:BTN_LOOKUP
+LimitDecimals sc:CheckBox:RID_SCPAGE_CALC:BTN_GENERAL_PREC
*TabBereiche HID_INSERT_SECTION_PAGE
Bereichsliste sw:ComboBox:TP_INSERT_SECTION:ED_RNAME
diff --git a/testautomation/graphics/optional/g_accessability.bas b/testautomation/graphics/optional/g_accessability.bas
index db1e9e68474a..fc03755763b5 100755..100644
--- a/testautomation/graphics/optional/g_accessability.bas
+++ b/testautomation/graphics/optional/g_accessability.bas
@@ -36,6 +36,7 @@ sub main
Call hStatusIn ( "Graphics","g_accessability.bas")
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_accessability.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_convertto.bas b/testautomation/graphics/optional/g_convertto.bas
index bdc86266b96e..4a1e76cfe04d 100755..100644
--- a/testautomation/graphics/optional/g_convertto.bas
+++ b/testautomation/graphics/optional/g_convertto.bas
@@ -1,72 +1,73 @@
-'encoding UTF-8 Do not remove or change this line!
-'**************************************************************************
-' 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.
-'
-'/************************************************************************
-'*
-'* Owner : wolfram.garten@sun.com
-'*
-'* short description : Graphics Function: Convert to ...
-'*
-'\******************************************************************
-
-global Ueber_Text_1 as string
-global Ueber_Text_2 as string
-global Ueber_Text_3 as string
-
-sub main
- PrintLog "------------------------- g_convertto test -------------------------"
- Call hStatusIn ( "Graphics","g_convertto.bas")
-
- use "graphics\tools\id_tools.inc"
- use "graphics\optional\includes\global\g_convertto.inc"
-
- PrintLog "-------------------------" + gApplication + "-------------------"
- Call tiModifyConvertToPolygon
- Call tdContextConvertIntoBitmap
- Call tiAendernUmwandelnInKurve
- Call tiAendernUmwandelnInPolygonGrafik
- Call tiAendernUmwandelnIn3D
- Call tiAendernUmwandelnIn3DRotationsKoerper
- Call tiAendernUmwandelnInMetaFile
-
- gApplication = "DRAW"
- PrintLog "-------------------------" + gApplication + "-------------------"
- Call tiModifyConvertToPolygon
- Call tdContextConvertIntoBitmap
- Call tiAendernUmwandelnInKurve
- Call tiAendernUmwandelnInPolygonGrafik
- Call tiAendernUmwandelnIn3D
- Call tiAendernUmwandelnIn3DRotationsKoerper
- Call tiAendernUmwandelnInMetaFile
-
- Call hStatusOut
-end sub
-
-sub LoadIncludeFiles
- use "global\system\includes\master.inc"
- use "global\system\includes\gvariabl.inc"
- gApplication = "IMPRESS"
- Call GetUseFiles
-end sub
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' 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.
+'
+'/************************************************************************
+'*
+'* Owner : wolfram.garten@sun.com
+'*
+'* short description : Graphics Function: Convert to ...
+'*
+'\******************************************************************
+
+global Ueber_Text_1 as string
+global Ueber_Text_2 as string
+global Ueber_Text_3 as string
+
+sub main
+ PrintLog "------------------------- g_convertto test -------------------------"
+ Call hStatusIn ( "Graphics","g_convertto.bas")
+
+ use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
+ use "graphics\optional\includes\global\g_convertto.inc"
+
+ PrintLog "-------------------------" + gApplication + "-------------------"
+ Call tiModifyConvertToPolygon
+ ' Call tdContextConvertIntoBitmap
+ Call tiAendernUmwandelnInKurve
+ Call tiAendernUmwandelnInPolygonGrafik
+ 'Call tiAendernUmwandelnIn3D
+ 'Call tiAendernUmwandelnIn3DRotationsKoerper
+ 'Call tiAendernUmwandelnInMetaFile
+
+ gApplication = "DRAW"
+ PrintLog "-------------------------" + gApplication + "-------------------"
+ 'Call tiModifyConvertToPolygon
+ 'Call tdContextConvertIntoBitmap
+ 'Call tiAendernUmwandelnInKurve
+ 'Call tiAendernUmwandelnInPolygonGrafik
+ 'Call tiAendernUmwandelnIn3D
+ 'Call tiAendernUmwandelnIn3DRotationsKoerper
+ 'Call tiAendernUmwandelnInMetaFile
+
+ Call hStatusOut
+end sub
+
+sub LoadIncludeFiles
+ use "global\system\includes\master.inc"
+ use "global\system\includes\gvariabl.inc"
+ gApplication = "IMPRESS"
+ Call GetUseFiles
+end sub
diff --git a/testautomation/graphics/optional/g_crossfading.bas b/testautomation/graphics/optional/g_crossfading.bas
index 52f7ce3acfe0..1520f995e8ab 100755..100644
--- a/testautomation/graphics/optional/g_crossfading.bas
+++ b/testautomation/graphics/optional/g_crossfading.bas
@@ -36,6 +36,7 @@ sub main
Call hStatusIn ( "Graphics","g_crossfading.bas")
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_crossfading.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_customshapes.bas b/testautomation/graphics/optional/g_customshapes.bas
index b4e96524deff..f759be72f680 100755..100644
--- a/testautomation/graphics/optional/g_customshapes.bas
+++ b/testautomation/graphics/optional/g_customshapes.bas
@@ -36,6 +36,7 @@ sub main
Call hStatusIn ( "Graphics","g_customshapes.bas" )
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_customshapes.inc"
PrintLog "--------------------- " + gApplication + " -------------------"
diff --git a/testautomation/graphics/optional/g_group.bas b/testautomation/graphics/optional/g_group.bas
index 6cd539ac2577..f8d16e653c9c 100755..100644
--- a/testautomation/graphics/optional/g_group.bas
+++ b/testautomation/graphics/optional/g_group.bas
@@ -36,6 +36,7 @@ sub main
Call hStatusIn ( "Graphics","g_group.bas" )
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_group.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_line.bas b/testautomation/graphics/optional/g_line.bas
index 89759e847389..867621aa88b0 100755..100644
--- a/testautomation/graphics/optional/g_line.bas
+++ b/testautomation/graphics/optional/g_line.bas
@@ -34,7 +34,7 @@
sub main
PrintLog "------------------------- g_line test -------------------------"
Call hStatusIn ( "Graphics","g_line.bas")
-
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_line.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_ole.bas b/testautomation/graphics/optional/g_ole.bas
index dc8c0490b5aa..6409388ef2f6 100755..100644
--- a/testautomation/graphics/optional/g_ole.bas
+++ b/testautomation/graphics/optional/g_ole.bas
@@ -39,6 +39,7 @@ sub main
Call hStatusIn ( "Graphics","g_ole.bas")
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_ole.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_savepictureas.bas b/testautomation/graphics/optional/g_savepictureas.bas
index c34348039db1..e3c5f3fc5b8d 100755..100644
--- a/testautomation/graphics/optional/g_savepictureas.bas
+++ b/testautomation/graphics/optional/g_savepictureas.bas
@@ -39,6 +39,7 @@ sub main
Call hStatusIn ( "Graphics","g_savepictureas.bas" )
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\global\g_savepictureas.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/g_tools.bas b/testautomation/graphics/optional/g_tools.bas
index bb890f970722..272840602ac4 100755..100644
--- a/testautomation/graphics/optional/g_tools.bas
+++ b/testautomation/graphics/optional/g_tools.bas
@@ -43,6 +43,8 @@ sub main
PrintLog "-------------------------" + gApplication + "-------------------"
Call tiToolsThesaurus
+ Call tiToolsThesaurusWithoutText
+ Call tiToolsThesaurusContextMenu
Call tiToolsHyphenation1
Call tiToolsHyphenation2
Call tToolsMacro
@@ -50,6 +52,8 @@ sub main
gApplication = "DRAW"
PrintLog "-------------------------" + gApplication + "-------------------"
Call tiToolsThesaurus
+ Call tiToolsThesaurusWithoutText
+ Call tiToolsThesaurusContextMenu
Call tiToolsHyphenation1
Call tiToolsHyphenation2
Call tToolsMacro
diff --git a/testautomation/graphics/optional/i_animation.bas b/testautomation/graphics/optional/i_animation.bas
index 64b0921b8db2..6b2c4851a28a 100755..100644
--- a/testautomation/graphics/optional/i_animation.bas
+++ b/testautomation/graphics/optional/i_animation.bas
@@ -36,6 +36,7 @@ sub main
Call hStatusIn ( "Graphics","i_animation.bas")
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\impress\i_animation.inc"
Call tExtrasAnimation
diff --git a/testautomation/graphics/optional/i_saveloadlayout.bas b/testautomation/graphics/optional/i_saveloadlayout.bas
index 2ce62f89c4d7..08fc52a44270 100755..100644
--- a/testautomation/graphics/optional/i_saveloadlayout.bas
+++ b/testautomation/graphics/optional/i_saveloadlayout.bas
@@ -41,11 +41,7 @@ sub main
PrintLog "-------------------------" + gApplication + "-------------------"
Call tSaveLoadLayoutEmpty
Call tSaveLoadLayoutText
- Call tSaveLoadLayoutPicture
- Call tSaveLoadLayoutOutline
- Call tSaveLoadLayoutChart
- Call tSaveLoadLayoutSpreadsheet
- Call tSaveLoadLayoutOLE
+ Call tSaveLoadLayoutContent
Call hStatusOut
end sub
diff --git a/testautomation/graphics/optional/i_slidecopy.bas b/testautomation/graphics/optional/i_slidecopy.bas
index 04c91a4bb10c..cc1ac3f9d7bd 100755..100644
--- a/testautomation/graphics/optional/i_slidecopy.bas
+++ b/testautomation/graphics/optional/i_slidecopy.bas
@@ -38,6 +38,7 @@ sub main
Call hStatusIn ( "Graphics","i_slidecopy.bas")
use "graphics\tools\id_tools.inc"
+ use "graphics\tools\id_tools_2.inc"
use "graphics\optional\includes\impress\i_slidecopy.inc"
PrintLog "-------------------------" + gApplication + "-------------------"
diff --git a/testautomation/graphics/optional/includes/draw/d_002_.inc b/testautomation/graphics/optional/includes/draw/d_002_.inc
index d3d0ee81a9c3..d3d0ee81a9c3 100755..100644
--- a/testautomation/graphics/optional/includes/draw/d_002_.inc
+++ b/testautomation/graphics/optional/includes/draw/d_002_.inc
diff --git a/testautomation/graphics/optional/includes/draw/d_003_.inc b/testautomation/graphics/optional/includes/draw/d_003_.inc
index 3a7c7da12c38..3a7c7da12c38 100755..100644
--- a/testautomation/graphics/optional/includes/draw/d_003_.inc
+++ b/testautomation/graphics/optional/includes/draw/d_003_.inc
diff --git a/testautomation/graphics/optional/includes/draw/d_005_.inc b/testautomation/graphics/optional/includes/draw/d_005_.inc
index 046e0bd76a30..046e0bd76a30 100755..100644
--- a/testautomation/graphics/optional/includes/draw/d_005_.inc
+++ b/testautomation/graphics/optional/includes/draw/d_005_.inc
diff --git a/testautomation/graphics/optional/includes/draw/d_007.inc b/testautomation/graphics/optional/includes/draw/d_007.inc
index 6582ff2c34c1..6582ff2c34c1 100755..100644
--- a/testautomation/graphics/optional/includes/draw/d_007.inc
+++ b/testautomation/graphics/optional/includes/draw/d_007.inc
diff --git a/testautomation/graphics/optional/includes/global/export_graphic.inc b/testautomation/graphics/optional/includes/global/export_graphic.inc
index d60872022166..7c16129e41ae 100755..100644
--- a/testautomation/graphics/optional/includes/global/export_graphic.inc
+++ b/testautomation/graphics/optional/includes/global/export_graphic.inc
@@ -119,7 +119,11 @@ testcase tEPS
sleep 5
hNewDocument()
sleep 5
+ if ( lcase( gPlatform ) <> "osx" ) then
Call hGrafikEinfuegen ( OutputGrafikTBO+sExt )
+ else
+ qaErrorLog "#i100253# crash on MacOS X 10.4"
+ endif
endif
call hCloseDocument
diff --git a/testautomation/graphics/optional/includes/global/export_graphic_2.inc b/testautomation/graphics/optional/includes/global/export_graphic_2.inc
index d4c6f46ed272..67c456201b45 100755..100644
--- a/testautomation/graphics/optional/includes/global/export_graphic_2.inc
+++ b/testautomation/graphics/optional/includes/global/export_graphic_2.inc
@@ -146,7 +146,7 @@ testcase tSVM
hFileOpen (sDocument)
sleep (10)
- sMakeReadOnlyDocumentEditable
+ call fMakeDocumentWritable
hTypeKeys ("<escape><tab>")
fGetSizeXY sx1, sY, TRUE
@@ -763,14 +763,8 @@ qaerrorlog
endif
' check if the document is writable
- if fIsDocumentWritable = false then
- ' make the document writable and check if it's succesfull
- if fMakeDocumentWritable = false then
- warnlog "The document can't be make writeable. Test stopped."
- goto endsub
- endif
- endif
-
+ call fMakeDocumentWritable
+
hTypeKeys ("<escape><tab>")
fGetSizeXY sx1, sy, TRUE
if hCallExport (OutputGrafikTBO + "1" , "BMP - Windows Bitmap (.bmp)", TRUE ) = TRUE then
@@ -948,9 +942,8 @@ testcase tEMF
Filterauswahl.Cancel
goto endsub
endif
- printlog "making doc editable if it is readonly"
- sMakeReadOnlyDocumentEditable
-
+ printlog "making doc editable if it is readonly"
+ call fMakeDocumentWritable
hTypeKeys ("<escape><tab>")
fGetSizeXY sx1, sY, TRUE
if hCallExport (OutputGrafikTBO & "1" , sFilter, TRUE ) = TRUE then
@@ -1139,7 +1132,7 @@ testcase tMET
sleep (10)
printlog "making doc editable if it is readonly"
- sMakeReadOnlyDocumentEditable
+ call fMakeDocumentWritable
hTypeKeys ("<escape><tab>")
fGetSizeXY sx1, sY, TRUE
@@ -1341,7 +1334,7 @@ testcase tWMF
sleep (10)
printlog "making doc editable if it is readonly"
- sMakeReadOnlyDocumentEditable
+ call fMakeDocumentWritable
hTypeKeys ("<escape><tab>")
fGetSizeXY sx1, sY, TRUE
diff --git a/testautomation/graphics/optional/includes/global/g_accessability.inc b/testautomation/graphics/optional/includes/global/g_accessability.inc
index a1385530f124..8d59b0c6b387 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_accessability.inc
+++ b/testautomation/graphics/optional/includes/global/g_accessability.inc
@@ -37,6 +37,7 @@
testcase tEis1549
call hNewDocument
+ call sSelectEmptyLayout
call hTextrahmenErstellen ("Sun",20,20,70,20)
hTypeKeys ("<escape><escape>")
@@ -116,10 +117,16 @@ testcase tEis1549
endcatch
call hCloseDocument
-endcase
+endcase 'tEis1549
testcase tEis1523
call hNewDocument
+
+ printlog "Switching between Draw/Impress"
+ if (UCase(gApplication)) = "IMPRESS" then
+ call sSelectEmptyLayout
+
+ endif
call hTextrahmenErstellen ("A",20,20,30,30)
hTypeKeys ("<escape><escape>")
call hTextrahmenErstellen ("B",10,10,15,15)
@@ -209,7 +216,7 @@ testcase tEis1523
endif
call hCloseDocument
-endcase
+endcase 'tEis1523
testcase tEis1581
dim i as integer
@@ -237,8 +244,11 @@ testcase tEis1581
LayoutsPreview.TypeKeys "<Return>"
sleep (1)
hTypeKeys ("<tab><tab>")
- sleep (1)
- hTypeKeys ("<Return>")
+
+ DocumentImpress.UseMenu
+ hMenuSelectNr(4)
+ hMenuSelectNr(13)
+ hMenuSelectNr(1)
sleep (2)
kontext "GeneralFileDialog"
if GeneralFileDialog.exists then
@@ -255,7 +265,7 @@ testcase tEis1581
Pagelayout_UndoDeleteWarning.ok
endif
sleep (1)
- for i = 1 to 17
+ for i = 1 to 3
kontext "Tasks"
LayoutsPreview.TypeKeys "<RIGHT>"
kontext "Pagelayout_UndoDeleteWarning"
@@ -267,9 +277,12 @@ testcase tEis1581
kontext "Tasks"
LayoutsPreview.TypeKeys "<Return>"
sleep (1)
- hTypeKeys ("<tab><tab><tab>")
+ hTypeKeys ("<tab><tab>")
sleep (1)
- hTypeKeys ("<Return>")
+ DocumentImpress.UseMenu
+ hMenuSelectNr(4)
+ hMenuSelectNr(16)
+ hMenuSelectNr(1)
try
sleep 2
' InsertTitle *OLEObjektEinfuegen/OLEObjektInsert SID_INSERT_OBJECT
@@ -281,4 +294,4 @@ testcase tEis1581
endcatch
endif
call hCloseDocument
-endcase
+endcase 'tEis1581
diff --git a/testautomation/graphics/optional/includes/global/g_area.inc b/testautomation/graphics/optional/includes/global/g_area.inc
index caab5801a075..caab5801a075 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_area.inc
+++ b/testautomation/graphics/optional/includes/global/g_area.inc
diff --git a/testautomation/graphics/optional/includes/global/g_arrangealign.inc b/testautomation/graphics/optional/includes/global/g_arrangealign.inc
index 4d79d3c2f829..f9fab5625905 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_arrangealign.inc
+++ b/testautomation/graphics/optional/includes/global/g_arrangealign.inc
@@ -46,7 +46,8 @@ testcase tiDatei_Fuer_Anordnen_Erstellen
dim zaehler as integer
'/// This function creates the document, that will be used as reference and working object inthe following cases :-) ///'
'///'Dim Datei ' somewhere global :-) defined in calling sub! :sub im_107c_ ///
- call hNewDocument '/// new document ///'
+ call hNewDocument
+ call sSelectEmptyLayout '/// new document ///'
if Dir(Datei)<>"" then app.Kill(Datei) ' kill old file
for Zaehler = 1 to 3 '/// create 3 overlapping objects ///'
Kontext
diff --git a/testautomation/graphics/optional/includes/global/g_autocorrection.inc b/testautomation/graphics/optional/includes/global/g_autocorrection.inc
index 74fa830a9b11..7653d391243f 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_autocorrection.inc
+++ b/testautomation/graphics/optional/includes/global/g_autocorrection.inc
@@ -159,7 +159,7 @@ testcase tToolsAutocorrectCustomQuotes(bSimple as boolean)
printlog "File opened: " + sFileName
Sleep 3
- Call sMakeReadOnlyDocumentEditable
+ call fMakeDocumentWritable
if bSimple then
Printlog "- Tools/Autocorrect -single quotes"
diff --git a/testautomation/graphics/optional/includes/global/g_character.inc b/testautomation/graphics/optional/includes/global/g_character.inc
index 31b4f364c50c..31b4f364c50c 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_character.inc
+++ b/testautomation/graphics/optional/includes/global/g_character.inc
diff --git a/testautomation/graphics/optional/includes/global/g_clipboard.inc b/testautomation/graphics/optional/includes/global/g_clipboard.inc
index 574db14419e8..9bc85a4bbad1 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_clipboard.inc
+++ b/testautomation/graphics/optional/includes/global/g_clipboard.inc
@@ -216,6 +216,7 @@ testcase tiEditClipboard
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
SetClipboard ""
'/// Create rectangle ///'
diff --git a/testautomation/graphics/optional/includes/global/g_clipexport.inc b/testautomation/graphics/optional/includes/global/g_clipexport.inc
index 91357e867937..91357e867937 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_clipexport.inc
+++ b/testautomation/graphics/optional/includes/global/g_clipexport.inc
diff --git a/testautomation/graphics/optional/includes/global/g_clipexport2.inc b/testautomation/graphics/optional/includes/global/g_clipexport2.inc
index c8dfe7f52d91..c8dfe7f52d91 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_clipexport2.inc
+++ b/testautomation/graphics/optional/includes/global/g_clipexport2.inc
diff --git a/testautomation/graphics/optional/includes/global/g_clipexport3.inc b/testautomation/graphics/optional/includes/global/g_clipexport3.inc
index c51d92eb3fed..c51d92eb3fed 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_clipexport3.inc
+++ b/testautomation/graphics/optional/includes/global/g_clipexport3.inc
diff --git a/testautomation/graphics/optional/includes/global/g_convertto.inc b/testautomation/graphics/optional/includes/global/g_convertto.inc
index a8fc7e5aa37d..8acac43a45fc 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_convertto.inc
+++ b/testautomation/graphics/optional/includes/global/g_convertto.inc
@@ -58,6 +58,7 @@ testcase tiModifyConvertToPolygon
Dim Minanzahl as string
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 3
hTextrahmenErstellen ("This is a text that will be transformed into a Polygon-object", 10,10,60,30)
sleep 1
@@ -207,6 +208,7 @@ testcase tiAendernUmwandelnInKurve
Printlog " ----- ContextConvertIntoCurve testen"
Call hNewDocument '/// New impress document///'
+ Call sSelectEmptyLayout
Call hTextrahmenErstellen ("I test,test,test,test only, if it works for you",20,20,60,30) '/// create textbox///'
sleep 2
@@ -236,6 +238,7 @@ testcase tiAendernUmwandelnInPolygonGrafik
Printlog "- Context/ConvertIntoPolygon"
Call hNewDocument '/// new document ///'
+ Call sSelectEmptyLayout
InsertGraphicsFromFile '/// insert graphic (desp.bmp) ///'
diff --git a/testautomation/graphics/optional/includes/global/g_crossfading.inc b/testautomation/graphics/optional/includes/global/g_crossfading.inc
index e530a28f1339..275f1ee49839 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_crossfading.inc
+++ b/testautomation/graphics/optional/includes/global/g_crossfading.inc
@@ -43,7 +43,8 @@ testcase tCrossfading
dim CounterForX as integer
dim anothercounter as integer
- Call hNewDocument '/// New Impress document ///'
+ Call hNewDocument
+ Call sSelectEmptyLayout '/// New Impress document ///'
gMouseClick 50,50
sleep 1
Call hRechteckErstellen ( 5, 5, 20, 30 ) '/// Create rectangle ///'
diff --git a/testautomation/graphics/optional/includes/global/g_customshapes.inc b/testautomation/graphics/optional/includes/global/g_customshapes.inc
index 3cd31dac77b6..850356821d2f 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_customshapes.inc
+++ b/testautomation/graphics/optional/includes/global/g_customshapes.inc
@@ -40,6 +40,7 @@ testcase tCustomshapes
'/// Create new document ///'
Call hNewDocument
+ Call sSelectEmptyLayout
if gApplication = "DRAW" then
Kontext "Documentdraw"
else '(Impress)
@@ -646,15 +647,15 @@ testcase tFormatPaintbrush
sleep 1
else '(Impress)
Kontext "DocumentImpress"
- DocumentImpress.Mousedown 20, 20
- DocumentImpress.Mouseup 20, 20
+ DocumentImpress.typekeys("<F6>",true)
+ DocumentImpress.typekeys("<ESCAPE>",true)
+ DocumentImpress.typekeys("<TAB>",true)
sleep 1
kontext "Standardbar"
FormatPaintbrush.Click
kontext "DocumentImpress"
sleep 1
- DocumentImpress.Mousedown 80, 80
- DocumentImpress.Mouseup 80, 80
+ DocumentImpress.typekeys("<TAB>",true)
sleep 1
endif
diff --git a/testautomation/graphics/optional/includes/global/g_demoguide.inc b/testautomation/graphics/optional/includes/global/g_demoguide.inc
index 56dd1f89e294..8da45a872259 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_demoguide.inc
+++ b/testautomation/graphics/optional/includes/global/g_demoguide.inc
@@ -44,6 +44,7 @@ testcase t_Introduction
'///Open new presentation
printlog "Open new presentation"
Call hNewDocument
+ Call sSelectEmptyLayout
'///Open the Gallery
printlog "Open the Gallery"
@@ -136,7 +137,7 @@ testcase t_Introduction
DocumentImpress.TypeKeys "<MOD1 A>"
hOpenContextMenu '(when the object is marked)
hMenuSelectNr(12)
-
+
'///Add Layout "Title Only"
Printlog "Add Layout"
kontext "Tasks"
@@ -144,36 +145,71 @@ testcase t_Introduction
warnlog "Tasks Panel not visible. Opening now."
ViewTaskPane
endif
- Kontext "LayoutsPreview"
+
+ ' enable all items in the task pane.
+ ' may be one item is not enabled due to a previous testrun
+ dim i as integer
+ for i = 1 to 5
+ printlog i
+ View.OpenMenu
+ if ( MenuIsItemChecked(MenuGetItemID(i)) ) then
+ ' do nothing the item is allready displayed
+ else
+ MenuSelect(MenuGetItemId(4))
+ endif
+ hMenuSelectNr(0)
+ 'sleep(1)
+ next
+
+ View.OpenMenu
+ MenuSelect(MenuGetItemId(1))
+ View.OpenMenu
+ MenuSelect(MenuGetItemId(3))
+ View.OpenMenu
+ MenuSelect(MenuGetItemId(4))
+ View.OpenMenu
+ MenuSelect(MenuGetItemId(5))
+
+
LayoutsPreview.TypeKeys "<HOME> <DOWN> <DOWN> <RETURN>"
sleep (5)
'///Add a background
Printlog "Add background"
-
+
Kontext "Tasks"
printlog "Deselect all tabs from view menu in task pane except the needed."
View.OpenMenu
- MenuSelect(MenuGetItemID(5))
+ MenuSelect(MenuGetItemID(5))
View.OpenMenu
- MenuSelect(MenuGetItemID(4))
+ MenuSelect(MenuGetItemID(4))
View.OpenMenu
MenuSelect(MenuGetItemID(3))
View.OpenMenu
MenuSelect(MenuGetItemID(2))
- Kontext "AvailableForUsePreview"
+ sleep(5)
+ View.OpenMenu
+ MenuSelect(MenuGetItemID(1))
+ Tasks.TypeKeys "<TAB>",true
+ Tasks.TypeKeys "<MOD1 HOME>",true
AvailableForUsePreview.TypeKeys "<HOME> <RIGHT> <RETURN>"
- sleep (5)
+ sleep (5)
'///Add a transition effect
Printlog "Add a transition effect"
Kontext "Tasks"
- View.OpenMenu
- MenuSelect(MenuGetItemID(5))
+ sleep(5)
View.OpenMenu
MenuSelect(MenuGetItemID(1))
+ View.OpenMenu
+ MenuSelect(MenuGetItemID(2))
+ View.OpenMenu
+ MenuSelect(MenuGetItemID(3))
+ View.OpenMenu
+ MenuSelect(MenuGetItemID(4))
+
TransitionSound.GetItemCount 'needed for select
Sleep 1
TransitionSound.Select 4
-
+
'///Close the document
Printlog "Close the document"
Call hCloseDocument
@@ -385,7 +421,7 @@ testcase t_DrawingEngine
printlog "Open a drawing"
hFileOpen (Convertpath (gTesttoolPath + "graphics/required/input/Blueprint.odg"))
- Call sMakeReadOnlyDocumentEditable
+ Call fMakeDocumentWritable
'///Select grouped object and enter group
printlog "Select group"
diff --git a/testautomation/graphics/optional/includes/global/g_dimensions.inc b/testautomation/graphics/optional/includes/global/g_dimensions.inc
index 3d48ad7327ab..3d48ad7327ab 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_dimensions.inc
+++ b/testautomation/graphics/optional/includes/global/g_dimensions.inc
diff --git a/testautomation/graphics/optional/includes/global/g_edit.inc b/testautomation/graphics/optional/includes/global/g_edit.inc
index ef14cd1f477e..6313865b8912 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_edit.inc
+++ b/testautomation/graphics/optional/includes/global/g_edit.inc
@@ -100,39 +100,49 @@ endcase 'tEditDuplicate
'---------------------------------------------------------
testcase tEditFields
- Call hNewDocument
- sleep 3
- InsertFieldsDateFix '/// Insert Date-Fix ///'
- EditSelectAll '/// Select inserted field ///'
- sleep 1
- hTypeKeys "<F2>" '/// Go into edit mode (F2) ///'
- sleep 2
- EditSelectAll '/// Select the date///'
- sleep 2
- EditfieldsDraw '/// Edit -fields///'
- Kontext "FeldbefehlBearbeitenDraw"
- sleep 2
- FeldtypFix.Check '/// check field type fix ///'
- If FeldtypFix.Ischecked then
- Printlog "OK FieldtypeFix checkable"
- else
- warnlog "FieldtypeFix not checkable"
- end if
- FeldtypVariabel.Check '/// check field type variabel///'
- sleep 1
- If FeldtypVariabel.Ischecked then
- Printlog "OK FieldtypeVariabel enabled"
- else
+ Call hNewDocument
+ Call sSelectEmptyLayout
+ sleep 3
+ printlog "insert date-fix"
+ InsertFieldsDateFix
+ printlog "select inserted field"
+ EditSelectAll
+ sleep 1
+ printlog "go into edit mode"
+ hTypeKeys "<F2>"
+ sleep 2
+ printlog "select date"
+ EditSelectAll
+ sleep 2
+ printlog "edit fields"
+ EditfieldsDraw
+ Kontext "FeldbefehlBearbeitenDraw"
+ sleep 2
+ printlog "check field type fix"
+ FeldtypFix.Check
+ If FeldtypFix.Ischecked then
+ Printlog "OK FieldtypeFix checkable"
+ else
+ warnlog "FieldtypeFix not checkable"
+ end if
+ printlog "check field type variable 1"
+ FeldtypVariabel.Check
+ sleep 1
+ If FeldtypVariabel.Ischecked then
+ Printlog "OK FieldtypeVariabel enabled"
+ else
warnlog "FieldtypeVariabel not enabled"
- end if
-' For Zaehler = 1 to FeldtypFormat.GetItemCount
-' FeldTypFormat.Select Zaehler
-' printlog "OK Format ", Zaehler, " = ", FeldtypFormat.GetSelText
-' Next Zaehler
- FeldbefehlBearbeitenDraw.OK '/// close edit fields dialog ///'
- sleep 2
- Call hCloseDocument '/// close document ///'
- sleep 2
+ end if
+ ' For Zaehler = 1 to FeldtypFormat.GetItemCount
+ ' FeldTypFormat.Select Zaehler
+ ' printlog "OK Format ", Zaehler, " = ", FeldtypFormat.GetSelText
+ ' Next Zaehler
+ printlog "close edit fields dialog"
+ FeldbefehlBearbeitenDraw.OK
+ sleep 2
+ printlog "Close Document"
+ Call hCloseDocument
+ sleep 2
endcase 'tEditFields
'--------------------------------------------------------
diff --git a/testautomation/graphics/optional/includes/global/g_export_html.inc b/testautomation/graphics/optional/includes/global/g_export_html.inc
index 5f6e9fa6040a..5f6e9fa6040a 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_export_html.inc
+++ b/testautomation/graphics/optional/includes/global/g_export_html.inc
diff --git a/testautomation/graphics/optional/includes/global/g_format.inc b/testautomation/graphics/optional/includes/global/g_format.inc
index 0674a2f0cd56..2e2f1b0368ff 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_format.inc
+++ b/testautomation/graphics/optional/includes/global/g_format.inc
@@ -48,6 +48,7 @@ testcase tiFormatText
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
'/// create a textbox with text ///'
Call hTextrahmenErstellen ("This is a text, which, I hope, in Staroffice, will be automaticly formatted. Should that not be the case, then it doesn't matter.",20,20,70,20)
WaitSlot (1000)
@@ -699,7 +700,8 @@ testcase tiFormat3D_Effekte
Dim Zaehler as integer
Dim Posi as string
- Call hNewDocument
+ Call hNewDocument
+ Call sSelectEmptyLayout
printlog "new document"
'-----------------------------------RECTANGLE------------------------------------------------------
Call hRechteckErstellen (20,20,60,70) '/// create rectangle ///'
@@ -1187,6 +1189,7 @@ testcase tiFormatAufzaehlungszeichen
PrintLog "- Format/Numbering and Bullets"
Call hNewDocument
+ Call sSelectEmptyLayout
WaitSlot (2000)
Kontext "DocumentImpress"
hTextrahmenErstellen ("Hello <Return><Return>",20,20,60,60)
diff --git a/testautomation/graphics/optional/includes/global/g_group.inc b/testautomation/graphics/optional/includes/global/g_group.inc
index b28029cfb534..3023e673a526 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_group.inc
+++ b/testautomation/graphics/optional/includes/global/g_group.inc
@@ -36,7 +36,8 @@
testcase tiGruppierung
Dim PosX 'Variable fuer PositionX
- Call hNewDocument '/// new document ///'
+ Call hNewDocument
+ Call sSelectEmptyLayout '/// new document ///'
sleep 3
Kontext "DocumentImpress"
sleep 2
diff --git a/testautomation/graphics/optional/includes/global/g_imagemap.inc b/testautomation/graphics/optional/includes/global/g_imagemap.inc
index c8bee2af8537..c8bee2af8537 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_imagemap.inc
+++ b/testautomation/graphics/optional/includes/global/g_imagemap.inc
diff --git a/testautomation/graphics/optional/includes/global/g_insert.inc b/testautomation/graphics/optional/includes/global/g_insert.inc
index fbc787eac29a..fbc787eac29a 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_insert.inc
+++ b/testautomation/graphics/optional/includes/global/g_insert.inc
diff --git a/testautomation/graphics/optional/includes/global/g_line.inc b/testautomation/graphics/optional/includes/global/g_line.inc
index 3aad4234abd6..55869c258f43 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_line.inc
+++ b/testautomation/graphics/optional/includes/global/g_line.inc
@@ -331,6 +331,7 @@ testcase tLineConnect
end if
Call hNewDocument '/// New Impress / Draw document ///'
+ Call sSelectEmptyLayout
sleep 3
kontext "GraphicObjectbar"
if GraphicObjectbar.Exists then
diff --git a/testautomation/graphics/optional/includes/global/g_load_save.inc b/testautomation/graphics/optional/includes/global/g_load_save.inc
index 9bc422f99ff3..6622c9c7a452 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_load_save.inc
+++ b/testautomation/graphics/optional/includes/global/g_load_save.inc
@@ -302,14 +302,9 @@ testcase tFileOpenImport
Dateiname.SetText (ConvertPath (gTesttoolpath + "graphics\required\input\imsusmap.cgm"))
Oeffnen.Click
Sleep 2
- ' check if the document is writable
- if fIsDocumentWritable = false then
- ' make the document writable and check if it's succesfull
- if fMakeDocumentWritable = false then
- warnlog "The document can't be make writeable. Test stopped."
- goto endsub
- endif
- endif
+
+ call fMakeDocumentWritable
+
kontext "DocumentImpress"
if DocumentImpress.exists(5) then
DocumentImpress.TypeKeys ("<Tab>")
diff --git a/testautomation/graphics/optional/includes/global/g_mediaplayer.inc b/testautomation/graphics/optional/includes/global/g_mediaplayer.inc
index 2382a00b6f0d..01fe8137ef64 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_mediaplayer.inc
+++ b/testautomation/graphics/optional/includes/global/g_mediaplayer.inc
@@ -232,7 +232,7 @@ testcase g_mediaplayer
else
kontext "DocumentDraw"
endif
- hTypeKeys ("<escape><tab>")
+ hTypeKeys ("<escape><tab><tab><tab>")
hOpenContextMenu()
hMenuSelectNr(1)
diff --git a/testautomation/graphics/optional/includes/global/g_navigator.inc b/testautomation/graphics/optional/includes/global/g_navigator.inc
index 7f4c06d6d979..7f4c06d6d979 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_navigator.inc
+++ b/testautomation/graphics/optional/includes/global/g_navigator.inc
diff --git a/testautomation/graphics/optional/includes/global/g_ole.inc b/testautomation/graphics/optional/includes/global/g_ole.inc
index 9689771df8a3..3d30cf52ca85 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_ole.inc
+++ b/testautomation/graphics/optional/includes/global/g_ole.inc
@@ -244,6 +244,7 @@ testcase tOLE_SaveLoad
filename = ConvertPath (gOfficePath + "user\work\oletest." & ExtensionString)
printlog "Create a new document."
Call hNewDocument
+ Call sSelectEmptyLayout
printlog "Insert->Object->OLE Object..."
InsertObjectOLEObject
Kontext "OLEObjektInsert"
diff --git a/testautomation/graphics/optional/includes/global/g_paneview.inc b/testautomation/graphics/optional/includes/global/g_paneview.inc
index 28e679367f08..28e679367f08 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_paneview.inc
+++ b/testautomation/graphics/optional/includes/global/g_paneview.inc
diff --git a/testautomation/graphics/optional/includes/global/g_paragraph.inc b/testautomation/graphics/optional/includes/global/g_paragraph.inc
index 5ba028ca5244..5ba028ca5244 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_paragraph.inc
+++ b/testautomation/graphics/optional/includes/global/g_paragraph.inc
diff --git a/testautomation/graphics/optional/includes/global/g_savepictureas.inc b/testautomation/graphics/optional/includes/global/g_savepictureas.inc
index 39d7af75e9e9..3888cf31d39e 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_savepictureas.inc
+++ b/testautomation/graphics/optional/includes/global/g_savepictureas.inc
@@ -70,6 +70,7 @@ testcase tContextSaveAsPicture
endif
Call hNewDocument
+ Call sSelectEmptyLayout
setClipboard(" ")
sleep 2
InsertGraphicsFromFile
@@ -303,6 +304,7 @@ testcase tContextSaveAsPicture
hTypeKeys "<DELETE>"
call hCloseDocument
call hNewDocument
+ Call sSelectEmptyLayout
InsertGraphicsFromFile
Kontext "GrafikEinfuegenDlg"
if GrafikEinfuegenDlg.exists(5) then
@@ -368,6 +370,7 @@ testcase tContextSavePictureLinkAsPicture
endif
Call hNewDocument
+ Call sSelectEmptyLayout
setClipboard(" ")
sleep 2
InsertGraphicsFromFile
@@ -725,6 +728,7 @@ endif
hTypeKeys "<DELETE>"
call hCloseDocument
call hNewDocument
+Call sSelectEmptyLayout
InsertGraphicsFromFile
Kontext "GrafikEinfuegenDlg"
if GrafikEinfuegenDlg.exists(5) then
diff --git a/testautomation/graphics/optional/includes/global/g_shaddow.inc b/testautomation/graphics/optional/includes/global/g_shaddow.inc
index 46ac99bb99f0..0a7708086371 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_shaddow.inc
+++ b/testautomation/graphics/optional/includes/global/g_shaddow.inc
@@ -63,6 +63,7 @@ testcase tiShaddow
'/// Open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
'/// Import picture ///'
diff --git a/testautomation/graphics/optional/includes/global/g_slidelayer.inc b/testautomation/graphics/optional/includes/global/g_slidelayer.inc
index 4064ca5e9f45..4064ca5e9f45 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_slidelayer.inc
+++ b/testautomation/graphics/optional/includes/global/g_slidelayer.inc
diff --git a/testautomation/graphics/optional/includes/global/g_spellcheck.inc b/testautomation/graphics/optional/includes/global/g_spellcheck.inc
index 9780cb9933dc..9780cb9933dc 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_spellcheck.inc
+++ b/testautomation/graphics/optional/includes/global/g_spellcheck.inc
diff --git a/testautomation/graphics/optional/includes/global/g_tables.inc b/testautomation/graphics/optional/includes/global/g_tables.inc
index 2ffff217ba72..1414a857b598 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_tables.inc
+++ b/testautomation/graphics/optional/includes/global/g_tables.inc
@@ -231,7 +231,7 @@ testcase tiTableObjectBar
printlog "Switching between Draw/Impress"
if (UCase(gApplication)) = "IMPRESS" then
Kontext "DocumentImpress"
- DocumentImpress.TypeKeys "<MOD1 A>"
+ DocumentImpress.TypeKeys "<TAB>",3
else
Kontext "DocumentDraw"
DocumentDraw.TypeKeys "<MOD1 A>"
diff --git a/testautomation/graphics/optional/includes/global/g_toolbars.inc b/testautomation/graphics/optional/includes/global/g_toolbars.inc
index 10ea5cdba195..10ea5cdba195 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_toolbars.inc
+++ b/testautomation/graphics/optional/includes/global/g_toolbars.inc
diff --git a/testautomation/graphics/optional/includes/global/g_tools.inc b/testautomation/graphics/optional/includes/global/g_tools.inc
index b5cdd71e0416..2d802af5b40c 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_tools.inc
+++ b/testautomation/graphics/optional/includes/global/g_tools.inc
@@ -40,49 +40,55 @@
'-------------------------------------------------------------------------------
testcase tiToolsThesaurus
- Dim DasWort$
- Dim ZaehlerBedeutung
-
-'/// for normal text, the thesaurus is enabled, if the format->character->language of the word has a thesaurus///'
-'///+ unfortunately in textboxes this doesn't work, you can give the word a langauge, but this is been ignored by///'
-'///+ our thesaurus :-(((///'
-'/// so especially for asian languages you have to set a default language in the options, to be able to use///'
-'///+ the thesaurus there - fallback to englisch, because there is no ? thesaurus for cjk languages ??///'
-
- '/// First we make sure we test a language where Thesa
- ' As long as OOo has no modules for that, disabled
- if gOOO = True then
- printlog "No spellchecking in OOo"
- goto endsub
- endif
+ Dim sWord as string
+ Dim sChangedWord as string
+ Dim sReplaceWord as string
+ Dim sAlternativeText as string
+ Dim sExt as string
+ Dim ZaehlerBedeutung
+ 'for normal text, the thesaurus is enabled,
+ 'if the format->character->language of the word has a thesaurus
+ 'unfortunately in textboxes this doesn't work, you can give the word a langauge,
+ 'but this is been ignored by our thesaurus
+ 'so especially for asian languages you have to set a default language in the options,
+ 'to be able to use the thesaurus there - fallback to englisch,
+ 'because there is no thesaurus for cjk languages
+
+ 'As long as OOo has no modules for that, disabled
+ if gOOO = True then
+ printlog "No spellchecking in OOo"
+ goto endsub
+ endif
+
+ 'First we make sure we test a language where Thesaurus
select case iSprache
- case 01 : DasWort$ = "Hello"
- case 03 : DasWort$ = "Alo"
+ case 01 : sWord = "Hello"
+ case 03 : sWord = "Alo"
case 07 : printlog "- No Thesaur for Russian available"
goto endsub
case 30 : Printlog "- No Thesaurus available !"
goto endsub
- case 31 : DasWort$ = "Guiten"
- case 33 : DasWort$ = "Bonjour"
- case 34 : DasWort$ = "Hola"
+ case 31 : sWord = "Guiten"
+ case 33 : sWord = "Bonjour"
+ case 34 : sWord = "Hola"
case 35 : Printlog "- No Thesaurus available !"
goto endsub
case 36 : Printlog "- No Thesaurus available !"
goto endsub
case 37 : Printlog "- No Thesaurus available !"
goto endsub
- case 39 : DasWort$ = "Ciao"
+ case 39 : sWord = "Ciao"
case 42 : Printlog "- No Thesaurus available !"
goto endsub
- case 45 : DasWort$ = "Hej"
- case 46 : DasWort$ = "Välkommen"
+ case 45 : sWord = "Hej"
+ case 46 : sWord = "Välkommen"
case 47 : Printlog "- No Thesaurus available !"
goto endsub
case 48 : Printlog "- No Thesaurus in Polish!"
goto endsub
- case 49 : DasWort$ = "Hallo"
- case 50 : DasWort$ = "Prosojnica"
+ case 49 : sWord = "Hallo"
+ case 50 : sWord = "Prosojnica"
case 51 : Printlog "- No Thesaurus available !"
goto endsub
case 55 : Printlog "- No Thesaurus in Brazilian!"
@@ -92,83 +98,237 @@ testcase tiToolsThesaurus
case else : if bAsianLan then
hSetSpellHypLanguage
- DasWort$ = "Hello"
+ sWord = "Hello"
else
Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here"
- DasWort$ = "Hello"
+ sWord = "Hello"
endif
end select
+
+ PrintLog "Thesaurus with 1 word: " + sWord
+
+ if( Ucase(gApplication) = "DRAW" ) then
+ sExt = ".odg"
+ elseif( Ucase(gApplication) = "IMPRESS" ) then
+ sExt = ".odp"
+ endif
+
+ Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_" + iSprache + sExt)
+ Call sMakeReadOnlyDocumentEditable()
+ Call hTextrahmenErstellen (sWord,20,20,50,30)
+ sleep 1
+
+ printlog "select the word"
+ hTypeKeys "<Home><SHIFT END>"
+
+ try
+ ExtrasThesaurusDraw
+ catch
+ warnlog "No Thesaurus available."
+ hCloseDocument()
+ goto endsub
+ endcatch
+
+ Kontext "Thesaurus"
+ if Thesaurus.Exists(3) then
+
+ if CurrentWord.GetSelText <> sWord Then
+ WarnLog "marked word should be:" + sWord + " but it is:" + CurrentWord.GetSelText
+ else
+ PrintLog "Marked word is correctly changed"
+ endif
+
+ if Alternatives.GetItemCount = 0 Then
+ warnlog "There are no alternative for this word"
+ sleep 1
+ else
+ printlog "select the first alternative"
+ Alternatives.Select 1
+
+ printlog "check if the selected alternative apprear in the ReplaceWith field."
+
+ sAlternativeText = Alternatives.getSeltext(1,3)
+ 'remove the part in the () if there is any
+ if( Instr(sAlternativeText, "(") <> 0 ) then
+ sAlternativeText = left(sAlternativeText, Instr(sAlternativeText, "(") - 2 )
+ endif
+
+ if ( ReplaceWith.getText() <> sAlternativeText ) then
+ warnlog "the text is no transfered to the ReplaceWith field. " +_
+ "ReplaceWith = " + ReplaceWith.getText() + ", Alternative = " + sAlternativeText
+ else
+ printlog "the text is transfered to the ReplaceWith field."
+ endif
+
+ sReplaceWord = ReplaceWith.getText()
+ sleep 1
+ endif
+ Thesaurus.OK
- printlog " Thesaurus without any word in the document"
- Call hNewDocument '/// New document ///'
- try
- ExtrasThesaurusDraw '/// try thesaurus in empty document ///'
- Kontext "Thesaurus"
- Thesaurus.Cancel
- WarnLog " If no word is in the document, Thesaurus shouldn't be available"
- catch
- PrintLog " No Thesaurus available"
- endcatch
-
- PrintLog " Thesaurus with 1 word: " + DasWort$
-
- Call hTextrahmenErstellen (DasWort$,20,20,50,30)
- sleep 1
-
- hTypeKeys "<Home><SHIFT END>"
- '------------------------
-ToolsOptions
-Kontext "ExtrasOptionenDlg"
-hToolsOptions("LANGUAGESETTINGS","Languages")
-Westlich.Select 34
-Kontext "ExtrasOptionenDlg"
-ExtrasOptionenDlg.OK
-sleep 1
- '------------------------
- try
- ExtrasThesaurusDraw '/// Thesaurus with only 1 word ///'
- Kontext "Thesaurus"
- if Thesaurus.Exists(3) then
- if Wort.GetSelText <> DasWort$ Then WarnLog "marked word should be:" + DasWort$ + " but it is:" + Wort.GetSelText
- if Wort.GetSelText = DasWort$ Then PrintLog " Marked word is correctly changed" '/// Control if word has changed ///'
- ZaehlerBedeutung=Bedeutung.GetItemCount
- if Bedeutung.GetItemCount = 0 Then
- PrintLog " There are no suggestions for this word"
- sleep 1
+ if(Ucase(gApplication) = "DRAW") then
+ Kontext "Draw"
+ elseif(Ucase(gApplication) = "IMPRESS") then
+ Kontext "Impress"
+ else ' fallback
+ warnlog "gApplication is wrong"
+ goto endsub
+ endif
+
+ hTypeKeys "<Home><SHIFT END>"
+ EditCopy
+ sChangedWord = getClipboard()
+ printlog "sChangedWord = " + sChangedWord
+ if(sChangedWord <> sReplaceWord) then
+ warnlog "the text was not replaced"
else
- if ZaehlerBedeutung=1 Then
- Bedeutung.Select ZaehlerBedeutung
- else
- Bedeutung.Select (ZaehlerBedeutung - 1)
- end if
- sleep 1
- Synonym.Select 1 '/// Select synonym 1///'
- sleep 1
- if Ersetzen.GetText=Synonym.GetSelText Then PrintLog " Meaning transfered into Replace edit field"
- if Ersetzen.GetText<>Synonym.GetSelText Then WarnLog " Replacement should have been: '" + Bedeutung.GetSelText + "' but it is '" + Ersetzen.GetText+"'"
- endif
- Thesaurus.Cancel
- else
- warnlog " thesaurus didn't come up, that's bad :-("
- end if
- catch
- warnLog " No Thesaurus available ??! check if options western has smth selected !! !TL!"
- endcatch
- Call hCloseDocument '/// Close document ///'
-
-endcase 'tiToolsThesaurus
+ printlog "the text was successfull replaced"
+ endif
+ else
+ warnlog "thesaurus didn't come up."
+ end if
+
+ Call hCloseDocument
+
+endcase
+'-------------------------------------------------------------------------------
+testcase tiToolsThesaurusWithoutText
+
+ printlog "Thesaurus without any word in the document"
+ Call hNewDocument
+ try
+ ExtrasThesaurusDraw
+ catch
+ printlog "the Thesaurus is correctly not available"
+ call hCloseDocument
+ goto endsub
+ endcatch
+
+ WarnLog "If no word is in the document, Thesaurus shouldn't be available"
+ Kontext "Thesaurus"
+ if Thesaurus.Exists then
+ Thesaurus.Cancel
+ endif
+
+ Call hCloseDocument
+
+
+endcase
+'-------------------------------------------------------------------------------
+testcase tiToolsThesaurusContextMenu
+
+ Dim sWord as string
+ Dim sExt as string
+ Dim iItemCount as Integer
+
+ 'for normal text, the thesaurus is enabled,
+ 'if the format->character->language of the word has a thesaurus
+ 'unfortunately in textboxes this doesn't work, you can give the word a langauge,
+ 'but this is been ignored by our thesaurus
+ 'so especially for asian languages you have to set a default language in the options,
+ 'to be able to use the thesaurus there - fallback to englisch,
+ 'because there is no thesaurus for cjk languages
+
+ 'As long as OOo has no modules for that, disabled
+ if gOOO = True then
+ printlog "No spellchecking in OOo"
+ goto endsub
+ endif
+
+ 'First we make sure we test a language where Thesaurus
+ select case iSprache
+ case 01 : sWord = "Hello"
+ case 03 : sWord = "Alo"
+ case 07 : printlog "- No Thesaur for Russian available"
+ goto endsub
+ case 30 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 31 : sWord = "Guiten"
+ case 33 : sWord = "Bonjour"
+ case 34 : sWord = "Hola"
+ case 35 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 36 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 37 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 39 : sWord = "Ciao"
+ case 42 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 45 : sWord = "Hej"
+ case 46 : sWord = "Välkommen"
+ case 47 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 48 : Printlog "- No Thesaurus in Polish!"
+ goto endsub
+ case 49 : sWord = "Hallo"
+ case 50 : sWord = "Prosojnica"
+ case 51 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 55 : Printlog "- No Thesaurus in Brazilian!"
+ goto endsub
+ case 90 : Printlog "- No Thesaurus available !"
+ goto endsub
+
+ case else : if bAsianLan then
+ hSetSpellHypLanguage
+ sWord = "Hello"
+ else
+ Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here"
+ sWord = "Hello"
+ endif
+ end select
+
+ PrintLog "Thesaurus with 1 word: " + sWord
+
+ if( Ucase(gApplication) = "DRAW" ) then
+ sExt = ".odg"
+ Kontext "DrawDocument"
+ elseif( Ucase(gApplication) = "IMPRESS" ) then
+ sExt = ".odp"
+ Kontext "ImpressDocument"
+ endif
+
+ Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_" + iSprache + sExt)
+
+ Call hTextrahmenErstellen (sWord,20,20,50,30)
+ sleep 1
+
+ printlog "select the word"
+ hTypeKeys "<Home><SHIFT END>"
+
+ hOpenContextMenu
+
+ hMenuSelectNr(14) ' the synonyms
+ iItemCount = hMenuItemGetCount
+ printlog iItemCount
+ if(iItemCount <= 2 ) then ' none and Thesaurus item
+ warnlog "There should be a synonymus display for the word '" + sWord + "' but it isn't."
+ endif
+
+ hMenuSelectNr(iItemCount) ' the last item
+
+ Kontext "Thesaurus"
+ if Thesaurus.Exists(5) then
+ printlog "Thesaurus dialog appear from the context menu"
+ Thesaurus.Cancel
+ else
+ warnlog "the thesaurus dialog does not appear fro mthe context menu of a selected word"
+ endif
+
+ call hCloseDocument
+endcase
'-------------------------------------------------------------------------------
testcase tiToolsHyphenation1
printlog " - Hyphenation without any text"
Call hNewDocument '/// New impress document ///'
sleep 3
- ExtrasSilbentrennungDraw '/// Try Silbentrennung with empty document ///'
- Kontext "Silbentrennung"
- if Silbentrennung.Exists(1) = True Then
+ ToolsLanguageHyphenationDraw '/// Try with empty document ///'
+ Kontext "Hyphenation"
+ if Hyphenation.Exists(1) = True Then
Warnlog " - Dialog ist da"
- Silbentrennung.Cancel
+ Hyphenation.Cancel
else
Printlog " - Hyphenation activated"
end if
@@ -200,11 +360,11 @@ testcase tiToolsHyphenation1
endif
end select
hTypeKeys "<Home>"
- ExtrasSilbentrennungDraw '/// Try Silbentrennung ///'
- Kontext "Silbentrennung"
- if Silbentrennung.Exists =True Then
+ ToolsLanguageHyphenationDraw '/// Try ///'
+ Kontext "Hyphenation"
+ if Hyphenation.Exists =True Then
Warnlog "Dialog exists"
- Silbentrennung.Cancel
+ Hyphenation.Cancel
else
Kontext "Active"
if Active.Exists then Active.OK
@@ -219,7 +379,8 @@ testcase tiToolsHyphenation2
dim iWaitIndex as integer
dim sExt as string
- Dim i : Dim DasWort : Dim DasWort2 : Dim DasWort3 : Dim DasWort4 : Dim DasWort5 : Dim DasWort6 : Dim DasWort7
+ Dim i : Dim DasWort2 : Dim DasWort3 : Dim DasWort4 : Dim DasWort5 : Dim DasWort6 : Dim DasWort7
+ Dim DasWort as string
dim sDraw as string
dim sFile as string
PrintLog "- Tools/Hyphenation2"
@@ -275,7 +436,7 @@ testcase tiToolsHyphenation2
EditCopy
sDraw = GetClipboardText()
EditSelectAll '/// Select whole text ///'
- ExtrasSilbentrennungDraw '/// Run Hyphenation ///'
+ ToolsLanguageHyphenationDraw '/// Run Hyphenation ///'
gMouseClick 50,50
hTypeKeys "<MOD1 END><HOME><MOD1 SHIFT RIGHT>" '/// Select part of text and compare it with original text at this place ///'
sleep 3
diff --git a/testautomation/graphics/optional/includes/global/g_zoom.inc b/testautomation/graphics/optional/includes/global/g_zoom.inc
index 30a6798d9082..30a6798d9082 100755..100644
--- a/testautomation/graphics/optional/includes/global/g_zoom.inc
+++ b/testautomation/graphics/optional/includes/global/g_zoom.inc
diff --git a/testautomation/graphics/optional/includes/global/gallery2.inc b/testautomation/graphics/optional/includes/global/gallery2.inc
index b86cedcf8154..b86cedcf8154 100755..100644
--- a/testautomation/graphics/optional/includes/global/gallery2.inc
+++ b/testautomation/graphics/optional/includes/global/gallery2.inc
diff --git a/testautomation/graphics/optional/includes/global/id_001.inc b/testautomation/graphics/optional/includes/global/id_001.inc
index 1525074e027f..1525074e027f 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_001.inc
+++ b/testautomation/graphics/optional/includes/global/id_001.inc
diff --git a/testautomation/graphics/optional/includes/global/id_002.inc b/testautomation/graphics/optional/includes/global/id_002.inc
index aed9631b4cd6..aed9631b4cd6 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_002.inc
+++ b/testautomation/graphics/optional/includes/global/id_002.inc
diff --git a/testautomation/graphics/optional/includes/global/id_003.inc b/testautomation/graphics/optional/includes/global/id_003.inc
index 27004c582828..27004c582828 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_003.inc
+++ b/testautomation/graphics/optional/includes/global/id_003.inc
diff --git a/testautomation/graphics/optional/includes/global/id_004.inc b/testautomation/graphics/optional/includes/global/id_004.inc
index b1034c331ded..b1034c331ded 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_004.inc
+++ b/testautomation/graphics/optional/includes/global/id_004.inc
diff --git a/testautomation/graphics/optional/includes/global/id_006.inc b/testautomation/graphics/optional/includes/global/id_006.inc
index a32bbd962ad5..d959d1cf828f 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_006.inc
+++ b/testautomation/graphics/optional/includes/global/id_006.inc
@@ -146,9 +146,9 @@ endcase
testcase tiToolsHyphenation
Call hNewDocument
- ExtrasSilbentrennungDraw
+ ToolsLanguageHyphenationDraw
WaitSlot (2000) 'sleep 2
- ExtrasSilbentrennungDraw
+ ToolsLanguageHyphenationDraw
Call hCloseDocument
endcase
diff --git a/testautomation/graphics/optional/includes/global/id_007.inc b/testautomation/graphics/optional/includes/global/id_007.inc
index 214b468e04d5..214b468e04d5 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_007.inc
+++ b/testautomation/graphics/optional/includes/global/id_007.inc
diff --git a/testautomation/graphics/optional/includes/global/id_008.inc b/testautomation/graphics/optional/includes/global/id_008.inc
index 0efbf5add49d..0efbf5add49d 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_008.inc
+++ b/testautomation/graphics/optional/includes/global/id_008.inc
diff --git a/testautomation/graphics/optional/includes/global/id_009.inc b/testautomation/graphics/optional/includes/global/id_009.inc
index ff8f41a10917..ff8f41a10917 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_009.inc
+++ b/testautomation/graphics/optional/includes/global/id_009.inc
diff --git a/testautomation/graphics/optional/includes/global/id_011.inc b/testautomation/graphics/optional/includes/global/id_011.inc
index 6c2ecd7ff08c..6c2ecd7ff08c 100755..100644
--- a/testautomation/graphics/optional/includes/global/id_011.inc
+++ b/testautomation/graphics/optional/includes/global/id_011.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_animation.inc b/testautomation/graphics/optional/includes/impress/i_animation.inc
index af2a67956e03..471ef1fada85 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_animation.inc
+++ b/testautomation/graphics/optional/includes/impress/i_animation.inc
@@ -39,7 +39,8 @@
testcase tExtrasAnimation
Printlog "- Tools/Animation"
Dim i
- Call hNewDocument '/// New impress document ///'
+ Call hNewDocument
+ Call sSelectEmptyLayout '/// New impress document ///'
sleep 2
InsertGraphicsFromFile '/// insert graphic file (sample.bmp) ///'
sleep 1
diff --git a/testautomation/graphics/optional/includes/impress/i_headerfooter.inc b/testautomation/graphics/optional/includes/impress/i_headerfooter.inc
index 4237e7a070ca..4237e7a070ca 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_headerfooter.inc
+++ b/testautomation/graphics/optional/includes/impress/i_headerfooter.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_pengine.inc b/testautomation/graphics/optional/includes/impress/i_pengine.inc
index 2d90d038b5d7..2d90d038b5d7 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_pengine.inc
+++ b/testautomation/graphics/optional/includes/impress/i_pengine.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_pengine1.inc b/testautomation/graphics/optional/includes/impress/i_pengine1.inc
index 5307cd665abd..5307cd665abd 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_pengine1.inc
+++ b/testautomation/graphics/optional/includes/impress/i_pengine1.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_pengine2.inc b/testautomation/graphics/optional/includes/impress/i_pengine2.inc
index 6d825baedac5..f10b77f30db3 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_pengine2.inc
+++ b/testautomation/graphics/optional/includes/impress/i_pengine2.inc
@@ -380,6 +380,7 @@ testcase tiPengine2ObjectsGetsEffects
printlog "Create a new presentation."
Call hNewDocument
+ Call sSelectEmptyLayout
sleep (1)
kontext "Toolbar"
diff --git a/testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc b/testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc
index f8a2b165b104..e5dbf1f53cc2 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc
+++ b/testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc
@@ -30,374 +30,146 @@
'* short description: Save & Load testing of Layout -templates.
'*
'**************************************************************************************
-' #1 tSaveLoadLayoutEmpty
-' #1 tSaveLoadLayoutOLE
-' #1 tSaveLoadLayoutText
-' #1 tSaveLoadLayoutOutline
-' #1 tSaveLoadLayoutPicture
-' #1 tSaveLoadLayoutChart
-' #1 tSaveLoadLayoutSpreadsheet
-'\*************************************************************************************
testcase tSaveLoadLayoutEmpty
- goto endsub
Dim NewFileDir as String
NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
- '/// Create New folder in the Work-directory ///'
+ printlog "Create New folder in the Work-directory"
printlog " Will try to create the directory: " + NewFileDir
app.mkdir NewFileDir
- '/// Create a new document, add an empty Layout, Save the document in all available Formats, and open the saved files. ///'
+ printlog "Create a new document, add an empty Layout, Save the document in all available Formats, and open the saved files."
- '/// Make new Presentation ///'
+ printlog "Make new Presentation"
gApplication = "IMPRESS"
Call hNewDocument
- '/// Choose and Insert an empty Layout. ///'
+ printlog "Choose and Insert an empty Layout."
printlog " Choose and Insert an empty Layout."
FormatModifyPage
sleep (1)
kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
+ LayoutsPreview.TypeKeys "<HOME>"
+ kontext "Pagelayout_UndoDeleteWarning"
+ if Pagelayout_UndoDeleteWarning.exists then
Pagelayout_UndoDeleteWarning.ok
end if
kontext "Tasks"
- '/// Press "Enter" to use the layout on the current slide ///'
+ printlog "Press Enter to use the layout on the current slide"
LayoutsPreview.TypeKeys "<RETURN>"
sleep (5)
- '/// Save the document in different formats... ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
+ printlog "Save the document in different formats..."
+ printlog "Close the file."
+ printlog "Load the different files."
call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
- '/// Delete the different files. ///'
+ printlog "Delete the different files."
printlog " Will try to delete the directory: " + NewFileDir
app.rmDir NewFileDir
printlog "tSaveLoadLayoutEmpty ended."
- '/// End the test ///'
+ printlog "End the test"
endcase 'tSaveLoadLayoutEmpty
'****************************************************************************************************
-testcase tSaveLoadLayoutOLE
+testcase tSaveLoadLayoutText
+ printlog "Testing layout with text."
Dim NewFileDir as String
NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
- '/// Create New folder in the Work-directory ///'
- printlog " Will try to create the directory: " + NewFileDir
+ printlog "Create New folder in the Work-directory"
+ printlog " Will try to create the directory: " + NewFileDir
app.mkdir NewFileDir
- '/// Create a new document, add a Layout with an OLE-field, Save the document in all available Formats, and open the saved files. ///'
+ printlog "Create a new document, add a Layout with a Textfield, Save the document in all available Formats, and open the saved files."
- '/// Make new Presentation ///'
+ printlog "Make new Presentation"
gApplication = "IMPRESS"
Call hNewDocument
- '/// Choose and Insert an Layout with an OLE. ///'
- printlog " Choose and Insert an Layout with an OLE."
+ printlog "Choose and Insert an Layout with a Text-field."
FormatModifyPage
sleep (1)
kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
+ LayoutsPreview.TypeKeys "<HOME>"
kontext "Pagelayout_UndoDeleteWarning"
if Pagelayout_UndoDeleteWarning.exists then
Pagelayout_UndoDeleteWarning.ok
end if
kontext "Tasks"
- '/// select the OLE placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>",13)
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- try
- sleep (2)
- kontext "OLEObjektInsert"
- sleep (1)
- OLEObjektInsert.Cancel
- Printlog " Correctly inserted a layout with an 'Insert OLE-Object'-frame."
- catch
- warnlog "Ole wasn't selected :-("
- CALL hCloseDocument
- Goto Endsub
- endcatch
- sleep (5)
-
- '/// Save the document in all available formats... ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
- call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
-
- '/// Delete the different files. ///'
- printlog " Will try to delete the directory: " + NewFileDir
- app.rmDir NewFileDir
-
- printlog "tSaveLoadLayoutOLE ended."
- '/// End the test ///'
-endcase 'tSaveLoadLayoutOLE
-
-'****************************************************************************************************
-
-testcase tSaveLoadLayoutText
- Dim NewFileDir as String
- NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
-
- '/// Create New folder in the Work-directory ///'
- printlog " Will try to create the directory: " + NewFileDir
- app.mkdir NewFileDir
-
- '/// Create a new document, add a Layout with a Textfield, Save the document in all available Formats, and open the saved files. ///'
-
- '/// Make new Presentation ///'
- gApplication = "IMPRESS"
- Call hNewDocument
-
- '/// Choose and Insert an Layout with a Text-field. ///'
- printlog " Choose and Insert an Layout with a Text-field."
- FormatModifyPage
+ printlog "select the Text placeholder and activate it with [Return]"
+ LayoutsPreview.TypeKeys ("<RIGHT>",5)
sleep (1)
- kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
- Pagelayout_UndoDeleteWarning.ok
- end if
- kontext "Tasks"
- '/// select the Text placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>")
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- DocumentImpress.TypeKeys ("<ESCAPE>")
-' LayoutsPreview.TypeKeys "<RETURN>"
+ LayoutsPreview.TypeKeys ("<Return>")
+ sleep (1)
+ kontext "DocumentImpress"
+ DocumentImpress.TypeKeys ("<TAB>")
+ DocumentImpress.TypeKeys ("<Return>")
+ DocumentImpress.TypeKeys ("<ESCAPE>")
sleep (5)
- '/// Save the document in all available formats... ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
+ printlog "Save the document in all available formats..."
+ printlog "Close the file."
+ printlog "Load the different files."
call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
- '/// Delete the different files. ///'
- printlog " Will try to delete the directory: " + NewFileDir
+ printlog "Delete the different files."
+ printlog "Will try to delete the directory: " + NewFileDir
app.rmDir NewFileDir
printlog "tSaveLoadLayoutText ended."
- '/// End the test ///'
endcase 'tSaveLoadLayoutText
'****************************************************************************************************
-testcase tSaveLoadLayoutOutline
+testcase tSaveLoadLayoutContent
Dim NewFileDir as String
NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
- '/// Create New folder in the Work-directory ///'
+ printlog "Create New folder in the Work-directory"
printlog " Will try to create the directory: " + NewFileDir
app.mkdir NewFileDir
- '/// Create a new document, add a Layout with an Outline-field, Save the document in all available Formats, and open the saved files. ///'
+ printlog "Create a new document, add a Layout with a Content-field, Save the document in all available Formats, and open the saved files."
- '/// Make new Presentation ///'
+ printlog "Make new Presentation"
gApplication = "IMPRESS"
Call hNewDocument
- '/// Choose and Insert an Layout with a Outline-field. ///'
- printlog " Choose and Insert an Layout with a Outline-field."
+ printlog "Choose and Insert an Layout with a Content-field."
FormatModifyPage
sleep (1)
kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
+ LayoutsPreview.TypeKeys "<HOME>"
+ kontext "Pagelayout_UndoDeleteWarning"
+ if Pagelayout_UndoDeleteWarning.exists then
Pagelayout_UndoDeleteWarning.ok
end if
kontext "Tasks"
- '/// select the Outline placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>",3)
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- DocumentImpress.TypeKeys ("<ESCAPE>")
- sleep (5)
-
- '/// Save the document in all available formats... ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
- call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
-
- '/// Delete the different files. ///'
- printlog " Will try to delete the directory: " + NewFileDir
- app.rmDir NewFileDir
-
- printlog "tSaveLoadLayoutOutline ended."
- '/// End the test ///'
-endcase 'tSaveLoadLayoutOutline
-
-'****************************************************************************************************
-
-testcase tSaveLoadLayoutPicture
- Dim NewFileDir as String
- NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
-
- '/// Create New folder in the Work-directory ///'
- printlog " Will try to create the directory: " + NewFileDir
- app.mkdir NewFileDir
-
- '/// Create a new document, add a Layout with a Graphic-field, Save the document in all available Formats, and open the saved files. ///'
-
- '/// Make new Presentation ///'
- gApplication = "IMPRESS"
- Call hNewDocument
-
- '/// Choose and Insert an Layout with a Graphic-field. ///'
- printlog " Choose and Insert an Layout with a Graphic-field."
- FormatModifyPage
+ printlog "select the Picture placeholder and activate it with [Return]"
+ LayoutsPreview.TypeKeys ("<RIGHT>",2)
sleep (1)
- kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
- Pagelayout_UndoDeleteWarning.ok
- end if
- kontext "Tasks"
- '/// select the Picture placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>",8)
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- DocumentImpress.TypeKeys ("<ESCAPE>")
- sleep (5)
+ LayoutsPreview.TypeKeys ("<Return>")
+ sleep (1)
+ kontext "DocumentImpress"
+ DocumentImpress.TypeKeys ("<TAB><TAB>")
+ DocumentImpress.TypeKeys ("<Return>")
+ DocumentImpress.TypeKeys ("<ESCAPE>")
+ sleep (5)
- '/// Save the document in all available formats. ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
+ printlog "Save the document in all available formats."
+ printlog "Close the file."
+ printlog "Load the different files."
call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
- '/// Delete the different files. ///'
+ printlog "Delete the different files."
printlog " Will try to delete the directory: " + NewFileDir
app.rmDir NewFileDir 'ConvertPath (gOfficePath + "user\work\LayoutTest\")
printlog "tSaveLoadLayoutPicture ended."
- '/// End the test ///'
endcase 'tSaveLoadLayoutPicture
'****************************************************************************************************
-
-testcase tSaveLoadLayoutChart
- Dim NewFileDir as String
- NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
-
- '/// Create New folder in the Work-directory ///'
- printlog " Will try to create the directory: " + NewFileDir
- app.mkdir NewFileDir
-
- '/// Create a new document, add a Layout for a Chart, Save the document in all available formats, and open the saved files. ///'
-
- '/// Make new Presentation ///'
- gApplication = "IMPRESS"
- Call hNewDocument
-
- '/// Choose and Insert an Layout with a Chart-field. ///'
- printlog " Choose and Insert an Layout with a Chart-field."
- FormatModifyPage
- sleep (1)
- kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
- Pagelayout_UndoDeleteWarning.ok
- end if
- kontext "Tasks"
- '/// select the Chart placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>",6)
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- DocumentImpress.TypeKeys ("<ESCAPE>")
- sleep (5)
-
- '/// Save the document in all available formats. ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
- call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
-
- '/// Delete the different files. ///'
- printlog " Will try to delete the directory: " + NewFileDir
- app.rmDir NewFileDir
-
- printlog "tSaveLoadLayoutChart ended."
- '/// End the test ///'
-endcase 'tSaveLoadLayoutChart
-
-'****************************************************************************************************
-
-testcase tSaveLoadLayoutSpreadsheet
- Dim NewFileDir as String
- NewFileDir = ConvertPath (gOfficePath + "user\work\LayoutTest\")
-
- '/// Create New folder in the Work-directory ///'
- printlog " Will try to create the directory: " + NewFileDir
- app.mkdir NewFileDir
-
- '/// Create a new document, add a Layout containing a Spreadsheet, Save the document in all available Formats, and open the saved files. ///'
-
- '/// Make new Presentation ///'
- gApplication = "IMPRESS"
- Call hNewDocument
-
- '/// Choose and Insert an Layout with a Spreadsheet-field. ///'
- printlog " Choose and Insert an Layout with a Spreadsheet-field."
- FormatModifyPage
- sleep 1
- kontext "Tasks"
- LayoutsPreview.TypeKeys "<HOME>"
- kontext "Pagelayout_UndoDeleteWarning"
- if Pagelayout_UndoDeleteWarning.exists then
- Pagelayout_UndoDeleteWarning.ok
- end if
- kontext "Tasks"
- '/// select the Spreadsheet placeholder and activate it with [Return] ///'
- LayoutsPreview.TypeKeys ("<RIGHT>",7)
- sleep (1)
- LayoutsPreview.TypeKeys ("<Return>")
- sleep (1)
- kontext "DocumentImpress"
- DocumentImpress.TypeKeys ("<TAB><TAB><TAB>")
- DocumentImpress.TypeKeys ("<Return>")
- DocumentImpress.TypeKeys ("<ESCAPE>")
- sleep (5)
-
- '/// Save the document in all available formats. ///'
- '/// Close the file. ///'
- '/// Load the different files. ///'
- call fSaveLoadAllFormats (NewFileDir) 'Runs the Function below.
-
- '/// Delete the different files. ///'
- printlog " Will try to delete the directory: " + NewFileDir
- app.rmDir NewFileDir 'ConvertPath (gOfficePath + "user\work\LayoutTest\")
-
- printlog "tSaveLoadLayoutSpreadsheet ended."
- '/// End the test ///'
-endcase 'tSaveLoadLayoutSpreadsheet
-
-'-------------------------------------------------------------------------------
-
diff --git a/testautomation/graphics/optional/includes/impress/i_shape.inc b/testautomation/graphics/optional/includes/impress/i_shape.inc
index cd29dbb62e31..cd29dbb62e31 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_shape.inc
+++ b/testautomation/graphics/optional/includes/impress/i_shape.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_slidecopy.inc b/testautomation/graphics/optional/includes/impress/i_slidecopy.inc
index d7ee257d1bb2..73971c2e889f 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_slidecopy.inc
+++ b/testautomation/graphics/optional/includes/impress/i_slidecopy.inc
@@ -43,7 +43,8 @@ testcase tiSlideCopyNewPresentation
Dim value13 as string
printlog "This test copies one slide from one presentation to another."
printlog "Make new presentation"
- Call hNewDocument
+ Call hNewDocument
+ Call sSelectEmptyLayout
printlog "Insert three objects: Connector, Door-plate, and Smiley."
printlog "First we Insert a Connector."
@@ -264,11 +265,10 @@ testcase tiSlideCopyDuplicate
Dim value12 as string
Dim value13 as string
dim i as integer
- '/// Make a duplicate of a slide. In the same presentation ///'
- '/// Make new presentation ///'
+ printlog "Make new presentation"
Call hNewDocument
- '/// Insert three objects: Connector, Door-plate, and Smiley ///'
- '1 Insert Connector.
+ Call sSelectEmptyLayout
+ printlog "Insert Connector."
kontext "Toolbar"
sleep 1
try
@@ -289,11 +289,11 @@ testcase tiSlideCopyDuplicate
hTypeKeys "<TAB>", 1
sleep (1)
- 'rename object
+ printlog "rename object"
DocumentImpress.TypeKeys "<SHIFT F10>"
sleep 1
- 'Choose rename.
+ printlog "Choose rename"
if hMenuFindSelect(27027, true, 14) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
@@ -307,11 +307,11 @@ testcase tiSlideCopyDuplicate
kontext "DocumentImpress"
hMouseClick DocumentImpress, 90, 90
- '2 Insert Door-plate.
+ printlog "2 Insert Door-plate"
kontext "Toolbar"
sleep 1
try
- StarShapes.TearOff ' insert connector
+ StarShapes.TearOff
catch
warnlog "bug for GH from FHA; .tearoff doesnt tell success"
endcatch
@@ -328,11 +328,11 @@ testcase tiSlideCopyDuplicate
hTypeKeys "<TAB>", 2
sleep (1)
- 'Rename object
+ printlog "Rename object"
kontext "DocumentImpress"
DocumentImpress.TypeKeys "<SHIFT F10>"
sleep (1)
- 'Choose rename.
+ printlog "Choose rename."
if hMenuFindSelect(27027, true, 15) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
@@ -346,11 +346,11 @@ testcase tiSlideCopyDuplicate
kontext "DocumentImpress"
hMouseClick DocumentImpress, 90, 90
- '3 Insert Smiley.
+ printlog "Insert Smiley."
kontext "Toolbar"
sleep 1
try
- SymbolShapes.TearOff ' insert connector
+ SymbolShapes.TearOff
catch
warnlog "bug for GH from FHA; .tearoff doesnt tell success"
endcatch
@@ -366,10 +366,10 @@ testcase tiSlideCopyDuplicate
hTypeKeys "<TAB>", 3
sleep (1)
- 'rename object
+ printlog "rename object"
DocumentImpress.TypeKeys "<SHIFT F10>"
sleep (1)
- 'Choose rename.
+ printlog "Choose rename"
if hMenuFindSelect(27027, true, 15) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
@@ -383,7 +383,7 @@ testcase tiSlideCopyDuplicate
kontext "DocumentImpress"
hMouseClick DocumentImpress, 90, 90
- '/// Close the bars we opened before. ///'
+ printlog "Close the bars we opened before."
kontext "Connectorsbar"
if Connectorsbar.Exists then Connectorsbar.Close
kontext "SymbolShapes"
@@ -391,22 +391,22 @@ testcase tiSlideCopyDuplicate
kontext "StarShapes"
if StarShapes.Exists then StarShapes.Close
- '/// Copy the slide to the clipboard ///'
+ printlog "Copy the slide to the clipboard"
kontext "Slides"
SlidesControl.TypeKeys "<PAGEUP>"
sleep (1)
SlidesControl.TypeKeys "<SHIFT F10>"
sleep (1)
- 'Choose `Copy`
+ printlog "Choose `Copy`"
if hMenuFindSelect(5711, true, 10) = false then
Warnlog "Context-Menu-entry `Copy` was not found.Therefore the test ends."
Call hCloseDocument
Goto Endsub
endif
- '/// Paste the content from the Clipboard ///'
+ printlog "Paste the content from the Clipboard"
kontext "Slides"
- 'open context-menu choose 'paste'
+ printlog "open context-menu choose 'paste'"
EditPaste
@@ -416,31 +416,31 @@ testcase tiSlideCopyDuplicate
InsertPaste.OK
endif
sleep (2)
- '/// Check if we have two slides, and that the objects exists, and has the right values ///'
+ printlog "Check if we have two slides, and that the objects exists, and has the right values "
kontext "Slides"
SlidesControl.TypeKeys "<PAGEUP>"
- for i = 1 to 2 ' we have two slides, so we do this two times to check everything.
+ for i = 1 to 2
Printlog "Checking objects the " + i + " + time."
kontext "DocumentImpress"
hMouseClick DocumentImpress, 90, 90
- DocumentImpress.TypeKeys "<TAB>" 'Select the first object.
+ DocumentImpress.TypeKeys "<TAB>"
sleep (1)
- 'Bring up the kontext-menu for the object
+
DocumentImpress.TypeKeys "<SHIFT F10>"
sleep 1
- 'Choose rename.
+ printlog "Choose rename"
if hMenuFindSelect(27027, true, 14) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
Goto Endsub
endif
- 'Read out what the name is, and check if its correct.
- kontext "NameDlgObject" '"LinieName" "NameDlgPage"
+ printlog "Read out what the name is, and check if its correct."
+ kontext "NameDlgObject"
value1 = NameField.GetText
- NameDlgObject.OK 'TypeKeys "<Enter>"
+ NameDlgObject.OK
if value1 = "First" then
printlog "First object was found correctly"
@@ -453,14 +453,14 @@ testcase tiSlideCopyDuplicate
sleep (1)
DocumentImpress.TypeKeys "<SHIFT F10>"
- 'Choose rename.
+ printlog "Choose rename"
if hMenuFindSelect(27027, true, 15) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
Goto Endsub
endif
- 'Read out what the name is, and check if its correct.
+ printlog "Read out what the name is, and check if its correct."
kontext "NameDlgObject"
value12 = NameField.GetText
NameDlgObject.OK
@@ -472,20 +472,21 @@ testcase tiSlideCopyDuplicate
endif
hTypeKeys "<ESCAPE>"
- hTypeKeys "<TAB>", 3 'Select the third object.
+ printlog "Select the third object."
+ hTypeKeys "<TAB>", 3
sleep (1)
- 'Bring up the kontext-menu for the object
+ printlog "Bring up the kontext-menu for the object"
DocumentImpress.TypeKeys "<SHIFT F10>"
sleep 1
- 'Choose rename.
+ printlog "Choose rename"
if hMenuFindSelect(27027, true, 15) = false then
Warnlog "Context-Menu-entry `Rename` was not found. Therefore the test ends."
Call hCloseDocument
Goto Endsub
endif
- 'Read out what the name is, and check if its correct.
+ printlog "Read out what the name is, and check if its correct."
kontext "NameDlgObject"
value13 = NameField.GetText
NameDlgObject.OK
@@ -499,7 +500,7 @@ testcase tiSlideCopyDuplicate
SlidesControl.TypeKeys "<DOWN>"
next i
- '/// Close Presentation. End testcase ///'
+ printlog " Close Presentation. End testcase "
Call hCloseDocument
endcase 'tiSlidecopyDuplicate
diff --git a/testautomation/graphics/optional/includes/impress/i_slidelayer.inc b/testautomation/graphics/optional/includes/impress/i_slidelayer.inc
index d7ee085de381..597762e8cf7e 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_slidelayer.inc
+++ b/testautomation/graphics/optional/includes/impress/i_slidelayer.inc
@@ -49,6 +49,7 @@ testcase tiInsertExpandSlide
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
'/// create presupposition ///
'///+ View->Master View->Outline View ///'
ViewWorkspaceOutlineView
diff --git a/testautomation/graphics/optional/includes/impress/i_slideshow2.inc b/testautomation/graphics/optional/includes/impress/i_slideshow2.inc
index 0bc7e9a80654..1b88116f1b5a 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_slideshow2.inc
+++ b/testautomation/graphics/optional/includes/impress/i_slideshow2.inc
@@ -44,7 +44,8 @@ testcase tPraesentationAnimation
Dim i
Printlog "- Slideshow/Animation"
- Call hNewDocument '/// new document ///'
+ Call hNewDocument
+ Call sSelectEmptyLayout '/// new document ///'
sleep 2
InsertGraphicsFromFile '/// insert graphic ///'
Kontext "OeffnenDlg"
@@ -411,6 +412,7 @@ testcase tSlideShowInteraction
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 5
setStartCurrentPage(TRUE) '/// Set "start with current page to ON ///'
@@ -839,6 +841,8 @@ endcase
testcase tAendernObjektBenennen
Printlog "- Context/Name object"
Call hNewDocument
+ Call sSelectEmptyLayout '/// new document ///'
+
sleep 1
Kontext "DocumentImpress"
if NOT DocumentImpress.Exists then
diff --git a/testautomation/graphics/optional/includes/impress/i_slideshow3.inc b/testautomation/graphics/optional/includes/impress/i_slideshow3.inc
index 0f23f412bddf..0cf806cd74cd 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_slideshow3.inc
+++ b/testautomation/graphics/optional/includes/impress/i_slideshow3.inc
@@ -43,6 +43,7 @@
testcase tExtrasInteraktion
Printlog " - SlideShow/Interaction"
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
Call hTextrahmenErstellen ("Seite 1",10,10,40,40) '/// create textbox ///'
SlideShowPresentationSettings '/// Set slide show settings ///'
@@ -77,6 +78,7 @@ testcase tExtrasInteraktion
endcatch
hCloseDocument
Call hNewDocument
+ Call sSelectEmptyLayout
Call hRechteckErstellen (50,50,80,80) '/// create rectangle ///'
SlideShowInteraction
Kontext "Interaktion"
diff --git a/testautomation/graphics/optional/includes/impress/i_stylist.inc b/testautomation/graphics/optional/includes/impress/i_stylist.inc
index 97ddb39999df..97ddb39999df 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_stylist.inc
+++ b/testautomation/graphics/optional/includes/impress/i_stylist.inc
diff --git a/testautomation/graphics/optional/includes/impress/i_us2_present.inc b/testautomation/graphics/optional/includes/impress/i_us2_present.inc
index a1c7ab18acb6..6c8fede6a530 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_us2_present.inc
+++ b/testautomation/graphics/optional/includes/impress/i_us2_present.inc
@@ -168,6 +168,7 @@ testcase i_us2_pres1
SlidesControl.TypeKeys "<HOME>"
SlidesControl.TypeKeys "<PAGEDOWN>", 10
SlidesControl.TypeKeys "<RETURN>"
+call sSelectEmptyLayout
printlog "Insert Smiley, + two circles around the eyes, + two new pupils,"
printlog "placed at some interesteing place inside the circles."
Kontext "Toolbar"
@@ -228,8 +229,6 @@ testcase i_us2_pres1
InsertSlide
printlog " Inserted new slide."
kontext "DocumentImpress"
- EditSelectAll
- DocumentImpress.TypeKeys "<DELETE>"
printlog "Bla bla about everything..."
call hTextrahmenErstellen ("Bla bla about everything...",20,20,70,30)
@@ -237,8 +236,6 @@ testcase i_us2_pres1
InsertSlide
printlog " Inserted new slide."
kontext "DocumentImpress"
- EditSelectAll
- DocumentImpress.TypeKeys "<DELETE>"
printlog "Write text: Q & A"
call hTextrahmenErstellen ("Q & A",20,20,70,30)
DocumentImpress.TypeKeys "<SHIFT HOME>"
@@ -247,8 +244,7 @@ testcase i_us2_pres1
printlog "Add a new slide."
InsertSlide
kontext "DocumentImpress"
- EditSelectAll
- DocumentImpress.TypeKeys "<DELETE>"
+
printlog "Thanks for listening, time for coffee... (ending)"
call hTextrahmenErstellen ("Class dismissed...",20,20,70,30)
diff --git a/testautomation/graphics/optional/includes/impress/i_us_present.inc b/testautomation/graphics/optional/includes/impress/i_us_present.inc
index d161ab4f9de2..26a17b3a80be 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_us_present.inc
+++ b/testautomation/graphics/optional/includes/impress/i_us_present.inc
@@ -40,68 +40,102 @@
'\********************************************************************
testcase i_us_presentation1
- dim iPictures as integer
+ dim iPictures as integer
dim PresentationFile1 as string
PresentationFile1 = ConvertPath ((ConvertPath (gOfficePath + "user\work\PowerPes1.odp")))
printlog "New impress document"
Call hNewDocument
- WaitSlot (2000)
- kontext "DocumentImpress"
+ Call sSelectEmptyLayout
+ WaitSlot (2000)
+ kontext "DocumentImpress"
+ printlog "Add second Master-Page "
+ ViewMasterPage
+ kontext "Slides"
+ SlidesControl.OpenContextMenu(true)
+ sleep (2)
+ printlog "New master"
+ MenuSelect(MenuGetItemID(1))
+ sleep (1)
+ ViewMasterPage
+ kontext "Slides"
+ SlidesControl.OpenContextMenu(true)
+ sleep (2)
+ MenuSelect(MenuGetItemID(1)) 'New Master
+ sleep (1)
+ printlog " Inserted second Master-Slide"
- printlog "Add second Master-Page"
- ViewMasterPage
- kontext "Slides"
- SlidesControl.OpenContextMenu(true)
- sleep (2)
- MenuSelect(MenuGetItemID(1)) 'New Master
- sleep (1)
- printlog " Inserted second Master-Slide"
-
- printlog "Background: picture (Gallery)"
- Kontext "Gallery"
- if Gallery.Exists(2) then
- warnlog " The Gallery was already visible. Check earlier ran tests for inconsistency."
- sleep (2)
- else
- ToolsGallery
- WaitSlot (2000)
- end if
+ printlog "set background to picture(Gallery)"
+ Kontext "Gallery"
+ if Gallery.Exists(2) then
+ warnlog " The Gallery was already visible. Check earlier ran tests for inconsistency."
+ sleep (2)
+ else
+ ToolsGallery
+ WaitSlot (2000)
+ end if
- if gOOO = TRUE then 'OpenOffice.org
- select case iSprache
- case 01 : iPictures = 1 'English
- case else : iPictures = 1 'Unknown
- warnlog "Please insert the entrienumbers for 'Backgrounds'. Language: " + iSprache
- end select
-
- else ' StarOffice...
- select case iSprache
- case 01 : iPictures = 21 'English
- case 07 : iPictures = 28 'Russian
- case 31 : iPictures = 04 'Netherlands
- case 33 : iPictures = 22 'French
- case 34 : iPictures = 12 'Spanish
- case 36 : iPictures = 17 'Hungaria
- case 39 : iPictures = 23 'Italian
- case 46 : iPictures = 09 'Swedish
- case 48 : iPictures = 20 'Polish
- case 49 : iPictures = 11 'German
- case 55 : iPictures = 16 'Portuguese
- case 81 : iPictures = 22 'Japanese
- case 82 : iPictures = 04 'Korean
- case 86 : iPictures = 06 'Simplified
- case 88 : iPictures = 17 'Traditional
- case else : iPictures = 21 'Unknown
+ if gOOO = TRUE then 'OpenOffice.org
+ select case iSprache
+ case 01 : iPictures = 1 'English
+ case else : iPictures = 1 'Unknown
warnlog "Please insert the entrienumbers for 'Backgrounds'. Language: " + iSprache
- end select
+ end select
+
+ else ' StarOffice...
+ select case iSprache
+ case 01 : iPictures = 21 'English
+ case 07 : iPictures = 28 'Russian
+ case 31 : iPictures = 04 'Netherlands
+ case 33 : iPictures = 22 'French
+ case 34 : iPictures = 12 'Spanish
+ case 36 : iPictures = 17 'Hungaria
+ case 39 : iPictures = 23 'Italian
+ case 46 : iPictures = 09 'Swedish
+ case 48 : iPictures = 20 'Polish
+ case 49 : iPictures = 11 'German
+ case 55 : iPictures = 16 'Portuguese
+ case 81 : iPictures = 22 'Japanese
+ case 82 : iPictures = 04 'Korean
+ case 86 : iPictures = 06 'Simplified
+ case 88 : iPictures = 17 'Traditional
+ case else : iPictures = 21 'Unknown
+ warnlog "Please insert the entrienumbers for 'Backgrounds'. Language: " + iSprache
+ end select
end if
-
- kontext "Gallery"
- Gallerys.Select (iPictures)
+ kontext "Gallery"
+ Gallerys.Select (iPictures)
+ View.TypeKeys "<HOME><RIGHT><RIGHT>"
+ printlog "OpenContextMenu"
+ View.TypeKeys "<SHIFT F10>"
+ sleep (2)
+ MenuSelect(MenuGetItemID(1))
+ sleep (2)
+ MenuSelect(MenuGetItemID(1))
+ sleep (2)
+ printlog "Check that we really got a copy of the object"
+ kontext "DocumentImpress"
+ DocumentImpress.OpenContextMenu(true)
+ sleep (2)
+ MenuSelect 27353
+ sleep (2)
+ Kontext "ExportierenDlg"
+ if ExportierenDlg.IsVisible(5) then
+ printlog " Gallery-object correctly copied into Slide."
+ ExportierenDlg.Close
+ else
+ warnlog " Doesn't seem like we copied anything from the Gallery... ?"
+ end if
+ kontext "GraphicObjectbar"
+ if GraphicObjectbar.Exists(5) = FALSE then
+ kontext "DocumentImpress"
+ ViewToolbarsPicture
+ end if
+
+ Kontext "Gallery"
View.TypeKeys "<HOME><RIGHT><RIGHT>"
printlog "'OpenContextMenu"
- View.TypeKeys "<SHIFT F10>"
+ View.TypeKeys "<SHIFT F10>"
sleep (2)
MenuSelect(MenuGetItemID(1)) 'Insert
sleep (2)
@@ -126,30 +160,31 @@ testcase i_us_presentation1
ViewToolbarsPicture
end if
- printlog "50% Transparency"
- WaitSlot (2000)
- kontext "GraphicObjectbar" ' the one with Transparency
- Transparenz.SetText "50"
- sleep (1)
-
- printlog "Mosaic 16px x 16px"
- Filter.TearOff
- sleep (1)
- kontext "GraphicFilterBar"
- Mosaic.Click
- WaitSlot (2000)
- kontext "Mosaic"
- Width.SetText "16"
- Height.SetText "16"
- Mosaic.OK
-
- kontext "GraphicFilterBar"
- GraphicFilterBar.Close
-
- ToolsGallery
- WaitSlot (1000)
- kontext "DocumentImpress"
- gMouseClick 50,50
+ printlog " 50% Transparency"
+ WaitSlot (2000)
+ kontext "GraphicObjectbar"
+ Transparenz.SetText "50"
+ sleep (1)
+
+ printlog "Mosaic 16px x 16px"
+ Filter.TearOff
+ sleep (1)
+ kontext "GraphicFilterBar"
+ Mosaic.Click
+ WaitSlot (2000)
+ kontext "Mosaic"
+ Width.SetText "16"
+ Height.SetText "16"
+ Mosaic.OK
+
+ kontext "GraphicFilterBar"
+ GraphicFilterBar.Close
+
+ ToolsGallery
+ WaitSlot (1000)
+ kontext "DocumentImpress"
+ hTypeKeys "<TAB>"
+
sleep (1)
FormatPositionAndSize
WaitSlot (1000)
diff --git a/testautomation/graphics/optional/includes/impress/i_view.inc b/testautomation/graphics/optional/includes/impress/i_view.inc
index 56c5654315bf..56c5654315bf 100755..100644
--- a/testautomation/graphics/optional/includes/impress/i_view.inc
+++ b/testautomation/graphics/optional/includes/impress/i_view.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_002_.inc b/testautomation/graphics/optional/includes/impress/im_002_.inc
index 2a7dd1dffa2e..2a7dd1dffa2e 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_002_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_002_.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_003_.inc b/testautomation/graphics/optional/includes/impress/im_003_.inc
index 6197e75c0fb4..6197e75c0fb4 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_003_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_003_.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_004_.inc b/testautomation/graphics/optional/includes/impress/im_004_.inc
index 230da47a4e87..230da47a4e87 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_004_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_004_.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_005_.inc b/testautomation/graphics/optional/includes/impress/im_005_.inc
index b743f32fb695..b743f32fb695 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_005_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_005_.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_007_.inc b/testautomation/graphics/optional/includes/impress/im_007_.inc
index fcd80a8d8f5a..fcd80a8d8f5a 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_007_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_007_.inc
diff --git a/testautomation/graphics/optional/includes/impress/im_011_.inc b/testautomation/graphics/optional/includes/impress/im_011_.inc
index d31586b9079c..d31586b9079c 100755..100644
--- a/testautomation/graphics/optional/includes/impress/im_011_.inc
+++ b/testautomation/graphics/optional/includes/impress/im_011_.inc
diff --git a/testautomation/graphics/optional/includes/impress/options.inc b/testautomation/graphics/optional/includes/impress/options.inc
index 3443ecf91198..3443ecf91198 100755..100644
--- a/testautomation/graphics/optional/includes/impress/options.inc
+++ b/testautomation/graphics/optional/includes/impress/options.inc
diff --git a/testautomation/graphics/required/d_updt.bas b/testautomation/graphics/required/d_updt.bas
index 9d56a2c87fed..d191f2adea1c 100755..100644
--- a/testautomation/graphics/required/d_updt.bas
+++ b/testautomation/graphics/required/d_updt.bas
@@ -63,7 +63,7 @@ sub main
call id_004
Call D_005_
call id_005
- call id_006
+ call id_Tools
call d_007
call id_007
call id_008
diff --git a/testautomation/graphics/required/i_updt_1.bas b/testautomation/graphics/required/i_updt_1.bas
index 1d9b28f2aea9..141b261e3ee9 100755..100644
--- a/testautomation/graphics/required/i_updt_1.bas
+++ b/testautomation/graphics/required/i_updt_1.bas
@@ -58,7 +58,7 @@ sub main
Call im_004_
call id_004
call id_005
- call id_006
+ call id_Tools
Call hStatusOut
end sub
diff --git a/testautomation/graphics/required/includes/draw/d_002_.inc b/testautomation/graphics/required/includes/draw/d_002_.inc
index d3d0ee81a9c3..d3d0ee81a9c3 100755..100644
--- a/testautomation/graphics/required/includes/draw/d_002_.inc
+++ b/testautomation/graphics/required/includes/draw/d_002_.inc
diff --git a/testautomation/graphics/required/includes/draw/d_003_.inc b/testautomation/graphics/required/includes/draw/d_003_.inc
index 3a7c7da12c38..3a7c7da12c38 100755..100644
--- a/testautomation/graphics/required/includes/draw/d_003_.inc
+++ b/testautomation/graphics/required/includes/draw/d_003_.inc
diff --git a/testautomation/graphics/required/includes/draw/d_005_.inc b/testautomation/graphics/required/includes/draw/d_005_.inc
index 046e0bd76a30..046e0bd76a30 100755..100644
--- a/testautomation/graphics/required/includes/draw/d_005_.inc
+++ b/testautomation/graphics/required/includes/draw/d_005_.inc
diff --git a/testautomation/graphics/required/includes/draw/d_007.inc b/testautomation/graphics/required/includes/draw/d_007.inc
index 6582ff2c34c1..6582ff2c34c1 100755..100644
--- a/testautomation/graphics/required/includes/draw/d_007.inc
+++ b/testautomation/graphics/required/includes/draw/d_007.inc
diff --git a/testautomation/graphics/required/includes/global/gallery.inc b/testautomation/graphics/required/includes/global/gallery.inc
index 5019884973ac..5019884973ac 100755..100644
--- a/testautomation/graphics/required/includes/global/gallery.inc
+++ b/testautomation/graphics/required/includes/global/gallery.inc
diff --git a/testautomation/graphics/required/includes/global/gallery2.inc b/testautomation/graphics/required/includes/global/gallery2.inc
index a38e797502cc..a38e797502cc 100755..100644
--- a/testautomation/graphics/required/includes/global/gallery2.inc
+++ b/testautomation/graphics/required/includes/global/gallery2.inc
diff --git a/testautomation/graphics/required/includes/global/id_001.inc b/testautomation/graphics/required/includes/global/id_001.inc
index af835e16fec1..af835e16fec1 100755..100644
--- a/testautomation/graphics/required/includes/global/id_001.inc
+++ b/testautomation/graphics/required/includes/global/id_001.inc
diff --git a/testautomation/graphics/required/includes/global/id_002.inc b/testautomation/graphics/required/includes/global/id_002.inc
index 55dec0008ac1..8c729871cbb3 100755..100644
--- a/testautomation/graphics/required/includes/global/id_002.inc
+++ b/testautomation/graphics/required/includes/global/id_002.inc
@@ -232,7 +232,7 @@ testcase tiEditFields
hTypeKeys "<ESCAPE>"
printlog "With a Tab we catch always the Object"
- hTypeKeys "<Tab>"
+ hTypeKeys "<Tab>",3
printlog "Here we enter Edit-Mode and therefore also the right place"
hTypeKeys "<F2>"
printlog "Here we enter Edit-Mode and therefore also the right place"
@@ -406,7 +406,7 @@ testcase tiEditObjectProperties
gMouseDoubleClick 1,1
printlog " select frame "
- hTypekeys "<tab>"
+ hTypekeys "<tab>",3
printlog " Edit->Object->Properties "
kontext
@@ -448,7 +448,7 @@ testcase tiEditObjectEdit
gMouseClick 20,1
printlog " select object "
- hTypekeys "<tab>"
+ hTypekeys "<tab>",3
printlog " Edit->Object->Edit "
EditObjectEdit
@@ -464,7 +464,7 @@ testcase tiEditObjectEdit
endcatch
printlog " select object "
- EditSelectAll
+ hTypekeys "<tab>",3
printlog " Edit->Object->Save Copy As "
EditObjectSaveCopyAs
@@ -531,6 +531,7 @@ testcase tiEditHyperlink
printlog " open application"
hNewDocument
+ Call sSelectEmptyLayout
printlog " Insert->Hyperlink"
InsertHyperlink
WaitSlot (5000)
@@ -555,7 +556,9 @@ testcase tiEditHyperlink
Uebernehmen.Click
Hyperlink.Close
printlog " presupposition to enable edit->hyperlink: <TAB><F2><STRG+a>"
- hTypeKeys "<TAB><F2>"
+ hTypeKeys "<TAB>"
+ hTypeKeys "<F2>"
+ hTypeKeys "<MOD1 SHIFT RIGHT>"
EditSelectAll
try
printlog " Edit->Hyperlink "
diff --git a/testautomation/graphics/required/includes/global/id_003.inc b/testautomation/graphics/required/includes/global/id_003.inc
index 5720d4cab791..5720d4cab791 100755..100644
--- a/testautomation/graphics/required/includes/global/id_003.inc
+++ b/testautomation/graphics/required/includes/global/id_003.inc
diff --git a/testautomation/graphics/required/includes/global/id_004.inc b/testautomation/graphics/required/includes/global/id_004.inc
index 2fb21db18373..2fb21db18373 100755..100644
--- a/testautomation/graphics/required/includes/global/id_004.inc
+++ b/testautomation/graphics/required/includes/global/id_004.inc
diff --git a/testautomation/graphics/required/includes/global/id_005.inc b/testautomation/graphics/required/includes/global/id_005.inc
index 23d311d27cac..94898e620e46 100755..100644
--- a/testautomation/graphics/required/includes/global/id_005.inc
+++ b/testautomation/graphics/required/includes/global/id_005.inc
@@ -964,6 +964,7 @@ testcase tiFormatGroup
printlog "open application"
Call hNewDocument
+ Call sSelectEmptyLayout
printlog "create 2 rectangles"
hRechteckErstellen ( 10, 10, 20, 20 )
hRechteckErstellen ( 30, 30, 40, 40 )
diff --git a/testautomation/graphics/required/includes/global/id_006.inc b/testautomation/graphics/required/includes/global/id_006.inc
index 0a8359c1efef..8e16f5ef5593 100755..100644
--- a/testautomation/graphics/required/includes/global/id_006.inc
+++ b/testautomation/graphics/required/includes/global/id_006.inc
@@ -42,7 +42,21 @@
' #1 tiToolsOptions
'\**********************************************************************************
-
+'------------------------------------------------------------------------------
+sub id_Tools
+ printLog "--------- id_006 ----------"
+ call tiToolsSpellchecking
+ call tiToolsSpellcheckingAutomatic
+ call tiToolsThesaurus
+ call tiToolsHyphenation
+ call tiToolsAutoCorrect
+ call tChineseTranslation
+ call tiToolsMacro
+ call tiToolsGallery
+ call tiToolsEyedropper
+ call tToolsOptionsTest ' global one
+end sub
+'-------------------------------------------------------------------------------
testcase tiToolsSpellchecking
if not gOOO then ' Spellcheck doesn't work in OOo builds.
@@ -86,9 +100,7 @@ testcase tiToolsSpellchecking
else goto endsub
endif
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
+'-------------------------------------------------------------------------------
testcase tiToolsSpellcheckingAutomatic
'/// open application ///'
Call hNewDocument
@@ -102,84 +114,116 @@ testcase tiToolsSpellcheckingAutomatic
'/// close application ///'
Call hCloseDocument
endcase
+'-------------------------------------------------------------------------------
+testcase tiToolsThesaurus
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ Dim sWord as string
+ Dim sExt as string
-testcase tiToolsThesaurus
- qaerrorlog "#i93133#: Thesaurus not active in loaded bugdoc"
- goto endsub
- if not gOOO then ' Thesaurus doesn't work in OOo builds.
+ 'for normal text, the thesaurus is enabled,
+ 'if the format->character->language of the word has a thesaurus
+ 'unfortunately in textboxes this doesn't work, you can give the word a langauge,
+ 'but this is been ignored by our thesaurus
+ 'so especially for asian languages you have to set a default language in the options,
+ 'to be able to use the thesaurus there - fallback to englisch,
+ 'because there is no thesaurus for cjk languages
- dim sFileName as String
-
- '/// call subroutine 'hSetSpellHypLanguage' for setting the default language in the options, to enable it for languages, which don't provide a dictionary (usually asian ones) ///'
- call hSetSpellHypLanguage
- '/// open application-specific document which contains an American-formatted textframe with text. And select the text ///'
- if (gApplication = "IMPRESS") then
- sFileName = (ConvertPath (gTesttoolPath + "graphics\required\input\engtext.odp"))
- else
- sFileName = (ConvertPath (gTesttoolPath + "graphics\required\input\engtext.odg"))
- end if
- if hFileExists ( sFileName ) = FALSE then
- warnlog "The language-file was not found or accessible! The test ends."
+ 'As long as OOo has no modules for that, disabled
+ if gOOO = True then
+ printlog "No spellchecking in OOo"
goto endsub
- end if
- Call hFileOpen (sFileName)
-
- sleep (2)
-
- hTypeKeys "<TAB><RETURN>"
- hTypeKeys "<END><SHIFT HOME>"
-
- ' Call hTextrahmenErstellen ("SimpleTest" + "<Mod1 Shift left>", 10, 10, 30, 40)
- try
- '/// Tools->Thesaurus ///'
- ExtrasThesaurusDraw
- Kontext "Thesaurus"
- Call DialogTest ( Thesaurus )
- '/// click button 'language' ///'
- Sprache.Click
- Kontext "SpracheAuswaehlen"
- Call DialogTest ( SpracheAuswaehlen )
- '/// cancel dialog 'select language' ///'
- SpracheAuswaehlen.cancel
- Kontext "Thesaurus"
- '/// click button 'search' ///'
- Nachschlagen.Click
- kontext
- '/// if messagebox exist, say OK; (word not found) ///'
- if Messagebox.exists (5) then
- printlog "Messagebox: word not in thesaurus: '"+Messagebox.gettext+"'"
- Messagebox.ok
- end if
- sleep 1
- Kontext "Thesaurus"
- '/// cancel dialog 'Thesaurus' ///'
- Thesaurus.Cancel
- catch
- warnlog "Thesaurus didn't work :-("
- endcatch
- sleep 1
- '/// close application ///'
- Call hCloseDocument
- else goto endsub
endif
-endcase
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+ 'First we make sure we test a language where Thesaurus
+ select case iSprache
+ case 01 : sWord = "Hello"
+ case 03 : sWord = "Alo"
+ case 07 : printlog "- No Thesaur for Russian available"
+ goto endsub
+ case 30 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 31 : sWord = "Guiten"
+ case 33 : sWord = "Bonjour"
+ case 34 : sWord = "Hola"
+ case 35 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 36 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 37 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 39 : sWord = "Ciao"
+ case 42 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 45 : sWord = "Hej"
+ case 46 : sWord = "Välkommen"
+ case 47 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 48 : Printlog "- No Thesaurus in Polish!"
+ goto endsub
+ case 49 : sWord = "Hallo"
+ case 50 : sWord = "Prosojnica"
+ case 51 : Printlog "- No Thesaurus available !"
+ goto endsub
+ case 55 : Printlog "- No Thesaurus in Brazilian!"
+ goto endsub
+ case 90 : Printlog "- No Thesaurus available !"
+ goto endsub
+
+ case else : if bAsianLan then
+ hSetSpellHypLanguage
+ sWord = "Hello"
+ else
+ Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here"
+ sWord = "Hello"
+ endif
+ end select
+
+ PrintLog "Thesaurus with 1 word: " + sWord
+
+ if( Ucase(gApplication) = "DRAW" ) then
+ sExt = ".odg"
+ elseif( Ucase(gApplication) = "IMPRESS" ) then
+ sExt = ".odp"
+ endif
+
+ Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_" + iSprache + sExt)
+ Call sMakeReadOnlyDocumentEditable()
+ Call hTextrahmenErstellen (sWord,20,20,50,30)
+ sleep 1
+ printlog "select the word"
+ hTypeKeys "<Home><SHIFT END>"
+
+ try
+ ExtrasThesaurusDraw
+ catch
+ warnlog "No Thesaurus available."
+ hCloseDocument()
+ goto endsub
+ endcatch
+
+ Kontext "Thesaurus"
+ if Thesaurus.Exists(3) then
+ Thesaurus.Cancel
+ else
+ warnlog "the thesaurus does not appear"
+ endif
+ Call hCloseDocument
+
+endcase
+'-------------------------------------------------------------------------------
testcase tiToolsHyphenation
'/// open application ///'
Call hNewDocument
'/// Tools->Hyphenation ///'
- ExtrasSilbentrennungDraw
+ ToolsLanguageHyphenationDraw
WaitSlot (2000) 'sleep 2
'/// Tools->Hyphenation ///'
- ExtrasSilbentrennungDraw
+ ToolsLanguageHyphenationDraw
'/// close application ///'
Call hCloseDocument
endcase
-
+'-------------------------------------------------------------------------------
testcase tiToolsAutoCorrect
dim iLanguage as integer ' for resetting the language
'/// open application ///'
@@ -291,9 +335,7 @@ testcase tiToolsAutoCorrect
'/// close application ///'
Call hCloseDocument
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
+'-------------------------------------------------------------------------------
testcase tChineseTranslation
qaerrorlog( "#i89634# - Chinese Translation dialog does not close" )
@@ -365,9 +407,7 @@ testcase tChineseTranslation
'/// Close application ///'
Call hCloseDocument
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
+'-------------------------------------------------------------------------------
testcase tiToolsMacro
'/// open application ///'
Call hNewDocument
@@ -419,9 +459,7 @@ testcase tiToolsMacro
'/// close application ///'
Call hCloseDocument
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
+'-------------------------------------------------------------------------------
testcase tiToolsGallery
'/// open application ///'
Call hNewDocument
@@ -433,9 +471,7 @@ testcase tiToolsGallery
'/// close application ///'
Call hCloseDocument
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
+'-------------------------------------------------------------------------------
testcase tiToolsEyedropper
'/// open application ///'
Call hNewDocument
@@ -449,20 +485,4 @@ testcase tiToolsEyedropper
'/// close application ///'
Call hCloseDocument
endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
-testcase tiToolsOptions
- '/// open application ///'
- Call hNewDocument
- '/// Tools->Options ///'
- ToolsOptions
- WaitSlot (2000) 'sleep 1
- kontext "OptionenDlg"
- '/// close dialog 'Options' ///'
- OptionenDlg.Close
- '/// close application ///'
- Call hCloseDocument
-endcase
-
-'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+'------------------------------------------------------------------------------- \ No newline at end of file
diff --git a/testautomation/graphics/required/includes/global/id_007.inc b/testautomation/graphics/required/includes/global/id_007.inc
index 3c4c3ca5b08b..242a87f1fce4 100755..100644
--- a/testautomation/graphics/required/includes/global/id_007.inc
+++ b/testautomation/graphics/required/includes/global/id_007.inc
@@ -360,6 +360,7 @@ testcase tdContextDistribution
Call hNewDocument
WaitSlot (3000)
'/// create 3 rectangles ///'
+ Call sSelectEmptyLayout
Call hRechteckErstellen (20,20,30,30)
Call hRechteckErstellen (40,40,50,50)
Call hRechteckErstellen (60,60,70,70)
@@ -430,7 +431,7 @@ testcase tdContextNameObject
Call hRechteckErstellen ( 30, 40, 50, 60 )
sleep 1
'/// select both by spanning a selection with the mouse ///'
- gMouseMove 1,1,95,95
+ gMouseMove 1,1,70,70
sleep 1
'/// Modify->Group ///'
'///+ Modify->Group ///'
@@ -455,6 +456,7 @@ endcase
testcase tdModifyConnectBreak
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
'/// create two rectangles ///'
Call hRechteckErstellen (10,10,30,30)
@@ -483,6 +485,7 @@ endcase
testcase tdModifyShapes
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
'/// create two rectangles ///'
gMouseClick 50,50
@@ -551,6 +554,7 @@ endcase
testcase tdModifyCombineSplit
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
sleep 1
'/// create two rectangles ///'
Call hRechteckErstellen (30,30,50,50)
diff --git a/testautomation/graphics/required/includes/global/id_008.inc b/testautomation/graphics/required/includes/global/id_008.inc
index 887f99dc7a05..887f99dc7a05 100755..100644
--- a/testautomation/graphics/required/includes/global/id_008.inc
+++ b/testautomation/graphics/required/includes/global/id_008.inc
diff --git a/testautomation/graphics/required/includes/global/id_009.inc b/testautomation/graphics/required/includes/global/id_009.inc
index 6aa35a1dc23d..6aa35a1dc23d 100755..100644
--- a/testautomation/graphics/required/includes/global/id_009.inc
+++ b/testautomation/graphics/required/includes/global/id_009.inc
diff --git a/testautomation/graphics/required/includes/global/id_011.inc b/testautomation/graphics/required/includes/global/id_011.inc
index 0cc7f22708ab..98d574c0f78c 100755..100644
--- a/testautomation/graphics/required/includes/global/id_011.inc
+++ b/testautomation/graphics/required/includes/global/id_011.inc
@@ -45,6 +45,7 @@ testcase tiTextToolbar
'/// open application ///'
Call hNewDocument
+ Call sSelectEmptyLayout
'/// create a textframe with text ///'
hTextrahmenErstellen ("This is a Text, which will be formatted in several ways", 20,20,40,80)
diff --git a/testautomation/graphics/required/includes/global/id_opt_1.inc b/testautomation/graphics/required/includes/global/id_opt_1.inc
index a19a8f27b089..0f0b4bdb9069 100755..100644
--- a/testautomation/graphics/required/includes/global/id_opt_1.inc
+++ b/testautomation/graphics/required/includes/global/id_opt_1.inc
@@ -557,7 +557,7 @@ testcase tToolsOptionsDrawGrid (sApplication as string)
ExitRestartTheOffice
printlog "opening new doc to get the Options"
Call hNewDocument
- hTypeKeys "OpenNewDoc!"
+
printlog "checking states"
ToolsOptions
hToolsOptions (sApplication,"Grid")
diff --git a/testautomation/graphics/required/includes/global/id_opt_2.inc b/testautomation/graphics/required/includes/global/id_opt_2.inc
index dd01a3522847..dd01a3522847 100755..100644
--- a/testautomation/graphics/required/includes/global/id_opt_2.inc
+++ b/testautomation/graphics/required/includes/global/id_opt_2.inc
diff --git a/testautomation/graphics/required/includes/impress/i_opt_1_.inc b/testautomation/graphics/required/includes/impress/i_opt_1_.inc
index f648ee8b5cd5..f648ee8b5cd5 100755..100644
--- a/testautomation/graphics/required/includes/impress/i_opt_1_.inc
+++ b/testautomation/graphics/required/includes/impress/i_opt_1_.inc
diff --git a/testautomation/graphics/required/includes/impress/im_002_.inc b/testautomation/graphics/required/includes/impress/im_002_.inc
index f4741210ce12..f4741210ce12 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_002_.inc
+++ b/testautomation/graphics/required/includes/impress/im_002_.inc
diff --git a/testautomation/graphics/required/includes/impress/im_003_.inc b/testautomation/graphics/required/includes/impress/im_003_.inc
index 280dae56b1d1..da2f09187694 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_003_.inc
+++ b/testautomation/graphics/required/includes/impress/im_003_.inc
@@ -227,7 +227,7 @@ testcase tiViewToolbar_1
end if
Kontext "DocumentImpress"
printlog "select graphic "
- EditSelectAll
+ hTypeKeys "<TAB>", 3
sleep 2
Kontext "GraphicObjectbar"
sleep 1
diff --git a/testautomation/graphics/required/includes/impress/im_004_.inc b/testautomation/graphics/required/includes/impress/im_004_.inc
index f33a75f12a19..f33a75f12a19 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_004_.inc
+++ b/testautomation/graphics/required/includes/impress/im_004_.inc
diff --git a/testautomation/graphics/required/includes/impress/im_005_.inc b/testautomation/graphics/required/includes/impress/im_005_.inc
index b651dcea9cae..b651dcea9cae 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_005_.inc
+++ b/testautomation/graphics/required/includes/impress/im_005_.inc
diff --git a/testautomation/graphics/required/includes/impress/im_007_.inc b/testautomation/graphics/required/includes/impress/im_007_.inc
index 7248b0a2eca5..7248b0a2eca5 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_007_.inc
+++ b/testautomation/graphics/required/includes/impress/im_007_.inc
diff --git a/testautomation/graphics/required/includes/impress/im_011_.inc b/testautomation/graphics/required/includes/impress/im_011_.inc
index 876ca7aa9a56..876ca7aa9a56 100755..100644
--- a/testautomation/graphics/required/includes/impress/im_011_.inc
+++ b/testautomation/graphics/required/includes/impress/im_011_.inc
diff --git a/testautomation/graphics/required/input/recht_3.odp b/testautomation/graphics/required/input/recht_3.odp
index 77001190ba1a..768fbad4b780 100755..100644
--- a/testautomation/graphics/required/input/recht_3.odp
+++ b/testautomation/graphics/required/input/recht_3.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_31.odp b/testautomation/graphics/required/input/recht_31.odp
index a8fd2717ba3f..23f5c77c141d 100755..100644
--- a/testautomation/graphics/required/input/recht_31.odp
+++ b/testautomation/graphics/required/input/recht_31.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_33.odp b/testautomation/graphics/required/input/recht_33.odp
index e98bb9a22dc7..c6acada2537e 100755..100644
--- a/testautomation/graphics/required/input/recht_33.odp
+++ b/testautomation/graphics/required/input/recht_33.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_34.odp b/testautomation/graphics/required/input/recht_34.odp
index fbfe0ae7ffae..2dcbd561f9e5 100755..100644
--- a/testautomation/graphics/required/input/recht_34.odp
+++ b/testautomation/graphics/required/input/recht_34.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_36.odp b/testautomation/graphics/required/input/recht_36.odp
index a1f80f1109db..45f7fd3a47cb 100755..100644
--- a/testautomation/graphics/required/input/recht_36.odp
+++ b/testautomation/graphics/required/input/recht_36.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_39.odp b/testautomation/graphics/required/input/recht_39.odp
index feda53696ecf..bf649b488030 100755..100644
--- a/testautomation/graphics/required/input/recht_39.odp
+++ b/testautomation/graphics/required/input/recht_39.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_46.odp b/testautomation/graphics/required/input/recht_46.odp
index d6ec036f014d..e9de83b58c8b 100755..100644
--- a/testautomation/graphics/required/input/recht_46.odp
+++ b/testautomation/graphics/required/input/recht_46.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_48.odp b/testautomation/graphics/required/input/recht_48.odp
index 4d905a8fe4d8..f836b0521f8b 100755..100644
--- a/testautomation/graphics/required/input/recht_48.odp
+++ b/testautomation/graphics/required/input/recht_48.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_49.odp b/testautomation/graphics/required/input/recht_49.odp
index 445c11940122..88c93c2856b4 100755..100644
--- a/testautomation/graphics/required/input/recht_49.odp
+++ b/testautomation/graphics/required/input/recht_49.odp
Binary files differ
diff --git a/testautomation/graphics/required/input/recht_55.odp b/testautomation/graphics/required/input/recht_55.odp
index 2d63df264710..6e78d94e8c49 100755..100644
--- a/testautomation/graphics/required/input/recht_55.odp
+++ b/testautomation/graphics/required/input/recht_55.odp
Binary files differ
diff --git a/testautomation/graphics/tools/id_tools.inc b/testautomation/graphics/tools/id_tools.inc
index 117fa47725e2..e71c9f7653f0 100755..100644
--- a/testautomation/graphics/tools/id_tools.inc
+++ b/testautomation/graphics/tools/id_tools.inc
@@ -289,10 +289,10 @@ end function
'-------------------------------------------------------------------------------
function fMakeDocumentWritable() as boolean
- printlog " make a document is writeable"
- printlog " <u>parameter:</u>"
- printlog " <u>return:</u>"
- printlog " true if the document can make writeable otherwise false"
+ 'make a document is writeable
+ 'parameter:</u>
+ '<u>return:</u>
+ 'true if the document can make writeable otherwise false
Kontext "Standardbar"
sleep (1)
@@ -310,7 +310,7 @@ function fMakeDocumentWritable() as boolean
printlog "Document is allready writable."
fMakeDocumentWritable = true
endif
-
+ sleep (1)
end function
'-------------------------------------------------------------------------------
diff --git a/testautomation/graphics/tools/id_tools_2.inc b/testautomation/graphics/tools/id_tools_2.inc
index 6cf18494915d..681a5ec7161a 100755..100644
--- a/testautomation/graphics/tools/id_tools_2.inc
+++ b/testautomation/graphics/tools/id_tools_2.inc
@@ -835,24 +835,6 @@ sub id_005
' tiFormatLayer ' not in impress
end sub
-'------------------------------------------------------------------------------
-sub id_006
-
- printLog Chr(13) + "--------- id_006 ----------"
-
- call tiToolsSpellchecking
- call tiToolsSpellcheckingAutomatic
- call tiToolsThesaurus
- call tiToolsHyphenation
- call tiToolsAutoCorrect
- call tChineseTranslation
- call tiToolsMacro
- call tiToolsGallery
- call tiToolsEyedropper
- call tiToolsOptions ' get just called one time here...
- Call tToolsOptionsTest ' global one
-end sub
-
'-------------------------------------------------------------------------------
sub id_007
@@ -1064,3 +1046,18 @@ sub hWalkTheStyles (optional a as integer,optional b as integer)
end sub
'---------------------------------------------------------------------------------------
+sub sSelectEmptyLayout
+ if gApplication = "IMPRESS" then
+ printlog "Changing focus to TaskPane."
+ kontext "Tasks"
+ sleep (1)
+ printlog "Selecting first and empty layout."
+ LayoutsPreview.TypeKeys "<HOME>"
+ sleep (1)
+ LayoutsPreview.TypeKeys "<RETURN>"
+ sleep (1)
+ kontext "DocumentImpress"
+ else
+ printlog "No change of Layout needed."
+ endif
+end sub \ No newline at end of file
diff --git a/testautomation/math/optional/includes/m_101_.inc b/testautomation/math/optional/includes/m_101_.inc
index e529119e0bfc..e529119e0bfc 100755..100644
--- a/testautomation/math/optional/includes/m_101_.inc
+++ b/testautomation/math/optional/includes/m_101_.inc
diff --git a/testautomation/math/optional/includes/m_105.inc b/testautomation/math/optional/includes/m_105.inc
index 3bfac36f6f25..3bfac36f6f25 100755..100644
--- a/testautomation/math/optional/includes/m_105.inc
+++ b/testautomation/math/optional/includes/m_105.inc
diff --git a/testautomation/math/optional/includes/m_106_.inc b/testautomation/math/optional/includes/m_106_.inc
index 87f6b3969f2b..87f6b3969f2b 100755..100644
--- a/testautomation/math/optional/includes/m_106_.inc
+++ b/testautomation/math/optional/includes/m_106_.inc
diff --git a/testautomation/math/required/includes/m_001_.inc b/testautomation/math/required/includes/m_001_.inc
index 371f7f090d52..371f7f090d52 100755..100644
--- a/testautomation/math/required/includes/m_001_.inc
+++ b/testautomation/math/required/includes/m_001_.inc
diff --git a/testautomation/math/required/includes/m_002_.inc b/testautomation/math/required/includes/m_002_.inc
index 860ba8ae0135..860ba8ae0135 100755..100644
--- a/testautomation/math/required/includes/m_002_.inc
+++ b/testautomation/math/required/includes/m_002_.inc
diff --git a/testautomation/math/required/includes/m_003_.inc b/testautomation/math/required/includes/m_003_.inc
index 056bf21be9b2..056bf21be9b2 100755..100644
--- a/testautomation/math/required/includes/m_003_.inc
+++ b/testautomation/math/required/includes/m_003_.inc
diff --git a/testautomation/math/required/includes/m_004_.inc b/testautomation/math/required/includes/m_004_.inc
index ce016f4dd825..ce016f4dd825 100755..100644
--- a/testautomation/math/required/includes/m_004_.inc
+++ b/testautomation/math/required/includes/m_004_.inc
diff --git a/testautomation/math/required/includes/m_005_.inc b/testautomation/math/required/includes/m_005_.inc
index 2b567c628b18..bb580b9bd9c3 100755
--- a/testautomation/math/required/includes/m_005_.inc
+++ b/testautomation/math/required/includes/m_005_.inc
@@ -168,6 +168,7 @@ testcase tToolsExtensionManager
dim sTemp2 as string
dim x as integer
+ if ( lcase( gPlatform ) <> "osx" ) then
sPath = convertPath(gTestToolPath+"math/required/input/")
'/// open application ///'
Call hNewDocument
@@ -306,4 +307,7 @@ testcase tToolsExtensionManager
warnlog "Couldn't call Tools -> Package manager - aborting test"
endif
Call hCloseDocument
+ else
+ qaErrorLog "Do not run on macosx - not reproduceable error"
+ endif
endcase
diff --git a/testautomation/math/required/includes/m_006_.inc b/testautomation/math/required/includes/m_006_.inc
index e94a7acc3676..e94a7acc3676 100755..100644
--- a/testautomation/math/required/includes/m_006_.inc
+++ b/testautomation/math/required/includes/m_006_.inc
diff --git a/testautomation/math/required/includes/m_007_.inc b/testautomation/math/required/includes/m_007_.inc
index 9fe712a516a8..9fe712a516a8 100755..100644
--- a/testautomation/math/required/includes/m_007_.inc
+++ b/testautomation/math/required/includes/m_007_.inc
diff --git a/testautomation/math/required/includes/m_010_.inc b/testautomation/math/required/includes/m_010_.inc
index 940acc188243..940acc188243 100755..100644
--- a/testautomation/math/required/includes/m_010_.inc
+++ b/testautomation/math/required/includes/m_010_.inc
diff --git a/testautomation/math/required/includes/m_020_.inc b/testautomation/math/required/includes/m_020_.inc
index b2edf7170ede..b2edf7170ede 100755..100644
--- a/testautomation/math/required/includes/m_020_.inc
+++ b/testautomation/math/required/includes/m_020_.inc
diff --git a/testautomation/spreadsheet/optional/c_validity.bas b/testautomation/spreadsheet/optional/c_validity.bas
index ed76836f40f7..ed76836f40f7 100755..100644
--- a/testautomation/spreadsheet/optional/c_validity.bas
+++ b/testautomation/spreadsheet/optional/c_validity.bas
diff --git a/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc b/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
index cdb4691eed3a..55c97473902c 100755
--- a/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
+++ b/testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc
@@ -92,17 +92,17 @@ testcase tArrayconstants01
kontext "DocumentCalc"
DocumentCalc.TypeKeys ("=" & sFunctionSIN & "({1;2;3}) <MOD1 SHIFT RETURN>")
'///Check that the cellvalue of A4 is "0.84"
- printlog "Check that the cellvalue of A4 is ""0.84"""
+ printlog "Check that the cellvalue of A4 is ""0.8414709848"""
call fCalcSelectRange ("A5")
kontext "DocumentCalc"
DocumentCalc.TypeKeys "=A4<TAB>=B4<TAB>=C4<RETURN>" 'because a part of a matrix is protected we need a helpcell with only the values
- call fCalcCompareCellValue ("A5","0" & sDecimalseperator & "84")
+ call fCalcCompareCellValue ("A5","0" & sDecimalseperator & "8414709848")
'///Check that the cell contents of B4 is "0.91"
- printlog "Check that the cell contents of B4 is ""0.91"""
- call fCalcCompareCellValue ("B5","0" & sDecimalseperator & "91")
+ printlog "Check that the cell contents of B4 is ""0.9092974268"""
+ call fCalcCompareCellValue ("B5","0" & sDecimalseperator & "9092974268")
'///Check that the cell contents of C4 is "0.14"
- printlog "Check that the cell contents of C4 is ""0.14"""
- call fCalcCompareCellValue ("C5","0" & sDecimalseperator & "14")
+ printlog "Check that the cell contents of C4 is ""0.1411200081"""
+ call fCalcCompareCellValue ("C5","0" & sDecimalseperator & "1411200081")
'///In cell A6 enter "={1;2|4;5;6}"
printlog "In cell A6 enter ""={1;2|4;5;6}"""
diff --git a/testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc b/testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc
index 86a0555a8ae0..86a0555a8ae0 100755..100644
--- a/testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc
+++ b/testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc
diff --git a/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc b/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc
index c8cc9ddb308f..c8cc9ddb308f 100755..100644
--- a/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc
+++ b/testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc
diff --git a/testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc b/testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc
index 35d10648adeb..35d10648adeb 100755..100644
--- a/testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc
+++ b/testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc
diff --git a/testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc b/testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc
index c8e83d2662b9..c8e83d2662b9 100755..100644
--- a/testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc
+++ b/testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc
diff --git a/testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc b/testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc
index e4429e015494..e4429e015494 100755..100644
--- a/testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc
+++ b/testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc
diff --git a/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc b/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc
index 186fe00ae9e4..186fe00ae9e4 100755..100644
--- a/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc
+++ b/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc
diff --git a/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc b/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc
index e6e8030da3e5..e6e8030da3e5 100755..100644
--- a/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc
+++ b/testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc
diff --git a/testautomation/spreadsheet/optional/includes/validity/c_validity.inc b/testautomation/spreadsheet/optional/includes/validity/c_validity.inc
index 8eaf0401afeb..8eaf0401afeb 100755..100644
--- a/testautomation/spreadsheet/optional/includes/validity/c_validity.inc
+++ b/testautomation/spreadsheet/optional/includes/validity/c_validity.inc
diff --git a/testautomation/spreadsheet/optional/input/validity.ods b/testautomation/spreadsheet/optional/input/validity.ods
index aced256e948b..aced256e948b 100644..100755
--- a/testautomation/spreadsheet/optional/input/validity.ods
+++ b/testautomation/spreadsheet/optional/input/validity.ods
Binary files differ
diff --git a/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc b/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
index a74ada3d6397..a74ada3d6397 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_editmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_editmenu.inc
index 07c769cf3bbf..07c769cf3bbf 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_editmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_editmenu.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc b/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc
index dc54ca10361e..dc54ca10361e 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc
index ba92cb53a0c6..ba92cb53a0c6 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc b/testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc
index 7cc051cbc1b7..7cc051cbc1b7 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc
index 87282429cbb1..87282429cbb1 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc
index 7c779b341a08..7c779b341a08 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
index 12f52f48d2d4..434aae88f786 100755
--- a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
@@ -189,14 +189,14 @@ testcase tToolsSpellcheck
'/// Click on 'Edit' – button
printlog " Click on 'Edit' – button"
OptionenBearbeiten.Click
- Kontext "SilbentrennungOptionen"
- Call DialogTest ( SilbentrennungOptionen )
+ Kontext "HyphenationOptions"
+ Call DialogTest ( HyphenationOptions )
'/// Decrease 'Minimal word length'
printlog " Decrease 'Minimal word length'"
ZeichenVorUmbruch.More
'/// Close dialog with 'Cancel'
printlog " Close dialog with 'Cancel'"
- SilbentrennungOptionen.Cancel
+ HyphenationOptions.Cancel
Kontext "TabLinguistik"
'/// Close dialog with 'Cancel'
printlog " Close dialog with 'Cancel'"
@@ -391,21 +391,17 @@ endcase
testcase tToolsLanguageThesaurus
'///<u><b>Tools – Language – Chinese Translation</b></u>
- '/// Load document from 'gTesttoolPath + "spreadsheet\required\input\english.ods"'
printlog " Load document from 'gTesttoolPath + spreadsheet\required\input\english.ods"
Call hFileOpen (Convertpath (gTesttoolPath + "spreadsheet\required\input\english.ods" ))
- '/// If the file is not editable, click the edit button on standardbar
printlog "If the file is not editable, click the edit button on standardbar"
call sMakeReadOnlyDocumentEditable
Kontext "DocumentCalc"
- '/// Enter 'blabla' in a cell
- printlog " Enter 'blabla' in a cell"
+ printlog " Enter 'test' in a cell"
Call fCalcSelectRange ("B2")
- DocumentCalc.TypeKeys "blabla<Return><Up>"
- '/// Open 'Thesaurus' dialog by 'Tools – Language – Thesaurus
+ DocumentCalc.TypeKeys "test<Return><Up>"
printlog " Open 'Thesaurus' dialog by 'Tools – Language – Thesaurus"
try
- ToolsLanguageThesaurusCalc
+ ToolsLanguageThesaurus
catch
warnlog "Thesaurus did not work"
call hCloseDocument
@@ -413,34 +409,20 @@ testcase tToolsLanguageThesaurus
endcatch
Kontext "Thesaurus"
DialogTest ( Thesaurus )
- '/// Click on 'Search' button
- printlog " Click on 'Search' button"
- Nachschlagen.Click
- '/// Close messagebox with 'OK'
- printlog " Close messagebox with 'OK'"
- Kontext
- if Active.exists then
- Active.OK
+ printlog " Check if the cellcontent test is correctly read"
+ if CurrentWord.GetSelText <> "test" then
+ warnlog "The cellcontent is not test but is " & CurrentWord.GetSelText
end if
- Kontext "Thesaurus"
- '/// Click on 'Language' button
- printlog " Click on 'Language' button"
- Sprache.Click
- Kontext "SpracheAuswaehlen"
- DialogTest ( SpracheAuswaehlen )
- '/// Verify that the list has entries
- printlog " Verify that the list has entries"
- If Auswahl.GetItemCount < 1 then
- warnlog "There are no languages available"
+ printlog " Check that there are alternatives available"
+ if Alternatives.GetItemCount < 1 then
+ warnlog "There are no alternatives available"
+ else Alternatives.Select (1)
+ if ReplaceWith.GetText = "" then
+ warnlog "The repacle with field is empty"
+ end if
end if
- '/// Close 'Select Language' dialog with 'Cancel'
- printlog " Close 'Select Language' dialog with 'Cancel'"
- SpracheAuswaehlen.Cancel
- Kontext "Thesaurus"
- '/// Close 'Thesaurus' with 'Cancel'
printlog " Close 'Thesaurus' with 'Cancel'"
Thesaurus.Cancel
- '/// Close document
printlog " Close document"
call hCloseDocument
diff --git a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc
index 0023dac1c4b3..0023dac1c4b3 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc
diff --git a/testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc
index d183e8c72e3f..d183e8c72e3f 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_cell_tools.inc b/testautomation/spreadsheet/tools/includes/c_cell_tools.inc
index 9331b690f57f..9331b690f57f 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_cell_tools.inc
+++ b/testautomation/spreadsheet/tools/includes/c_cell_tools.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_l10n_tools.inc b/testautomation/spreadsheet/tools/includes/c_l10n_tools.inc
index 9766f6464621..9766f6464621 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_l10n_tools.inc
+++ b/testautomation/spreadsheet/tools/includes/c_l10n_tools.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_select_tools.inc b/testautomation/spreadsheet/tools/includes/c_select_tools.inc
index 23147568aef9..23147568aef9 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_select_tools.inc
+++ b/testautomation/spreadsheet/tools/includes/c_select_tools.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc b/testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc
index c4b74b9e0f12..c4b74b9e0f12 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc
+++ b/testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_tool_options.inc b/testautomation/spreadsheet/tools/includes/c_tool_options.inc
index d75b6f8e74dd..d75b6f8e74dd 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_tool_options.inc
+++ b/testautomation/spreadsheet/tools/includes/c_tool_options.inc
diff --git a/testautomation/spreadsheet/tools/includes/c_validity_tools.inc b/testautomation/spreadsheet/tools/includes/c_validity_tools.inc
index af78bffe2468..af78bffe2468 100755..100644
--- a/testautomation/spreadsheet/tools/includes/c_validity_tools.inc
+++ b/testautomation/spreadsheet/tools/includes/c_validity_tools.inc
diff --git a/testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc b/testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc
index 6099a5a784b6..6099a5a784b6 100755..100644
--- a/testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc
+++ b/testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc
diff --git a/testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc b/testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc
index 8b2abe0c7d0b..8b2abe0c7d0b 100755..100644
--- a/testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc
+++ b/testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc
diff --git a/testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc b/testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc
index 6d47479a4597..6d47479a4597 100755..100644
--- a/testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc
+++ b/testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc
diff --git a/testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc b/testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc
index 57e8f5ad073b..57e8f5ad073b 100755..100644
--- a/testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc
+++ b/testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc
diff --git a/testautomation/writer/optional/includes/autotext/w_autotext.inc b/testautomation/writer/optional/includes/autotext/w_autotext.inc
index 11cc9d0955b6..11cc9d0955b6 100755..100644
--- a/testautomation/writer/optional/includes/autotext/w_autotext.inc
+++ b/testautomation/writer/optional/includes/autotext/w_autotext.inc
diff --git a/testautomation/writer/optional/includes/calculate/w_calculate.inc b/testautomation/writer/optional/includes/calculate/w_calculate.inc
index 3b8df0e6cf2e..3b8df0e6cf2e 100755..100644
--- a/testautomation/writer/optional/includes/calculate/w_calculate.inc
+++ b/testautomation/writer/optional/includes/calculate/w_calculate.inc
diff --git a/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc b/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc
index 58b97f0bfd4a..58b97f0bfd4a 100755..100644
--- a/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc
+++ b/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc
diff --git a/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc b/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc
index 8a24e3dbd617..8a24e3dbd617 100755..100644
--- a/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc
+++ b/testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_210_.inc b/testautomation/writer/optional/includes/clipboard/w_210_.inc
index 296772b937fc..296772b937fc 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_210_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_210_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_211_.inc b/testautomation/writer/optional/includes/clipboard/w_211_.inc
index 2507bdb422e3..2507bdb422e3 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_211_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_211_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_212_.inc b/testautomation/writer/optional/includes/clipboard/w_212_.inc
index 667627689d6e..667627689d6e 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_212_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_212_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_213_.inc b/testautomation/writer/optional/includes/clipboard/w_213_.inc
index f0cb56aa6dc3..f0cb56aa6dc3 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_213_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_213_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_214_.inc b/testautomation/writer/optional/includes/clipboard/w_214_.inc
index 1567818d63e1..1567818d63e1 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_214_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_214_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_215_.inc b/testautomation/writer/optional/includes/clipboard/w_215_.inc
index 76aa31a2e108..76aa31a2e108 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_215_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_215_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_216_.inc b/testautomation/writer/optional/includes/clipboard/w_216_.inc
index b36f8490a90e..b36f8490a90e 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_216_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_216_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_217_.inc b/testautomation/writer/optional/includes/clipboard/w_217_.inc
index 0e9bc109e6e6..0e9bc109e6e6 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_217_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_217_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_218_.inc b/testautomation/writer/optional/includes/clipboard/w_218_.inc
index fe06d5bf9541..fe06d5bf9541 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_218_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_218_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_219_.inc b/testautomation/writer/optional/includes/clipboard/w_219_.inc
index 8e547d4bf448..8e547d4bf448 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_219_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_219_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_220_.inc b/testautomation/writer/optional/includes/clipboard/w_220_.inc
index c28b2c541cb8..c28b2c541cb8 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_220_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_220_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_221_.inc b/testautomation/writer/optional/includes/clipboard/w_221_.inc
index b699258c302f..b699258c302f 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_221_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_221_.inc
diff --git a/testautomation/writer/optional/includes/clipboard/w_222_.inc b/testautomation/writer/optional/includes/clipboard/w_222_.inc
index 7850fe13f7bb..7850fe13f7bb 100755..100644
--- a/testautomation/writer/optional/includes/clipboard/w_222_.inc
+++ b/testautomation/writer/optional/includes/clipboard/w_222_.inc
diff --git a/testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc b/testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc
index 69e1b245a89c..69e1b245a89c 100755..100644
--- a/testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc
+++ b/testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc
diff --git a/testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc b/testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc
index 8ffdb8afe37e..8ffdb8afe37e 100755..100644
--- a/testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc
+++ b/testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc
diff --git a/testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc b/testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc
index f0f6e458b8b4..f0f6e458b8b4 100755..100644
--- a/testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc
+++ b/testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc
diff --git a/testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc b/testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc
index ec93d15cdcb2..ec93d15cdcb2 100755..100644
--- a/testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc
+++ b/testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc
diff --git a/testautomation/writer/optional/includes/fields/w_fields1.inc b/testautomation/writer/optional/includes/fields/w_fields1.inc
index 9f2d872b3d89..0287fd2f1da1 100755
--- a/testautomation/writer/optional/includes/fields/w_fields1.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields1.inc
@@ -170,8 +170,6 @@ endcase
'-----------------------------------------------------------------
testcase tInsertFieldsPageNumber
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sPage1 , sPage2 as String
@@ -216,8 +214,6 @@ endcase
'-----------------------------------------------------------------
testcase tInsertFieldsPageCount
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sPage1 , sPage2 as String
@@ -273,8 +269,6 @@ endcase
'-----------------------------------------------------------------
testcase tInsertFieldsSubject
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sSubject as String
sSubject = "This is a Subject"
@@ -306,8 +300,6 @@ endcase
'-----------------------------------------------------------------
testcase tInsertFieldsTitle
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sTitle as String
@@ -340,8 +332,6 @@ endcase
'-----------------------------------------------------------------
testcase tInsertFieldsAuthor
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sFirstName , sLastName as String
Dim sFirstName1 , sLastName1 as String
diff --git a/testautomation/writer/optional/includes/fields/w_fields2.inc b/testautomation/writer/optional/includes/fields/w_fields2.inc
index 826d9ec769b9..0514ba5b020e 100755
--- a/testautomation/writer/optional/includes/fields/w_fields2.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields2.inc
@@ -451,8 +451,6 @@ endcase
'-----------------------------------------------------------------
testcase tDocumentPage
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sTestFile as String
Dim sPage() as String
@@ -867,35 +865,32 @@ endcase
'-----------------------------------------------------------------
testcase tDocumentStatistics
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
Dim sTestFile as String
+ Dim sOriginalFile as string
Dim sStatistics() as String
+ Dim sType as string
Dim i as Integer
- sStatistics = Array( _
- "2" , _
- "2" , _
- "2" , _
- "12" , _
- "2" , _
- "2" , _
- "1" , _
- )
+ sStatistics = Array( "2", "2", "3", "13", "2", "2", "1" )
- sTestFile = Convertpath (gTesttoolpath + "writer\optional\input\fields\statisticsTest.sxw")
+ sTestFile = Convertpath (gOfficepath + "user\work\statisticsTest.sxw")
+ sOriginalFile = Convertpath (gTesttoolpath + "writer\optional\input\fields\statisticsTest.sxw")
+ ' document has to be copied to local file system to avoid opening a read-only file
+ ' because all field data gets lost if documents write-protection is removed via 'sMakeReadOnlyDocumentEditable'
+ FileCopy (sOriginalFile, sTestFile)
+ if hFileExists ( sTestFile ) = false then
+ Warnlog "Test document couldn't be copied to local file system. Test aborted!"
+ goto endsub
+ end if
printlog "Insert/Fields/Other/Document / Statistics"
'/// <b> Insert/Fields/Other/Document / Statistics </b>
- Call hNewDocument
-
'/// Open test file statisticsTest.sxw which includes
'/// 2 tables , 2 pictures , 22 paragraph , 1 object ,
'/// 2 words , 12 characters and 2 pages
Call hFileOpen(sTestFile)
- Call sMakeReadOnlyDocumentEditable
Call wTypeKeys "<MOD1 Home><Down>"
@@ -904,6 +899,7 @@ goto endsub
'/// Check if the insertion is correct
Call fInsertFieldsOther("TabDokumentFeldbefehle")
Feldtyp.Select fGetType("Statistics")
+ sType = Auswahl.GetSelText
for i = 0 to UBound(sStatistics)
Kontext "TabDokumentFeldbefehle"
Auswahl.Select i+1
@@ -916,7 +912,7 @@ goto endsub
Sleep 1
EditCopy
if GetClipboard <> sStatistics(i) then
- Warnlog i &" - Should get " & sStatistics(i) & " but get " & GetClipboard
+ Warnlog "- " & sType & ": Should get " & sStatistics(i) & " but get " & GetClipboard
end if
Call wTypeKeys "<Delete>"
next i
@@ -930,35 +926,39 @@ endcase
'-----------------------------------------------------------------
testcase tDocumentTemplate
-qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
-goto endsub
-
- Dim sTestFile as String
- Dim sDirectory as String
- Dim oDirectory as String
- Dim sLanguage as String
- Dim sFormat() as String
- Dim sResult(6) as String
- Dim i as Integer
+
+ Dim sTestFile as String
+ Dim sOriginalFile as string
+ Dim sDirectory as String
+ Dim oDirectory as String
+ Dim sLanguage as String
+ Dim sFormat() as String
+ Dim sResult(6) as String
+ Dim i as Integer
sLanguage = fGetDirLanguage()
- sTestFile = Convertpath (gTesttoolpath + "writer\optional\input\fields\diploma.ott")
+ sTestFile = Convertpath (gOfficepath + "user\work\diploma.ott")
+ sOriginalFile = Convertpath (gTesttoolpath + "writer\optional\input\fields\diploma.ott")
+ ' document has to be copied to local file system to avoid opening a read-only file
+ ' because all field data gets lost if documents write-protection is removed via 'sMakeReadOnlyDocumentEditable'
+ FileCopy (sOriginalFile, sTestFile)
+ if hFileExists ( sTestFile ) = false then
+ Warnlog "Test document couldn't be copied to local file system. Test aborted!"
+ goto endsub
+ end if
sResult(0) = fGetCateGory()
sResult(1) = "diploma.ott"
sResult(2) = "diploma"
- sResult(3) = Convertpath (gTesttoolpath + "writer\optional\input\fields\")
+ sResult(3) = Convertpath (gOfficepath + "user\work")
sResult(4) = sTestFile
sResult(5) = fGetStyle()
printlog "Insert/Fields/Other/Document / Template"
'/// <b> Insert/Fields/Other/Document / Template </b>
-
- Call hNewDocument
-
+
'/// Open test file diploma.ott
Call hFileOpen(sTestFile)
- Call sMakeReadOnlyDocumentEditable
Call wTypeKeys "<MOD1 Home>"
diff --git a/testautomation/writer/optional/includes/fields/w_fields3.inc b/testautomation/writer/optional/includes/fields/w_fields3.inc
index db40fbc54f22..db40fbc54f22 100755..100644
--- a/testautomation/writer/optional/includes/fields/w_fields3.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields3.inc
diff --git a/testautomation/writer/optional/includes/fields/w_fields4.inc b/testautomation/writer/optional/includes/fields/w_fields4.inc
index 446d5b458f0f..20069da398c1 100755
--- a/testautomation/writer/optional/includes/fields/w_fields4.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields4.inc
@@ -261,9 +261,8 @@ endcase
'-----------------------------------------------------------------
testcase tDocInformationUserDefined
- qaerrorlog "#i93906# - Testcase outcommented due to bug. 'Copied field-content not pastable outside Office'"
- goto endsub
-
+ QAErrorLog "#i112077#Tabpage 'Custom properties' has no declaration"
+ goto endsub
Dim sTestFile as String
Dim sOriginalFile as string
Dim sVarResult() as String
diff --git a/testautomation/writer/optional/includes/fields/w_fields5.inc b/testautomation/writer/optional/includes/fields/w_fields5.inc
index 2f4e3b0b9ecb..6c8b5e7ca12a 100755
--- a/testautomation/writer/optional/includes/fields/w_fields5.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields5.inc
@@ -667,99 +667,101 @@ endcase
'-----------------------------------------------------------------
testcase tVariablesDDEFieldManual
- qaerrorlog "#i93906# - tVariablesDDEFieldManual outcommented due to a problem with copying field-contents outside the office."
+ warnlog "#i112079#testcase must be reworked"
goto endsub
- Dim sDDEFile as String
- Dim sContent as String
- Dim sName as String
- Dim sDDEStatement as String
- Dim sSectionName as String
+ Dim sDDEFile as String
+ Dim sContent as String
+ Dim sName as String
+ Dim sDDEStatement as String
+ Dim sSectionName as String
+
+ sDDEFile = Convertpath ( gOfficePath + "\user\work\dde_test.odt")
+ sContent = "DDE"
+ sName = "myTest"
+ sSectionName = "Section1"
+ sDDEStatement = "soffice " & sDDEFile & " " & sSectionName
+
+ printlog "DDE field - manual"
+ '/// <b> DDE field - manual </b>
+
+ if hFileExists ( sDDEFile ) then app.kill ( sDDEFile )
+
+ Call hNewDocument
+
+ '/// Input something , insert a section , then save it and close the file
+ Call wTypeKeys sContent
+ Call wTypeKeys "<Shift Home>"
+ Call fInsertSection("TabBereiche")
+ Bereichsliste.Settext sSectionName
+ TabBereiche.OK
+ Sleep 1
+ Call hFileSaveAsKill(sDDEFile)
+ Call hCloseDocument
+
+ '/// Opan a new document
+ Call hNewDocument
+ '/// Insert/Fields/Other/Variables / Select "DDE Field"
+ '/// Set DDE name and DDE statement , select "DDE manual"
+ Call fInsertFieldsOther("TabVariablen")
+ Feldtyp.Select 3
+ Sleep 1
+ NameText.SetText sName
+ Wert.SetText sDDEStatement
+ Formatliste.Select 1
+ Einfuegen.Click
+ Sleep 2
+ TabVariablen.Close
+ Sleep 2
- sDDEFile = Convertpath ( gNetzOfficePath + "dde_test.oxt")
- sContent = "DDE"
- sName = "myTest"
- sSectionName = "Section1"
- sDDEStatement = "soffice " & sDDEFile & " " & sSectionName
-
- printlog "DDE field - manual"
- '/// <b> DDE field - manual </b>
-
- if hFileExists ( sDDEFile ) then app.kill ( sDDEFile )
-
- Call hNewDocument
-
- '/// Input something , insert a section , then save it and close the file
- Call wTypeKeys sContent
- Call wTypeKeys "<Shift Home>"
- Call fInsertSection("TabBereiche")
- Bereichsliste.Settext sSectionName
- TabBereiche.OK
- Sleep 1
- Call hFileSaveAsKill(sDDEFile)
- Call hCloseDocument
-
- '/// Opan a new document
- Call hNewDocument
-
- '/// Insert/Fields/Other/Variables / Select "DDE Field"
- '/// Set DDE name and DDE statement , select "DDE manual"
- Call fInsertFieldsOther("TabVariablen")
- Feldtyp.Select 3
- Sleep 1
- NameText.SetText sName
- Wert.SetText sDDEStatement
- Formatliste.Select 1
- Einfuegen.Click
- Sleep 2
- TabVariablen.Close
- Sleep 2
-
- Call wTypeKeys "<MOD1 Home>"
- Call wTypeKeys "<Shift End>"
- if fGetFieldContent() <> sContent then
- Warnlog "Should get " & sContent & " but get " & fGetFieldContent()
- end if
+ Call wTypeKeys "<MOD1 Home>"
+ Call wTypeKeys "<Shift End>"
+ if fGetFieldContent() <> sContent then
+ Warnlog "Should get " & sContent & " but get " & fGetFieldContent()
+ end if
- '/// Open the test file which you just closed , add something ,
- '/// Save the file
- Call hFileOpen(sDDEFile)
+ '/// Open the test file which you just closed , add something ,
+ '/// Save the file
+ Call hFileOpen(sDDEFile)
Call wTypeKeys "<MOD1 Home>"
Call wTypeKeys "XYZ"
FileSave
- Call hCloseDocument
-
- '/// Check if the content is changed -- Should NOT
- Sleep 2
- Call wTypeKeys "<F9>"
- Call wTypeKeys "<MOD1 Home><Shift End>"
- if fGetFieldContent() <> sContent then
- Warnlog "Should get " & sContent & " but get " & fGetFieldContent()
- end if
-
- '/// Edit/Fields , press update button
- EditFields
- Kontext "VerknuepfungenBearbeiten"
- Aktualisieren.Click
- VerknuepfungenBearbeiten.Close
+ Call hCloseDocument
+
+ '/// Check if the content is changed -- Should NOT
+ Sleep 2
+ Call wTypeKeys "<F9>"
+ Call wTypeKeys "<MOD1 Home><Shift End>"
+ if fGetFieldContent() <> sContent then
+ Warnlog "Should get " & sContent & " but get " & fGetFieldContent()
+ end if
- '/// Check if the content is changed -- Should NOT
- Sleep 1
- Call wTypeKeys "<F9>"
- Call wTypeKeys "<MOD1 Home><Shift End>"
- if fGetFieldContent() <> ("XYZ" & sContent) then
- Warnlog "Should get XYZ" & sContent & " but get " & fGetFieldContent()
- end if
+ '/// Edit/Fields , press update button
+ EditFields
+ Kontext "VerknuepfungenBearbeiten"
+ Aktualisieren.Click
+ VerknuepfungenBearbeiten.Close
+
+ '/// Check if the content is changed -- Should NOT
+ Sleep 1
+ Call wTypeKeys "<F9>"
+ Call wTypeKeys "<MOD1 Home><Shift End>"
+ if fGetFieldContent() <> ("XYZ" & sContent) then
+ Warnlog "Should get XYZ" & sContent & " but get " & fGetFieldContent()
+ end if
- Call hCloseDocument
+ Call hCloseDocument
- if hFileExists ( sDDEFile ) then app.kill ( sDDEFile )
+ if hFileExists ( sDDEFile ) then app.kill ( sDDEFile )
endcase
'-----------------------------------------------------------------
testcase tVariablesDDEFieldAutomatic
+ warnlog "#i112079#testcase must be reworked"
+ goto endsub
+
qaerrorlog "#i102792# - tVariablesDDEFieldAutomatic outcommented. Fields not updated."
goto endsub
diff --git a/testautomation/writer/optional/includes/fields/w_fields6.inc b/testautomation/writer/optional/includes/fields/w_fields6.inc
index dce94f12c305..dce94f12c305 100755..100644
--- a/testautomation/writer/optional/includes/fields/w_fields6.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields6.inc
diff --git a/testautomation/writer/optional/includes/fields/w_fields7.inc b/testautomation/writer/optional/includes/fields/w_fields7.inc
index fdec55afb9ce..fdec55afb9ce 100755..100644
--- a/testautomation/writer/optional/includes/fields/w_fields7.inc
+++ b/testautomation/writer/optional/includes/fields/w_fields7.inc
diff --git a/testautomation/writer/optional/includes/filter/w_filter.inc b/testautomation/writer/optional/includes/filter/w_filter.inc
index 6cb6db7e9488..6cb6db7e9488 100755..100644
--- a/testautomation/writer/optional/includes/filter/w_filter.inc
+++ b/testautomation/writer/optional/includes/filter/w_filter.inc
diff --git a/testautomation/writer/optional/includes/fontwork/w_fontwork1.inc b/testautomation/writer/optional/includes/fontwork/w_fontwork1.inc
index 79d42b49dac3..79d42b49dac3 100755..100644
--- a/testautomation/writer/optional/includes/fontwork/w_fontwork1.inc
+++ b/testautomation/writer/optional/includes/fontwork/w_fontwork1.inc
diff --git a/testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc b/testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc
index 9a454b54b07b..9a454b54b07b 100755..100644
--- a/testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc
+++ b/testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc
diff --git a/testautomation/writer/optional/includes/formatpage/w_formatpage1.inc b/testautomation/writer/optional/includes/formatpage/w_formatpage1.inc
index a8867d1f171a..a8867d1f171a 100755..100644
--- a/testautomation/writer/optional/includes/formatpage/w_formatpage1.inc
+++ b/testautomation/writer/optional/includes/formatpage/w_formatpage1.inc
diff --git a/testautomation/writer/optional/includes/formatpage/w_formatpage2.inc b/testautomation/writer/optional/includes/formatpage/w_formatpage2.inc
index dc53ca05257b..dc53ca05257b 100755..100644
--- a/testautomation/writer/optional/includes/formatpage/w_formatpage2.inc
+++ b/testautomation/writer/optional/includes/formatpage/w_formatpage2.inc
diff --git a/testautomation/writer/optional/includes/formatpage/w_formatpage3.inc b/testautomation/writer/optional/includes/formatpage/w_formatpage3.inc
index e713beda7af7..e713beda7af7 100755..100644
--- a/testautomation/writer/optional/includes/formatpage/w_formatpage3.inc
+++ b/testautomation/writer/optional/includes/formatpage/w_formatpage3.inc
diff --git a/testautomation/writer/optional/includes/formatpage/w_formatpage4.inc b/testautomation/writer/optional/includes/formatpage/w_formatpage4.inc
index b4dddd07910c..b4dddd07910c 100755..100644
--- a/testautomation/writer/optional/includes/formatpage/w_formatpage4.inc
+++ b/testautomation/writer/optional/includes/formatpage/w_formatpage4.inc
diff --git a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc
index aef22db5a479..aef22db5a479 100755..100644
--- a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc
+++ b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc
diff --git a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc
index 9da8c4706316..9da8c4706316 100755..100644
--- a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc
+++ b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc
diff --git a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc
index ca8d8d564690..ca8d8d564690 100755..100644
--- a/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc
+++ b/testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc
diff --git a/testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc b/testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc
index 947cb2e5e2c3..947cb2e5e2c3 100755..100644
--- a/testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc
+++ b/testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc
diff --git a/testautomation/writer/optional/includes/hyphenation/w_hyphenation.inc b/testautomation/writer/optional/includes/hyphenation/w_hyphenation.inc
index 93c90a31dec9..01c1bc91a7c4 100755
--- a/testautomation/writer/optional/includes/hyphenation/w_hyphenation.inc
+++ b/testautomation/writer/optional/includes/hyphenation/w_hyphenation.inc
@@ -173,9 +173,9 @@ testcase tHyphenation_3
printlog "Tools/Hyphenation"
ToolsLanguageHyphenate
- Kontext "Silbentrennung"
+ Kontext "Hyphenation"
- if Not Silbentrennung.Exists then
+ if Not Hyphenation.Exists then
Warnlog "Unable to bring up Dialog 'Hyphenation'!"
Call hCloseDocument
goto endsub
@@ -184,21 +184,21 @@ testcase tHyphenation_3
printlog "check if get 'fol=low-ing'"
if Wort.Gettext <> testWordInHyphenationDlg then
Warnlog "Expected " & testWordInHyphenationDlg & " but found " & Wort.Gettext
- Silbentrennung.Cancel
+ Hyphenation.Cancel
Call hCloseDocument
goto endsub
end if
if NOT Vor.IsEnabled then
Warnlog "the 'Vor' button is Not enabled, or something wrong!"
- Silbentrennung.Cancel
+ Hyphenation.Cancel
Call hCloseDocument
goto endsub
end if
printlog "add '-' between 'fol' and 'lowing' using left arrow key"
Vor.Click
- Silbentrennung.OK
+ Hyphenation.OK
' Messagebox 'Start hypheantion from the beginning ?
Kontext "Active"
@@ -285,9 +285,9 @@ testcase tHyphenation_4
printlog "Tools/Hyphenation"
ToolsLanguageHyphenate
- Kontext "Silbentrennung"
+ Kontext "Hyphenation"
- if Not Silbentrennung.Exists then
+ if Not Hyphenation.Exists then
Call hCloseDocument
goto endsub
end if
@@ -295,7 +295,7 @@ testcase tHyphenation_4
printlog "check if get 'fol=low-ing'"
if Wort.Gettext <> testWordInHyphenationDlg1 then
Warnlog "Expected " & testWordInHyphenationDlg1 & " but found " & Wort.Gettext
- Silbentrennung.Cancel
+ Hyphenation.Cancel
Call hCloseDocument
goto endsub
end if
@@ -303,7 +303,7 @@ testcase tHyphenation_4
printlog "click left arrow key"
if NOT Vor.IsEnabled then
Warnlog "the Vor button is Not enabled, or something wrong!"
- Silbentrennung.Cancel
+ Hyphenation.Cancel
Call hCloseDocument
goto endsub
end if
@@ -334,7 +334,7 @@ testcase tHyphenation_4
Sleep 1
printlog "close all dialogs"
- Silbentrennung.OK
+ Hyphenation.OK
' Messagebox 'Start hypheantion from the beginning ?
Kontext "Active"
diff --git a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc
index 2041abb03124..2041abb03124 100755..100644
--- a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc
+++ b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc
diff --git a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc
index f1991ab84d45..f1991ab84d45 100755..100644
--- a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc
+++ b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc
diff --git a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc
index 45223c7505a5..45223c7505a5 100755..100644
--- a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc
+++ b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc
diff --git a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc
index 4903586002b1..4903586002b1 100755..100644
--- a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc
+++ b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc
diff --git a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc
index 3c0918fbe501..3c0918fbe501 100755..100644
--- a/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc
+++ b/testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc
diff --git a/testautomation/writer/optional/includes/loadsave/w_loadsave.inc b/testautomation/writer/optional/includes/loadsave/w_loadsave.inc
index 62c997927ab6..62c997927ab6 100755..100644
--- a/testautomation/writer/optional/includes/loadsave/w_loadsave.inc
+++ b/testautomation/writer/optional/includes/loadsave/w_loadsave.inc
diff --git a/testautomation/writer/optional/includes/navigator/w_navigator.inc b/testautomation/writer/optional/includes/navigator/w_navigator.inc
index 9f7a8e3f2fe8..9f7a8e3f2fe8 100755..100644
--- a/testautomation/writer/optional/includes/navigator/w_navigator.inc
+++ b/testautomation/writer/optional/includes/navigator/w_navigator.inc
diff --git a/testautomation/writer/optional/includes/number/w_205_.inc b/testautomation/writer/optional/includes/number/w_205_.inc
index b8b421719111..b8b421719111 100755..100644
--- a/testautomation/writer/optional/includes/number/w_205_.inc
+++ b/testautomation/writer/optional/includes/number/w_205_.inc
diff --git a/testautomation/writer/optional/includes/number/w_205a_.inc b/testautomation/writer/optional/includes/number/w_205a_.inc
index daa72c5ca4ac..daa72c5ca4ac 100755..100644
--- a/testautomation/writer/optional/includes/number/w_205a_.inc
+++ b/testautomation/writer/optional/includes/number/w_205a_.inc
diff --git a/testautomation/writer/optional/includes/number/w_206_.inc b/testautomation/writer/optional/includes/number/w_206_.inc
index 9d7750628013..c007e674d329 100755
--- a/testautomation/writer/optional/includes/number/w_206_.inc
+++ b/testautomation/writer/optional/includes/number/w_206_.inc
@@ -472,12 +472,12 @@ testcase tToolsNumbering7
end if
end if
Case 2
- if sClipBrd(1) <> "1.My second number" then
- Warnlog "#128041#First paragraph not '1.My second number' but: " & sClipBrd(1)
+ if sClipBrd(1) <> "1.1.My second number" then
+ Warnlog "#128041#First paragraph not '1.1.My second number' but: " & sClipBrd(1)
end if
Case 3
- if sClipBrd(2) <> "2.My third number" then
- Warnlog "#128041#First paragraph not '2.My third number' but: " & sClipBrd(2)
+ if sClipBrd(2) <> "2.2.My third number" then
+ Warnlog "#128041#First paragraph not '2.2.My third number' but: " & sClipBrd(2)
end if
end select
next i
@@ -707,16 +707,16 @@ testcase tToolsNumbering11
For i = 1 to 3
Select Case i
Case 1
- if sClipBrd(0) <> "1A new first paragraph" then
- Warnlog "First Heading not: '1A new first paragraph' but: " & sClipBrd(0)
+ if sClipBrd(0) <> "11A new first paragraph" then
+ Warnlog "First Heading not: '11A new first paragraph' but: " & sClipBrd(0)
end if
Case 2
- if sClipBrd(1) <> "2" then
- Warnlog "First paragraph not empty but: " & sClipBrd(1)
+ if sClipBrd(1) <> "22" then
+ Warnlog "First paragraph not '22' but: " & sClipBrd(1)
end if
Case 3
- if sClipBrd(2) <> "3A new third paragraph" then
- Warnlog "First paragraph not '3A new third paragraph' but: " & sClipBrd(2)
+ if sClipBrd(2) <> "33A new third paragraph" then
+ Warnlog "First paragraph not '33A new third paragraph' but: " & sClipBrd(2)
end if
end select
next i
diff --git a/testautomation/writer/optional/includes/number/w_207_.inc b/testautomation/writer/optional/includes/number/w_207_.inc
index 7c2c9511c969..7c2c9511c969 100755..100644
--- a/testautomation/writer/optional/includes/number/w_207_.inc
+++ b/testautomation/writer/optional/includes/number/w_207_.inc
diff --git a/testautomation/writer/optional/includes/option/wh_o_1.inc b/testautomation/writer/optional/includes/option/wh_o_1.inc
index 2fe845f97232..2fe845f97232 100755..100644
--- a/testautomation/writer/optional/includes/option/wh_o_1.inc
+++ b/testautomation/writer/optional/includes/option/wh_o_1.inc
diff --git a/testautomation/writer/optional/includes/option/wh_o_2.inc b/testautomation/writer/optional/includes/option/wh_o_2.inc
index acc92379f206..acc92379f206 100755..100644
--- a/testautomation/writer/optional/includes/option/wh_o_2.inc
+++ b/testautomation/writer/optional/includes/option/wh_o_2.inc
diff --git a/testautomation/writer/optional/includes/option/wh_o_3.inc b/testautomation/writer/optional/includes/option/wh_o_3.inc
index fa0cf41317bf..fa0cf41317bf 100755..100644
--- a/testautomation/writer/optional/includes/option/wh_o_3.inc
+++ b/testautomation/writer/optional/includes/option/wh_o_3.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_1.inc b/testautomation/writer/optional/includes/option/wr_o_1.inc
index c53f132d7d8a..c53f132d7d8a 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_1.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_1.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_2.inc b/testautomation/writer/optional/includes/option/wr_o_2.inc
index cb94f661de26..cb94f661de26 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_2.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_2.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_3.inc b/testautomation/writer/optional/includes/option/wr_o_3.inc
index cd93474b6093..cd93474b6093 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_3.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_3.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_4.inc b/testautomation/writer/optional/includes/option/wr_o_4.inc
index de44cdfea13a..de44cdfea13a 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_4.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_4.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_5.inc b/testautomation/writer/optional/includes/option/wr_o_5.inc
index 8f475bb4325b..8f475bb4325b 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_5.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_5.inc
diff --git a/testautomation/writer/optional/includes/option/wr_o_a.inc b/testautomation/writer/optional/includes/option/wr_o_a.inc
index b5390f46a92d..b5390f46a92d 100755..100644
--- a/testautomation/writer/optional/includes/option/wr_o_a.inc
+++ b/testautomation/writer/optional/includes/option/wr_o_a.inc
diff --git a/testautomation/writer/optional/includes/redlining/w_redlining1.inc b/testautomation/writer/optional/includes/redlining/w_redlining1.inc
index 782d921cc1a1..782d921cc1a1 100755..100644
--- a/testautomation/writer/optional/includes/redlining/w_redlining1.inc
+++ b/testautomation/writer/optional/includes/redlining/w_redlining1.inc
diff --git a/testautomation/writer/optional/includes/redlining/w_redlining2.inc b/testautomation/writer/optional/includes/redlining/w_redlining2.inc
index 6fa735ca75b6..6fa735ca75b6 100755..100644
--- a/testautomation/writer/optional/includes/redlining/w_redlining2.inc
+++ b/testautomation/writer/optional/includes/redlining/w_redlining2.inc
diff --git a/testautomation/writer/optional/includes/regexp/regular.inc b/testautomation/writer/optional/includes/regexp/regular.inc
index b091f2e7bf65..b091f2e7bf65 100755..100644
--- a/testautomation/writer/optional/includes/regexp/regular.inc
+++ b/testautomation/writer/optional/includes/regexp/regular.inc
diff --git a/testautomation/writer/optional/includes/regexp/search.inc b/testautomation/writer/optional/includes/regexp/search.inc
index ce3d946fe3b9..c53ff6250461 100755
--- a/testautomation/writer/optional/includes/regexp/search.inc
+++ b/testautomation/writer/optional/includes/regexp/search.inc
@@ -79,13 +79,13 @@ testcase tCheckDialog
if SearchAll.IsEnabled then Warnlog "Without Search-for-entry Find-All is active!"
if SearchNow.IsEnabled then Warnlog "Without Search-for-entry Find is active!"
if ReplaceAll.IsEnabled then Warnlog "Without Search-for-entry Replace-All is active!"
- if Replace.IsEnabled then Warnlog "Without Search-for-entry Replace is active!"
+ if ReplaceBtn.IsEnabled then Warnlog "Without Search-for-entry Replace is active!"
if NoFormat.IsEnabled then Warnlog "Without selecting Formats , No-Format is active!"
SearchFor.SetText "Hallo"
if NOT SearchAll.IsEnabled then Warnlog "Containing Search-for-entry Find-All is inactive!"
if NOT SearchNow.IsEnabled then Warnlog "Containing Search-for-entry Find inactive!"
if NOT ReplaceAll.IsEnabled then Warnlog "Containing Search-for-entry Replace-All is inactive!"
- if NOT Replace.IsEnabled then Warnlog "Containing Search-for-entry Replace is inactive!"
+ if NOT ReplaceBtn.IsEnabled then Warnlog "Containing Search-for-entry Replace is inactive!"
Sleep 5
printlog "- Dependencies of Format-Properties"
@@ -1190,7 +1190,7 @@ function wSelectAttributeName(aNumber as integer, AsianSupport as boolean, SetSt
Case 31
Select Case iSprache
- Case 49: aSelectIt = "Silbentrennung"
+ Case 49: aSelectIt = "Hyphenation"
Case else: Warnlog "Language not supported. No test"
exit function
end select
@@ -1469,7 +1469,7 @@ sub wCheckAttribute(aNumber as integer)
Case 28 '"Schriftstellung asiatische Schrift"
Case 29 '"Schusterjungen"
Case 30 '"Seitenvorlage"
- Case 31 '"Silbentrennung"
+ Case 31 '"Hyphenation"
Case 32 '"Skalierung"
Case 33 '"Sprache"
Case 34 '"Sprache asiatische Schrift"
diff --git a/testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc b/testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc
index 34ea89160239..34ea89160239 100755..100644
--- a/testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc
+++ b/testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc
diff --git a/testautomation/writer/optional/includes/section/w_section_1.inc b/testautomation/writer/optional/includes/section/w_section_1.inc
index df3e9956670b..df3e9956670b 100755..100644
--- a/testautomation/writer/optional/includes/section/w_section_1.inc
+++ b/testautomation/writer/optional/includes/section/w_section_1.inc
diff --git a/testautomation/writer/optional/includes/section/w_section_2.inc b/testautomation/writer/optional/includes/section/w_section_2.inc
index b9e6de90ea92..b9e6de90ea92 100755..100644
--- a/testautomation/writer/optional/includes/section/w_section_2.inc
+++ b/testautomation/writer/optional/includes/section/w_section_2.inc
diff --git a/testautomation/writer/optional/includes/section/w_section_3.inc b/testautomation/writer/optional/includes/section/w_section_3.inc
index dda8ebda7212..dda8ebda7212 100755..100644
--- a/testautomation/writer/optional/includes/section/w_section_3.inc
+++ b/testautomation/writer/optional/includes/section/w_section_3.inc
diff --git a/testautomation/writer/optional/includes/section/w_section_4.inc b/testautomation/writer/optional/includes/section/w_section_4.inc
index 3d8acb4a9cd5..3d8acb4a9cd5 100755..100644
--- a/testautomation/writer/optional/includes/section/w_section_4.inc
+++ b/testautomation/writer/optional/includes/section/w_section_4.inc
diff --git a/testautomation/writer/optional/includes/section/w_section_tools.inc b/testautomation/writer/optional/includes/section/w_section_tools.inc
index d7e1d28e6d5f..d7e1d28e6d5f 100755..100644
--- a/testautomation/writer/optional/includes/section/w_section_tools.inc
+++ b/testautomation/writer/optional/includes/section/w_section_tools.inc
diff --git a/testautomation/writer/optional/includes/shortcut/w_shortcuts.inc b/testautomation/writer/optional/includes/shortcut/w_shortcuts.inc
index ff3945b0e5a4..ff3945b0e5a4 100755..100644
--- a/testautomation/writer/optional/includes/shortcut/w_shortcuts.inc
+++ b/testautomation/writer/optional/includes/shortcut/w_shortcuts.inc
diff --git a/testautomation/writer/optional/includes/sorting/w_sorting1.inc b/testautomation/writer/optional/includes/sorting/w_sorting1.inc
index e3a65f787ee6..e3a65f787ee6 100755..100644
--- a/testautomation/writer/optional/includes/sorting/w_sorting1.inc
+++ b/testautomation/writer/optional/includes/sorting/w_sorting1.inc
diff --git a/testautomation/writer/optional/includes/sorting/w_sorting2.inc b/testautomation/writer/optional/includes/sorting/w_sorting2.inc
index d8838d1cf581..d8838d1cf581 100755..100644
--- a/testautomation/writer/optional/includes/sorting/w_sorting2.inc
+++ b/testautomation/writer/optional/includes/sorting/w_sorting2.inc
diff --git a/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc b/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc
index e4818c34029f..3dfd505d129c 100755
--- a/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc
+++ b/testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc
@@ -1227,11 +1227,9 @@ endcase
' *******************************************************************
testcase tToolsThesaurus
+
Dim sWordInitial as string
- Dim sLanguageToBeSelected as string
Dim sWordToBeFound as string
- Dim sWordReplacedWith as string
- Dim i as integer
Dim TheFile as String
PrintLog "- Tools / Thesaurus"
@@ -1283,19 +1281,20 @@ testcase tToolsThesaurus
'/// Call Thesaurus without a written word ///
ToolsLanguageThesaurus
Kontext "Thesaurus"
- if Ersetzen.GetText <> "" then Warnlog "- Though no word has been selected there is a replacetext in the textfield!"
- printlog "- enter one word and search"
- Ersetzen.SetText sWordInitial
- Nachschlagen.Click
- Kontext "Active"
- if Active.Exists then
- Warnlog Active.Gettext
- Active.ok
- end if
- Kontext "Thesaurus"
- if Bedeutung.GetSelText(1) = "" then Warnlog "No meaning text"
- if Ersetzen.Gettext = "" then Ersetzen.SetText = sWordInitial
- sWordToBeFound = Ersetzen.GetText
+ if CurrentWord.GetSelText <> "" then Warnlog "- Though no word has been selected Current Word textfield is filled !"
+ if ReplaceWith.GetText <> "" then Warnlog "- Though no word has been selected there is a replacetext in the textfield!"
+ printlog "Set language dependent word in textfield Current Word"
+ CurrentWord.Settext sWordInitial
+
+ wait 500
+ if Alternatives.GetItemCount = 0 then
+ Warnlog "No alternatives text"
+ else
+ if ReplaceWith.Gettext <> Alternatives.GetText(Alternatives.GetSelIndex) then
+ Warnlog "Replace with textfield was not filled with word from alternative"
+ endif
+ endif
+ sWordToBeFound = ReplaceWith.GetText
Thesaurus.OK
Call wTypeKeys "<Home><Shift End>"
wait 200
@@ -1310,166 +1309,156 @@ testcase tToolsThesaurus
printlog " Open new preformatted-document where the formatting is set to the language we wish to test."
call hFileOpen (TheFile,false)
- Call sMakeReadOnlyDocumentEditable
+ Call sMakeReadOnlyDocumentEditable
+
+ Call wTypeKeys sWordInitial
+ Call wTypeKeys "<Home><Right><Right>"
- printlog "- check the language"
- Call wTypeKeys sWordInitial + "<Home>"
- '/// Check language in Thesaurus ///
+ printlog "- Replace ( select alternative with cursor within word )"
ToolsLanguageThesaurus
Kontext "Thesaurus"
+ wait 500
+ if CurrentWord.GetSeltext = sWordInitial then
+ sWordToBeFound = ReplaceWith.Gettext
+ if Alternatives.GetItemCount > 0 then
+ printlog "Select last entry in alternatives list"
+ Alternatives.Select Alternatives.GetItemCount
+ Alternatives.TypeKeys "<Space>"
+ if ReplaceWith.Gettext = sWordToBeFound then
+ Warnlog "Though alternative was selected replace with was not changed"
+ else
+ sWordToBeFound = ReplaceWith.Gettext
+ end if
+ Thesaurus.OK
+ Call wTypeKeys "<Home><Shift End>"
+ wait 200
+ EditCopy
+ if GetClipboardText <> sWordToBeFound then Warnlog "Text has not been correctly replaced, not => " + sWordToBeFound + " but => " + GetClipboardText
+ else
+ Warnlog "- No Alternative for current word"
+ Thesaurus.Ok
+ end if
+ else
+ Warnlog "Current word is not selected word !"
+ end if
- Sprache.Click
- Kontext "SpracheAuswaehlen"
- select case iSprache ' iSystemSprache
- case 01 : sLanguageToBeSelected = "English (USA)"
- case 07 : sLanguageToBeSelected = "РуÑÑкий"
- case 03 : sLanguageToBeSelected = "Português"
- case 31 : sLanguageToBeSelected = "Nederlands (NL)"
- case 33 : sLanguageToBeSelected = "Français (France)"
- case 34 : sLanguageToBeSelected = "Español (España)"
- case 36 : sLanguageToBeSelected = "Madyar"
- case 39 : sLanguageToBeSelected = "Italiano (Italia)"
- case 45 : sLanguageToBeSelected = "Dansk"
- case 46 : sLanguageToBeSelected = "svenska (Sverige)"
- case 48 : sLanguageToBeSelected = "Polski"
- case 49 : sLanguageToBeSelected = "Deutsch (Deutschland)"
- end select
- SpracheAuswaehlen.OK
- Sleep 5
-
+ Call wTypeKeys "<Home><Shift End><Delete>"
+ Call wTypeKeys sWordInitial
+
+ printlog "- Replace unchecked ( Cursor at words end )"
+ ToolsLanguageThesaurus
Kontext "Thesaurus"
- printlog "- Search for a Synonym"
- '/// Search for a synonym ///
- Synonym.Select 1
- wait 500
- sWordToBeFound = Synonym.GetSelText
- if Ersetzen.GetText <> sWordToBeFound then Warnlog "Synonym has not been taken over"
- Nachschlagen.Click
- wait 500
- if Wort.GetSelText <> sWordToBeFound then Warnlog "Synonym has not been added to the word listand activated"
-
- printlog "- Search for a meaning"
- '/// Search for a meaning ///
wait 500
- Bedeutung.Select 1
- wait 500
- Nachschlagen.Click
- Sleep 1
- Kontext "Active"
- if Active.Exists then
- printlog "- " + Active.Gettext
- Active.Ok
- Kontext "Thesaurus"
- else ' Nur wenn Wort auch enthalten ist
- Kontext "Thesaurus"
- for i = 1 to 100
- if Bedeutung.GetSeltext <> "" then i = 101
- Sleep 1
- next i
- sWordToBeFound = Bedeutung.GetSelText
- if Instr ( Ersetzen.GetText, sWordToBeFound ) <> 0 then
- Warnlog "Meaning has not been overtaken"
- end if
- end if
+ if CurrentWord.GetSeltext = sWordInitial then
+ sWordToBeFound = ReplaceWith.Gettext
+ if Alternatives.GetItemCount > 0 then
+ printlog "Select last entry in alternatives list"
+ Alternatives.Select Alternatives.GetItemCount
+ Alternatives.TypeKeys "<Space>"
+ if ReplaceWith.Gettext = sWordToBeFound then
+ Warnlog "Though alternative was selected replace with was not changed"
+ else
+ sWordToBeFound = ReplaceWith.Gettext
+ end if
+ Thesaurus.OK
+ Call wTypeKeys "<Home><Shift End>"
+ wait 200
+ EditCopy
+ if GetClipboardText <> sWordToBeFound then Warnlog "Text has not been correctly replaced, not => " + sWordToBeFound + " but => " + GetClipboardText
+ else
+ Warnlog "- No Alternative for current word"
+ Thesaurus.Ok
+ end if
+ else
+ Warnlog "Current word is not selected word !"
+ end if
+
+ '/// Close thesaurus and writerdocument ///
+ Call hCloseDocument
+endcase
- printlog "- Replace unchecked ( Cursor in front of words 1. character )"
- '/// replace unchecked ///
- sWordReplacedWith = Ersetzen.GetText
- Thesaurus.OK
- Call wTypeKeys "<Shift Home>"
- wait 200
- EditCopy
- if GetClipboardText <> sWordReplacedWith then Warnlog "Text has not been correctly replaced, not => " + sWordReplacedWith + " but => " + GetClipboardText
+' *******************************************************************
- Call wTypeKeys "<End><Shift Home><Delete>" + sWordInitial
- Call wTypeKeys "<Home><Right><Right>"
+testcase tToolsThesaurusSynonyms
- printlog "- Replace unchecked ( Cursor in word )"
- ToolsLanguageThesaurus
- Kontext "Thesaurus"
- wait 500
- if Synonym.GetItemCount >0 then
- Synonym.Select 1
- sWordReplacedWith = Ersetzen.GetText
- Thesaurus.OK
- Call wTypeKeys "<Home><Shift End>"
- wait 200
- EditCopy
- if GetClipboardText <> sWordReplacedWith then Warnlog "Text has not been correctly replaced, not => " + sWordReplacedWith + " but => " + GetClipboardText
- else
- Warnlog "- No Synonym when cursor is in word!"
- Thesaurus.Ok
- end if
+ Dim sWordInitial as string
+ Dim sNumberOfSuggestions as string
+ Dim sReplaceWithWord as string
+ Dim TheFile as String
- Call wTypeKeys "<End><Shift Home><Delete>"
- Call wTypeKeys sWordInitial + "<End><Left>"
+ PrintLog "- Tools / Thesaurus"
- printlog "- Replace unchecked ( Cursor at words end )"
- ToolsLanguageThesaurus
- Kontext "Thesaurus"
- if Synonym.GetItemCount >0 then
- Synonym.Select 1
- sWordReplacedWith = Ersetzen.GetText
- Thesaurus.OK
- Call wTypeKeys "<Home><Shift End>"
- wait 200
- EditCopy
- if GetClipboardText <> sWordReplacedWith then Warnlog "Text has not been correctly replaced, not => " + sWordReplacedWith + " but => " + Trim$(GetClipboardText)
- else
- Warnlog "- No sysnonym when cursor pointed to words end!"
- Thesaurus.Ok
+ printlog " Open document where the formatting is set to the language we wish to test."
+ TheFile = Convertpath (gTesttoolpath + "writer\optional\input\spellcheck\spellcheck_" + iSprache + ".odt")
+ if hFileExists ( TheFile ) <> TRUE then
+ Warnlog "Found no Document for the language you're testing in, Please inform the Test-Developer."
+ exit sub
end if
- Call wTypeKeys "<End><Shift Home><Delete>"
- Call wTypeKeys sWordInitial + "<End><Left><Shift Mod1 Left>"
+ select case iSprache
+ case 01 : sWordInitial = "Morning"
+ case 03 : sWordInitial = "Confirmam"
+ case 07 : Printlog "- No Thesaurus in Russian!"
+ goto endsub
+ case 31 : sWordInitial = "Hulp"
+ case 33 : sWordInitial = "Payer"
+ case 34 : sWordInitial = "Suficiente"
+ case 36 : Printlog "- No Thesaurus in Hungarian!"
+ goto endsub
+ case 39 : sWordInitial = "Lingua"
+ case 45 : sWordInitial = "Først"
+ case 46 : sWordInitial = "Däng"
+ case 48 : sWordInitial = "wypowiedź"
+ case 49 : sWordInitial = "Mann"
+ case 55 : Printlog "- No Thesaurus in Portuguese (Brazil) !"
+ goto endsub
+ case 81 : Printlog "- No Thesaurus in Japanese!"
+ goto endsub
+ case 82 : Printlog "- No Thesaurus in Korean!"
+ goto endsub
+ case 86 : Printlog "- No Thesaurus in Chinese (simplified)!"
+ goto endsub
+ case 88 : Printlog "- No Thesaurus in Chinese (traditional)!"
+ goto endsub
+ case 30, 35, 36, 37, 42, 47, 48, 51, 90
+ Printlog "- No Thesaurus available !"
+ goto endsub
+ case else : QAErrorlog "The language " + iSprache + " has no defined errortext. No Test!"
+ goto endsub
+ end select
+
+ printlog "Open new preformatted-writerdocument"
+ call hFileOpen (TheFile,false)
+ Call sMakeReadOnlyDocumentEditable
+ Call wTypeKeys sWordInitial
+ Call wTypeKeys "<Shift Home>"
- printlog "- Replace checked ( back to front )"
- '/// replace checked ///
- ToolsLanguageThesaurus
- Kontext "Thesaurus"
- if Synonym.GetItemCount >0 then
- Synonym.Select 1
- sWordReplacedWith = Ersetzen.GetText
- Thesaurus.Ok
- Call wTypeKeys "<Home><Shift End><Shift Left>"
- wait 200
- EditCopy
- if GetClipboardText <> sWordReplacedWith then Warnlog "Text has not been correctly replaced, not => " + sWordReplacedWith + " but => " + GetClipboardText
+ printlog "Open contextmenu in wrong word"
+ Call wTypeKeys "<Shift F10>"
+ printlog "Select 'Synonyms' in context menu"
+ Call hMenuSelectNr (13)
+ sNumberOfSuggestions=MenuGetItemCount - 2
+ '/// Check if there is a suggestion and replace word ///
+ if sNumberOfSuggestions <=0 then
+ Warnlog "- No synonyms in Context menu for the first wrong word!"
else
- Nachschlagen.Click
- Kontext "Active"
- if Active.Exists then
- Active.Ok
- Kontext "Thesaurus"
- Thesaurus.OK
- end if
+ printlog "- Context menu has " + sNumberOfSuggestions + " synonyms for the 1. wrong word!"
+ sReplaceWithWord=hMenuItemGetText (1)
+ Call hMenuSelectNr (1)
+ Call wTypeKeys "<Shift Mod1 Left>"
+ try
+ EditCopy
+ if GetClipboardtext<> sReplaceWithWord then
+ Warnlog "- 1. wrong Word has not been replaced with " + sReplaceWithWord + " but "+ GetClipBoardtext
+ else
+ printlog "- 1. wrong word has been replaced with the 1. entry in context menu!"
+ end if
+ catch
+ endcatch
end if
+ Call hCloseDocument
+
+endcase
- Call wTypeKeys "<End><Shift Home><Delete>"
- Call wTypeKeys sWordInitial + "<Home><Shift End>"
- printlog "- Replace checked ( front to back )"
- ToolsLanguageThesaurus
- Kontext "Thesaurus"
- if Synonym.GetItemCount >0 then
- Synonym.Select 1
- sWordReplacedWith = Ersetzen.GetText
- Thesaurus.Ok
- Call wTypeKeys "<Home><Shift End>"
- wait 200
- EditCopy
- if GetClipboardText <> sWordReplacedWith then Warnlog "Text has not been correctly replaced, not => " + sWordReplacedWith + " but => " + GetClipboardText
- else
- Warnlog "- No sysnonym when word is marked!"
- Thesaurus.Ok
- end if
- Call wTypeKeys "<End><Shift Home><Delete>"
- Call wTypeKeys sWordInitial + "<Home><Right><Shift Right><Shift Right>"
- printlog "- Part of Replace checked ( back to front ) - no checking anymore"
- ToolsLanguageThesaurus
- Kontext "Thesaurus"
- Thesaurus.OK
- '/// Close thesaurus and writerdocument ///
- Call hCloseDocument
-endcase
diff --git a/testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc b/testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc
index 3ae44983fc4b..3ae44983fc4b 100755..100644
--- a/testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc
+++ b/testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc
diff --git a/testautomation/writer/optional/includes/table/w_204_.inc b/testautomation/writer/optional/includes/table/w_204_.inc
index 31a2b0d26199..31a2b0d26199 100755..100644
--- a/testautomation/writer/optional/includes/table/w_204_.inc
+++ b/testautomation/writer/optional/includes/table/w_204_.inc
diff --git a/testautomation/writer/optional/includes/table/w_204a_.inc b/testautomation/writer/optional/includes/table/w_204a_.inc
index 5d11c3d2b762..5d11c3d2b762 100755..100644
--- a/testautomation/writer/optional/includes/table/w_204a_.inc
+++ b/testautomation/writer/optional/includes/table/w_204a_.inc
diff --git a/testautomation/writer/optional/includes/table/w_204b_.inc b/testautomation/writer/optional/includes/table/w_204b_.inc
index 1b5b1282f9cc..1b5b1282f9cc 100755..100644
--- a/testautomation/writer/optional/includes/table/w_204b_.inc
+++ b/testautomation/writer/optional/includes/table/w_204b_.inc
diff --git a/testautomation/writer/optional/includes/textframes/w_textframes1.inc b/testautomation/writer/optional/includes/textframes/w_textframes1.inc
index f6e977e15091..f6e977e15091 100755..100644
--- a/testautomation/writer/optional/includes/textframes/w_textframes1.inc
+++ b/testautomation/writer/optional/includes/textframes/w_textframes1.inc
diff --git a/testautomation/writer/optional/includes/textframes/w_textframes2.inc b/testautomation/writer/optional/includes/textframes/w_textframes2.inc
index eca6e10c97eb..eca6e10c97eb 100755..100644
--- a/testautomation/writer/optional/includes/textframes/w_textframes2.inc
+++ b/testautomation/writer/optional/includes/textframes/w_textframes2.inc
diff --git a/testautomation/writer/optional/includes/textframes/w_textframes3.inc b/testautomation/writer/optional/includes/textframes/w_textframes3.inc
index 0abe031290a9..0abe031290a9 100755..100644
--- a/testautomation/writer/optional/includes/textframes/w_textframes3.inc
+++ b/testautomation/writer/optional/includes/textframes/w_textframes3.inc
diff --git a/testautomation/writer/optional/includes/textframes/w_textframes4.inc b/testautomation/writer/optional/includes/textframes/w_textframes4.inc
index c326f30eb435..c326f30eb435 100755..100644
--- a/testautomation/writer/optional/includes/textframes/w_textframes4.inc
+++ b/testautomation/writer/optional/includes/textframes/w_textframes4.inc
diff --git a/testautomation/writer/optional/includes/textframes/w_textframes5.inc b/testautomation/writer/optional/includes/textframes/w_textframes5.inc
index d5a7e9537878..d5a7e9537878 100755..100644
--- a/testautomation/writer/optional/includes/textframes/w_textframes5.inc
+++ b/testautomation/writer/optional/includes/textframes/w_textframes5.inc
diff --git a/testautomation/writer/optional/includes/tools/tools1.inc b/testautomation/writer/optional/includes/tools/tools1.inc
index 987548a064d1..987548a064d1 100755..100644
--- a/testautomation/writer/optional/includes/tools/tools1.inc
+++ b/testautomation/writer/optional/includes/tools/tools1.inc
diff --git a/testautomation/writer/optional/includes/tools/tools2.inc b/testautomation/writer/optional/includes/tools/tools2.inc
index 8f61d4dc0d1a..8f61d4dc0d1a 100755..100644
--- a/testautomation/writer/optional/includes/tools/tools2.inc
+++ b/testautomation/writer/optional/includes/tools/tools2.inc
diff --git a/testautomation/writer/optional/includes/undo/w_undo1.inc b/testautomation/writer/optional/includes/undo/w_undo1.inc
index c4c602dc6373..c4c602dc6373 100755..100644
--- a/testautomation/writer/optional/includes/undo/w_undo1.inc
+++ b/testautomation/writer/optional/includes/undo/w_undo1.inc
diff --git a/testautomation/writer/optional/includes/undo/w_undo_history_3.inc b/testautomation/writer/optional/includes/undo/w_undo_history_3.inc
index 1d30a87dd406..1d30a87dd406 100755..100644
--- a/testautomation/writer/optional/includes/undo/w_undo_history_3.inc
+++ b/testautomation/writer/optional/includes/undo/w_undo_history_3.inc
diff --git a/testautomation/writer/optional/includes/undo/w_undo_history_4.inc b/testautomation/writer/optional/includes/undo/w_undo_history_4.inc
index 3f0940fc7537..3f0940fc7537 100755..100644
--- a/testautomation/writer/optional/includes/undo/w_undo_history_4.inc
+++ b/testautomation/writer/optional/includes/undo/w_undo_history_4.inc
diff --git a/testautomation/writer/required/includes/w_001_.inc b/testautomation/writer/required/includes/w_001_.inc
index 24292afc4a2a..24292afc4a2a 100755..100644
--- a/testautomation/writer/required/includes/w_001_.inc
+++ b/testautomation/writer/required/includes/w_001_.inc
diff --git a/testautomation/writer/required/includes/w_001a_.inc b/testautomation/writer/required/includes/w_001a_.inc
index ad4951e89a44..ad4951e89a44 100755..100644
--- a/testautomation/writer/required/includes/w_001a_.inc
+++ b/testautomation/writer/required/includes/w_001a_.inc
diff --git a/testautomation/writer/required/includes/w_001b_.inc b/testautomation/writer/required/includes/w_001b_.inc
index 979ae00504b8..979ae00504b8 100755..100644
--- a/testautomation/writer/required/includes/w_001b_.inc
+++ b/testautomation/writer/required/includes/w_001b_.inc
diff --git a/testautomation/writer/required/includes/w_003_.inc b/testautomation/writer/required/includes/w_003_.inc
index 858cdd2ba6c5..858cdd2ba6c5 100755..100644
--- a/testautomation/writer/required/includes/w_003_.inc
+++ b/testautomation/writer/required/includes/w_003_.inc
diff --git a/testautomation/writer/required/includes/w_004_.inc b/testautomation/writer/required/includes/w_004_.inc
index 3a4234bfb18a..3a4234bfb18a 100755..100644
--- a/testautomation/writer/required/includes/w_004_.inc
+++ b/testautomation/writer/required/includes/w_004_.inc
diff --git a/testautomation/writer/required/includes/w_005_.inc b/testautomation/writer/required/includes/w_005_.inc
index 830ce39adc24..93fe9ac0237b 100755
--- a/testautomation/writer/required/includes/w_005_.inc
+++ b/testautomation/writer/required/includes/w_005_.inc
@@ -232,14 +232,55 @@ testcase tFormatChangeCase
printlog " Open new document"
Call hNewDocument
printlog " Insert some text in document and select text"
- Call wTypeKeys ("Hello World!")
+ Call wTypeKeys ("call him now ! please")
Call wTypeKeys ("<Shift Home>")
printlog " Format / Case Characters / Upper"
hUseAsyncSlot( "FormatChangeCaseUpper" )
+ EditCopy
+ if GetClipboardtext() <> "CALL HIM NOW ! PLEASE" then
+ Warnlog "Sentence not 'CALL HIM NOW ! PLEASE' but " & GetClipboardtext()
+ else
+ printlog " " & GetClipboardtext()
+ endif
printlog " Format / Case Characters / Lower"
hUseAsyncSlot( "FormatChangeCaseLower" )
+ EditCopy
+ if GetClipboardtext() <> "call him now ! please" then
+ Warnlog "Sentence not 'call him now ! please' but " & GetClipboardtext()
+ else
+ printlog " " & GetClipboardtext()
+ endif
+
+ printlog " Format / Case Characters / Sentence Case"
+ FormatChangeCaseToSentence
+ EditCopy
+ if GetClipboardtext() <> "Call him now ! Please" then
+ Warnlog "Sentence not 'Call him now ! Please' but " & GetClipboardtext()
+ else
+ printlog " " & GetClipboardtext()
+ endif
+
+ printlog " Format / Case Characters / Capitalize every word"
+ FormatChangeCaseCapitalizeEveryWord
+ EditCopy
+ if GetClipboardtext() <> "Call Him Now ! Please" then
+ Warnlog "Sentence not 'Call Him Now ! Please' but " & GetClipboardtext()
+ else
+ printlog " " & GetClipboardtext()
+ endif
+
+
+ printlog " Format / Case Characters / tOGGLE cASE"
+ FormatChangeCaseToggleCase
+ EditCopy
+ if GetClipboardtext() <> "cALL hIM nOW ! pLEASE" then
+ Warnlog "Sentence not 'cALL hIM nOW ! pLEASE' but " & GetClipboardtext()
+ else
+ printlog " " & GetClipboardtext()
+ endif
+
if ( gAsianSup ) then
try
diff --git a/testautomation/writer/required/includes/w_005b_.inc b/testautomation/writer/required/includes/w_005b_.inc
index ad7c69346cf8..ad7c69346cf8 100755..100644
--- a/testautomation/writer/required/includes/w_005b_.inc
+++ b/testautomation/writer/required/includes/w_005b_.inc
diff --git a/testautomation/writer/required/includes/w_006_.inc b/testautomation/writer/required/includes/w_006_.inc
index 626171707480..626171707480 100755..100644
--- a/testautomation/writer/required/includes/w_006_.inc
+++ b/testautomation/writer/required/includes/w_006_.inc
diff --git a/testautomation/writer/required/includes/w_007_.inc b/testautomation/writer/required/includes/w_007_.inc
index 57c83706029f..9b9a19ca8676 100755
--- a/testautomation/writer/required/includes/w_007_.inc
+++ b/testautomation/writer/required/includes/w_007_.inc
@@ -155,9 +155,9 @@ testcase tToolsSpellcheck
if OptionenBearbeiten.IsEnabled then
OptionenBearbeiten.Click
wait 500
- Kontext "SilbentrennungOptionen"
- DialogTest ( SilbentrennungOptionen )
- SilbentrennungOptionen.Cancel
+ Kontext "HyphenationOptions"
+ DialogTest ( HyphenationOptions )
+ HyphenationOptions.Cancel
end if
next i
@@ -289,13 +289,6 @@ testcase tToolsThesaurus
Kontext "Thesaurus"
DialogTest ( Thesaurus )
- printlog " In 'Thesaurus' dialog click 'Language'"
- Sprache.Click
- Kontext "SpracheAuswaehlen"
- DialogTest ( SpracheAuswaehlen )
- printlog " Close 'Language' dialog"
- SpracheAuswaehlen.Cancel
- Kontext "Thesaurus"
printlog " Close 'Thesaurus' dialog"
Thesaurus.Cancel
PrintLog "Close active documents"
@@ -390,11 +383,11 @@ testcase tToolsHyphenation
end if
end if
- Kontext "Silbentrennung"
+ Kontext "Hyphenation"
printlog " Close upcoming 'Hyphenation' dialog"
- if Silbentrennung.Exists then
- Call DialogTest ( Silbentrennung )
- Silbentrennung.Cancel
+ if Hyphenation.Exists then
+ Call DialogTest ( Hyphenation )
+ Hyphenation.Cancel
else
Warnlog "Dialog 'Hyphenation' not up!"
Kontext "Active"
@@ -1294,11 +1287,11 @@ testcase tMasterDocToolsHyphenation
end if
end if
- Kontext "Silbentrennung"
+ Kontext "Hyphenation"
printlog " Close upcoming 'Hyphenation' dialog"
- if ( Silbentrennung.Exists( 2 ) ) then
- Call DialogTest ( Silbentrennung )
- Silbentrennung.Cancel
+ if ( Hyphenation.Exists( 2 ) ) then
+ Call DialogTest ( Hyphenation )
+ Hyphenation.Cancel
else
Warnlog "Dialog 'Hyphenation' not up!"
Kontext "Active"
diff --git a/testautomation/writer/required/includes/w_008_.inc b/testautomation/writer/required/includes/w_008_.inc
index f3b20e978a1d..f3b20e978a1d 100755..100644
--- a/testautomation/writer/required/includes/w_008_.inc
+++ b/testautomation/writer/required/includes/w_008_.inc
diff --git a/testautomation/writer/required/includes/w_009_.inc b/testautomation/writer/required/includes/w_009_.inc
index 90c4cb5aad19..90c4cb5aad19 100755..100644
--- a/testautomation/writer/required/includes/w_009_.inc
+++ b/testautomation/writer/required/includes/w_009_.inc
diff --git a/testautomation/writer/required/includes/w_010_.inc b/testautomation/writer/required/includes/w_010_.inc
index 29c802022bed..29c802022bed 100755..100644
--- a/testautomation/writer/required/includes/w_010_.inc
+++ b/testautomation/writer/required/includes/w_010_.inc
diff --git a/testautomation/writer/required/includes/w_010_1.inc b/testautomation/writer/required/includes/w_010_1.inc
index b0cf33b43892..b0cf33b43892 100755..100644
--- a/testautomation/writer/required/includes/w_010_1.inc
+++ b/testautomation/writer/required/includes/w_010_1.inc
diff --git a/testautomation/writer/required/includes/w_020_.inc b/testautomation/writer/required/includes/w_020_.inc
index f927d24952f7..f927d24952f7 100755..100644
--- a/testautomation/writer/required/includes/w_020_.inc
+++ b/testautomation/writer/required/includes/w_020_.inc
diff --git a/testautomation/writer/tools/includes/w_get_locale_strings.inc b/testautomation/writer/tools/includes/w_get_locale_strings.inc
index 3e10bdb3d6ce..3e10bdb3d6ce 100755..100644
--- a/testautomation/writer/tools/includes/w_get_locale_strings.inc
+++ b/testautomation/writer/tools/includes/w_get_locale_strings.inc
diff --git a/testautomation/writer/tools/includes/w_tool2.inc b/testautomation/writer/tools/includes/w_tool2.inc
index 44e78fd589b4..44e78fd589b4 100755..100644
--- a/testautomation/writer/tools/includes/w_tool2.inc
+++ b/testautomation/writer/tools/includes/w_tool2.inc
diff --git a/testautomation/writer/tools/includes/w_tool3.inc b/testautomation/writer/tools/includes/w_tool3.inc
index 8be27ca7bc3c..8be27ca7bc3c 100755..100644
--- a/testautomation/writer/tools/includes/w_tool3.inc
+++ b/testautomation/writer/tools/includes/w_tool3.inc
diff --git a/testautomation/writer/tools/includes/w_tool4.inc b/testautomation/writer/tools/includes/w_tool4.inc
index 78cee6ca3042..78cee6ca3042 100755..100644
--- a/testautomation/writer/tools/includes/w_tool4.inc
+++ b/testautomation/writer/tools/includes/w_tool4.inc
diff --git a/testautomation/writer/tools/includes/w_tool5.inc b/testautomation/writer/tools/includes/w_tool5.inc
index 383aefb2cdf5..383aefb2cdf5 100755..100644
--- a/testautomation/writer/tools/includes/w_tool5.inc
+++ b/testautomation/writer/tools/includes/w_tool5.inc
diff --git a/testautomation/writer/tools/includes/w_tool6.inc b/testautomation/writer/tools/includes/w_tool6.inc
index caba673ae6be..caba673ae6be 100755..100644
--- a/testautomation/writer/tools/includes/w_tool6.inc
+++ b/testautomation/writer/tools/includes/w_tool6.inc
diff --git a/testautomation/writer/tools/includes/w_tool7.inc b/testautomation/writer/tools/includes/w_tool7.inc
index 3823efc65586..3823efc65586 100755..100644
--- a/testautomation/writer/tools/includes/w_tool7.inc
+++ b/testautomation/writer/tools/includes/w_tool7.inc
diff --git a/testautomation/writer/tools/includes/w_tools.inc b/testautomation/writer/tools/includes/w_tools.inc
index 8fa05c23bbc9..122a44f7da53 100755
--- a/testautomation/writer/tools/includes/w_tools.inc
+++ b/testautomation/writer/tools/includes/w_tools.inc
@@ -1052,7 +1052,10 @@ sub wOptionsUndo ( sOption$ )
Call hToolsOptions("WRITER","Autocaption")
for i = 1 to ObjectList.GetItemCount
ObjectList.Select i
- ObjectList.UnCheck
+ ' uncheck only if checked, else it might crash on macosx, see issue 111883 for further information
+ if ObjectList.getState (i) > 1 then
+ ObjectList.UnCheck
+ endif
next i
end if
diff --git a/testautomation/writer/tools/includes/w_tools_autocorrection.inc b/testautomation/writer/tools/includes/w_tools_autocorrection.inc
index 71a183527ed6..71a183527ed6 100755..100644
--- a/testautomation/writer/tools/includes/w_tools_autocorrection.inc
+++ b/testautomation/writer/tools/includes/w_tools_autocorrection.inc
diff --git a/testautomation/writer/tools/includes/w_tools_drawing.inc b/testautomation/writer/tools/includes/w_tools_drawing.inc
index 1a1a8ed7975d..1a1a8ed7975d 100755..100644
--- a/testautomation/writer/tools/includes/w_tools_drawing.inc
+++ b/testautomation/writer/tools/includes/w_tools_drawing.inc
diff --git a/testautomation/writer/tools/includes/w_tools_hyphenation.inc b/testautomation/writer/tools/includes/w_tools_hyphenation.inc
index 067aeec3cfca..067aeec3cfca 100755..100644
--- a/testautomation/writer/tools/includes/w_tools_hyphenation.inc
+++ b/testautomation/writer/tools/includes/w_tools_hyphenation.inc
diff --git a/testautomation/writer/tools/includes/w_tools_undo.inc b/testautomation/writer/tools/includes/w_tools_undo.inc
index 4548fe455a1d..4548fe455a1d 100755..100644
--- a/testautomation/writer/tools/includes/w_tools_undo.inc
+++ b/testautomation/writer/tools/includes/w_tools_undo.inc
diff --git a/testautomation/xml/optional/includes/c_datapilot_pagefields.inc b/testautomation/xml/optional/includes/c_datapilot_pagefields.inc
index 90b522d4f0bc..90b522d4f0bc 100755..100644
--- a/testautomation/xml/optional/includes/c_datapilot_pagefields.inc
+++ b/testautomation/xml/optional/includes/c_datapilot_pagefields.inc
diff --git a/testautomation/xml/optional/includes/c_xml_print_scale.inc b/testautomation/xml/optional/includes/c_xml_print_scale.inc
index ee3be5bff1ef..ee3be5bff1ef 100755..100644
--- a/testautomation/xml/optional/includes/c_xml_print_scale.inc
+++ b/testautomation/xml/optional/includes/c_xml_print_scale.inc
diff --git a/testautomation/xml/optional/includes/c_xml_scenario.inc b/testautomation/xml/optional/includes/c_xml_scenario.inc
index 7d7384bb9683..7d7384bb9683 100755..100644
--- a/testautomation/xml/optional/includes/c_xml_scenario.inc
+++ b/testautomation/xml/optional/includes/c_xml_scenario.inc
diff --git a/testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc b/testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc
index f9a60503b3d4..f9a60503b3d4 100755..100644
--- a/testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc
+++ b/testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc
diff --git a/testautomation/xml/optional/includes/docbook_001.inc b/testautomation/xml/optional/includes/docbook_001.inc
index f79f4fd36c4a..f79f4fd36c4a 100755..100644
--- a/testautomation/xml/optional/includes/docbook_001.inc
+++ b/testautomation/xml/optional/includes/docbook_001.inc
diff --git a/testautomation/xml/optional/includes/f_xml_save_ms_ole.inc b/testautomation/xml/optional/includes/f_xml_save_ms_ole.inc
index cdf3ba6718ef..cdf3ba6718ef 100755..100644
--- a/testautomation/xml/optional/includes/f_xml_save_ms_ole.inc
+++ b/testautomation/xml/optional/includes/f_xml_save_ms_ole.inc
diff --git a/testautomation/xml/optional/includes/sxc7_01.inc b/testautomation/xml/optional/includes/sxc7_01.inc
index ada6b021ff19..ada6b021ff19 100755..100644
--- a/testautomation/xml/optional/includes/sxc7_01.inc
+++ b/testautomation/xml/optional/includes/sxc7_01.inc
diff --git a/testautomation/xml/optional/includes/sxc7_02.inc b/testautomation/xml/optional/includes/sxc7_02.inc
index a28cd1249f05..a28cd1249f05 100755..100644
--- a/testautomation/xml/optional/includes/sxc7_02.inc
+++ b/testautomation/xml/optional/includes/sxc7_02.inc
diff --git a/testautomation/xml/optional/includes/sxc7_03.inc b/testautomation/xml/optional/includes/sxc7_03.inc
index 5a9074c0fcbb..5a9074c0fcbb 100755..100644
--- a/testautomation/xml/optional/includes/sxc7_03.inc
+++ b/testautomation/xml/optional/includes/sxc7_03.inc
diff --git a/testautomation/xml/optional/includes/sxd7_01.inc b/testautomation/xml/optional/includes/sxd7_01.inc
index b3e3fd626a5f..b3e3fd626a5f 100755..100644
--- a/testautomation/xml/optional/includes/sxd7_01.inc
+++ b/testautomation/xml/optional/includes/sxd7_01.inc
diff --git a/testautomation/xml/optional/includes/sxd7_02.inc b/testautomation/xml/optional/includes/sxd7_02.inc
index b11787b3689e..b11787b3689e 100755..100644
--- a/testautomation/xml/optional/includes/sxd7_02.inc
+++ b/testautomation/xml/optional/includes/sxd7_02.inc
diff --git a/testautomation/xml/optional/includes/sxd7_03.inc b/testautomation/xml/optional/includes/sxd7_03.inc
index 547d46eb9c0f..547d46eb9c0f 100755..100644
--- a/testautomation/xml/optional/includes/sxd7_03.inc
+++ b/testautomation/xml/optional/includes/sxd7_03.inc
diff --git a/testautomation/xml/optional/includes/sxd7_04.inc b/testautomation/xml/optional/includes/sxd7_04.inc
index e878b111aeea..e878b111aeea 100755..100644
--- a/testautomation/xml/optional/includes/sxd7_04.inc
+++ b/testautomation/xml/optional/includes/sxd7_04.inc
diff --git a/testautomation/xml/optional/includes/sxd7_05.inc b/testautomation/xml/optional/includes/sxd7_05.inc
index 331b3e2f0199..331b3e2f0199 100755..100644
--- a/testautomation/xml/optional/includes/sxd7_05.inc
+++ b/testautomation/xml/optional/includes/sxd7_05.inc
diff --git a/testautomation/xml/optional/includes/sxi7_01.inc b/testautomation/xml/optional/includes/sxi7_01.inc
index fce06a8519e6..fce06a8519e6 100755..100644
--- a/testautomation/xml/optional/includes/sxi7_01.inc
+++ b/testautomation/xml/optional/includes/sxi7_01.inc
diff --git a/testautomation/xml/optional/includes/sxm7_01.inc b/testautomation/xml/optional/includes/sxm7_01.inc
index 68104eaadc72..68104eaadc72 100755..100644
--- a/testautomation/xml/optional/includes/sxm7_01.inc
+++ b/testautomation/xml/optional/includes/sxm7_01.inc
diff --git a/testautomation/xml/optional/includes/sxw7_01.inc b/testautomation/xml/optional/includes/sxw7_01.inc
index 3361f86af47c..3361f86af47c 100755..100644
--- a/testautomation/xml/optional/includes/sxw7_01.inc
+++ b/testautomation/xml/optional/includes/sxw7_01.inc
diff --git a/testautomation/xml/optional/includes/sxw7_01a.inc b/testautomation/xml/optional/includes/sxw7_01a.inc
index 2c3dcdedde1a..2c3dcdedde1a 100755..100644
--- a/testautomation/xml/optional/includes/sxw7_01a.inc
+++ b/testautomation/xml/optional/includes/sxw7_01a.inc
diff --git a/testautomation/xml/optional/includes/sxw7_02.inc b/testautomation/xml/optional/includes/sxw7_02.inc
index c433b5cdcd36..c433b5cdcd36 100755..100644
--- a/testautomation/xml/optional/includes/sxw7_02.inc
+++ b/testautomation/xml/optional/includes/sxw7_02.inc
diff --git a/testautomation/xml/optional/includes/sxw7_03.inc b/testautomation/xml/optional/includes/sxw7_03.inc
index cfdb3cf3ce3a..cfdb3cf3ce3a 100755..100644
--- a/testautomation/xml/optional/includes/sxw7_03.inc
+++ b/testautomation/xml/optional/includes/sxw7_03.inc
diff --git a/testautomation/xml/optional/includes/w_xml_vertical_alignment.inc b/testautomation/xml/optional/includes/w_xml_vertical_alignment.inc
index 9838694951ad..9838694951ad 100755..100644
--- a/testautomation/xml/optional/includes/w_xml_vertical_alignment.inc
+++ b/testautomation/xml/optional/includes/w_xml_vertical_alignment.inc
diff --git a/testautomation/xml/required/includes/oasis_graphics_01.inc b/testautomation/xml/required/includes/oasis_graphics_01.inc
index 7982f1040b65..7982f1040b65 100755..100644
--- a/testautomation/xml/required/includes/oasis_graphics_01.inc
+++ b/testautomation/xml/required/includes/oasis_graphics_01.inc
diff --git a/testautomation/xml/tools/includes/itools1.inc b/testautomation/xml/tools/includes/itools1.inc
index 37d840bd8e1e..37d840bd8e1e 100755..100644
--- a/testautomation/xml/tools/includes/itools1.inc
+++ b/testautomation/xml/tools/includes/itools1.inc
diff --git a/testautomation/xml/tools/includes/xmltool1.inc b/testautomation/xml/tools/includes/xmltool1.inc
index e0356be2076c..e0356be2076c 100755..100644
--- a/testautomation/xml/tools/includes/xmltool1.inc
+++ b/testautomation/xml/tools/includes/xmltool1.inc
diff --git a/testgraphical/document-pool/demo/CurrentTime.ods b/testgraphical/document-pool/demo/CurrentTime.ods
new file mode 100644
index 000000000000..e027215ddb74
--- /dev/null
+++ b/testgraphical/document-pool/demo/CurrentTime.ods
Binary files differ
diff --git a/testgraphical/document-pool/demo/knownissues.xcl b/testgraphical/document-pool/demo/knownissues.xcl
new file mode 100644
index 000000000000..5cdad159bc35
--- /dev/null
+++ b/testgraphical/document-pool/demo/knownissues.xcl
@@ -0,0 +1,8 @@
+[ps]
+### contains date in it, will fail every time ###
+CurrentTime.ods
+
+[pdf]
+### contains date in it, will fail every time ###
+CurrentTime.ods
+
diff --git a/testgraphical/document-pool/singletest/eis-test.odt b/testgraphical/document-pool/singletest/eis-test.odt
new file mode 100644
index 000000000000..bb9c6a43f623
--- /dev/null
+++ b/testgraphical/document-pool/singletest/eis-test.odt
Binary files differ
diff --git a/testgraphical/prechecks/makefile.mk b/testgraphical/prechecks/makefile.mk
new file mode 100644
index 000000000000..13796c949ab5
--- /dev/null
+++ b/testgraphical/prechecks/makefile.mk
@@ -0,0 +1,56 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=..
+
+PRJNAME=gfxcmp_prechecks
+TARGET=notargetyet
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(VERBOSE)"!=""
+ P_VERBOSE=-verbose
+.ENDIF
+.IF "$(SHOW)"!=""
+ P_JAVA6=-java6
+.ENDIF
+
+# PERLDEBUG=-d:ptkdb
+ALLTAR:
+.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
+ $(PERL) $(PERLDEBUG) softwaretests.pl -printerdriver -imagemagick -ghostscript $(P_VERBOSE) $(P_JAVA6)
+.ELSE
+ $(PERL) $(PERLDEBUG) softwaretests.pl -imagemagick -ghostscript $(P_VERBOSE) $(P_JAVA6)
+.ENDIF
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
diff --git a/testgraphical/prechecks/softwaretests.pl b/testgraphical/prechecks/softwaretests.pl
new file mode 100644
index 000000000000..f591fa139879
--- /dev/null
+++ b/testgraphical/prechecks/softwaretests.pl
@@ -0,0 +1,564 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+# This is a pre check, which checks if some extra software exists
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+}
+
+use strict;
+use English; # $OSNAME, ...
+use Getopt::Long;
+use Cwd;
+use Cwd 'chdir';
+my $cwd = getcwd();
+
+our $help; # Help option flag
+our $version; # Version option flag
+
+# flush STDOUT
+# my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+# $| = 1; # perform flush after each write to STDOUT
+# select ($old_handle); # restore previously selected handle
+
+$OUTPUT_AUTOFLUSH=1; # works only if use English is used.
+
+our $sGlobalIniFile;
+our $verbose = 0;
+our $ghostscript;
+our $imagemagick;
+our $java6;
+our $printerdriver;
+
+our $version_info = 'compare.pl';
+
+GetOptions(
+ "ghostscript" => \$ghostscript,
+ "imagemagick" => \$imagemagick,
+ "java6" => \$java6,
+ "printerdriver" => \$printerdriver,
+ "verbose" => \$verbose,
+
+ "help" => \$help,
+ "version" => \$version
+ );
+
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+# prepare the GlobalIniFile
+
+sub prepare()
+{
+ my $sEnv = "$ENV{PRJ}";
+ if (! $sEnv)
+ {
+ print "Warning: Seems you are not in a makefile.mk environment.\n";
+ $sEnv = "..";
+ }
+ my $sPath = getcwd();
+ $sPath .= "/" . $sEnv;
+ chdir ($sPath);
+ cwd();
+ $sPath = getcwd();
+ my $sInpath = $ENV{INPATH};
+ $sPath .= "/" . $sInpath . "/misc";
+ $sGlobalIniFile = "$sPath/pathes.ini";
+ print "Global Path ini file is: $sGlobalIniFile\n" if ($verbose);
+}
+
+sub unixpath($)
+{
+ my $path = shift;
+ $path =~ s/\\/\//g; # make out of '\' a '/'
+ return $path;
+}
+
+# search for file in a given path list.
+# the path list should be separated as the path variable in the corresponding OS
+sub searchForFileInPath($$)
+{
+ my $sFile = shift;
+ my $sPathList = shift;
+
+ my $sep = ':';
+ if ($OSNAME eq "MSWin32")
+ {
+ $sep = ';';
+ }
+ my @path = split($sep, $sPathList);
+
+ my $sPath;
+ my $startdir;
+ my $bFound = 0;
+ my $olddir = getcwd();
+
+ my $sWindowsHomeDir = unixpath(lc($ENV{WINDIR}));
+
+ foreach $startdir (@path)
+ {
+ my $nCount = 0;
+ #
+ # IMPORTANT: leave out windir path.
+ #
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sPath = unixpath(lc(convertCygwinPath($startdir)));
+ if ($sPath =~ /^$sWindowsHomeDir/ )
+ {
+ print "path: $startdir is windows path leave out.\n" if ($verbose);
+ next;
+ }
+ }
+
+ local *DIR;
+ if (opendir (DIR, $startdir)) # open directory
+ {
+ print "path: $startdir" if ($verbose);
+ chdir ($startdir);
+ cwd();
+ my $myfile;
+ while ($myfile = readdir(DIR)) # get filename
+ {
+ if (-f $myfile ) # is it a file?
+ {
+ $nCount ++;
+ if ($myfile eq $sFile) # is it the real file?
+ {
+ $sPath = $startdir;
+ $bFound = 1;
+ last;
+ }
+ }
+ }
+ closedir(DIR);
+ print " ($nCount)\n" if ($verbose);
+ }
+ if ($bFound == 1)
+ {
+ last;
+ }
+ }
+ chdir ($olddir);
+ cwd();
+
+ return $sPath;
+}
+
+
+prepare();
+# don't remove the inifile, only build clean should do this.
+# if ( -e "$sGlobalIniFile")
+# {
+# unlink($sGlobalIniFile);
+# }
+
+
+# small helper, which replaces the return code
+sub errorAdaption($)
+{
+ my $error = shift;
+ if ($error != 0)
+ {
+ $error = $error / 256;
+ }
+ if ($error > 127)
+ {
+ $error = $error - 256;
+ }
+ return $error;
+}
+
+# for every error we increment this variable by 1
+our $nGlobalErrors = 0;
+
+sub handleError($$)
+{
+ my $error = shift;
+ my $sText = shift;
+ if ($error != 0)
+ {
+ print "ERROR: search for $sText has failed with Errornumber: $error\n";
+ $nGlobalErrors ++;
+ }
+}
+
+sub convertCygwinPath($)
+{
+ my $sPath = shift;
+
+ if ($OSNAME eq "cygwin")
+ {
+ # print "Cygwin Path Patch.\n" if ($verbose);
+ if ($sPath =~ /\/cygdrive\/(.)/)
+ {
+ my $Letter = $1;
+ $sPath =~ s/\/cygdrive\/${Letter}/${Letter}\:/;
+ # print "Cygwin Path Patch: '$sPath'\n" if ($verbose);
+ }
+ }
+ return $sPath;
+}
+
+# append key=value to GlobalIniFile
+sub insertPath($$)
+{
+ my $sKey = shift;
+ my $sValue = shift;
+
+ $sValue = convertCygwinPath($sValue);
+ my $sIniFile = convertCygwinPath($sGlobalIniFile);
+ local *INIFILE;
+ if (open(INIFILE, ">>" . $sIniFile ))
+ {
+ print INIFILE "$sKey=$sValue\n";
+ }
+ close(INIFILE);
+}
+
+sub getFastPath($)
+{
+ my $sKey = shift;
+ my $sValue;
+ local *INIFILE;
+ my $sIniFile = convertCygwinPath($sGlobalIniFile);
+ if (open(INIFILE, $sIniFile))
+ {
+ my $line;
+ while ($line = <INIFILE>)
+ {
+ chomp($line);
+ if ( $line =~ /^$sKey=(.*)$/ )
+ {
+ $sValue = $1;
+ # print INIFILE "$sKey=$sValue\n";
+ }
+ }
+ close(INIFILE);
+ }
+ return $sValue;
+}
+
+sub checkForGhostscript()
+{
+ print "Search for Ghostscript\n" if ($verbose);
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ # search for ghostscript
+ local *GHOSTSCRIPT;
+ if (open(GHOSTSCRIPT, "which gs 2>&1 |"))
+ {
+ my $line;
+ while ($line = <GHOSTSCRIPT>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ }
+ close(GHOSTSCRIPT);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Ghostscript");
+ }
+ elsif ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sGSExe = "gswin32c.exe";
+ # my $sGSPath = "C:/gs/gs8.64/bin";
+ my $sGSPath = getFastPath("gs.path");
+ if (! $sGSPath)
+ {
+ $sGSPath = searchForFileInPath($sGSExe, $ENV{PATH});
+
+ if ( ! -e "$sGSPath/$sGSExe")
+ {
+ $nGlobalErrors ++;
+ print "ERROR: search for $sGSPath/$sGSExe failed.\n";
+ print "Please install ghostscript from www.adobe.com to and make it available in \$PATH variable \n";
+ }
+ else
+ {
+ insertPath("gs.path", $sGSPath);
+ insertPath("gs.exe", $sGSExe);
+ }
+ }
+ if ( -e "$sGSPath/$sGSExe" )
+ {
+ print "Found Ghostscript: '$sGSPath'\n" if ($verbose);
+ }
+ }
+ else
+ {
+ print "ERROR: Check for Ghostscript failed, due to unsupported '$OSNAME' environment.\n";
+ $nGlobalErrors ++;
+ }
+}
+
+
+sub checkForPSDriver()
+{
+ # we don't need to check for unix here, due to the fact, unix is per default be able to print in postscript
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ print "Check for postscript driver.\n" if ($verbose);
+ my $sWindowsRoot = $ENV{windir};
+ if (! $sWindowsRoot)
+ {
+ $sWindowsRoot = $ENV{WINDIR};
+ }
+ my $sCrossOfficeDriver = "${sWindowsRoot}/system32/crossoffice.ppd";
+ if ( ! -e "$sCrossOfficeDriver")
+ {
+ print "ERROR: Don't found Postscript driver $sCrossOfficeDriver file\n";
+ $nGlobalErrors ++;
+ print "Take a look on: http://so-gfxcmp.germany.sun.com/docs/further/convwatch/convwatch.html.\n";
+ }
+ }
+}
+
+sub checkForImageMagick()
+{
+ print "Search for Imagemagick\n" if ($verbose);
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ # search for imagemagick
+ local *IMAGEMAGICK;
+ if (open(IMAGEMAGICK, "which convert 2>&1 |"))
+ {
+ my $line;
+ while ($line = <IMAGEMAGICK>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ }
+ close(IMAGEMAGICK);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Imagemagick");
+ }
+ elsif ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ my $sImageMagickExe = "convert.exe";
+ # my $sImageMagickPath = "C:/gs/gs8.64/bin";
+ my $sImageMagickPath = getFastPath("imagemagick.path");
+ if (! $sImageMagickPath)
+ {
+ $sImageMagickPath = searchForFileInPath($sImageMagickExe, $ENV{PATH});
+ if ($sImageMagickPath)
+ {
+ if ( ! -e "$sImageMagickPath/$sImageMagickExe")
+ {
+ $nGlobalErrors ++;
+ print "ERROR: search for $sImageMagickPath/$sImageMagickExe failed.\n";
+ print "Please install ImageMagick from www.imagemagick.org to and make it available in \$PATH variable \n";
+ }
+ else
+ {
+ insertPath("imagemagick.path", $sImageMagickPath);
+ # insertPath("gs.exe", $sImageMagickExe);
+ }
+ }
+ else
+ {
+ # next try, search image magick in $PROGRAMFILES
+ my $sPrograms = unixpath($ENV{PROGRAMFILES});
+
+ if (! $sPrograms)
+ {
+ print "There exist no \$PROGRAMFILES path, wrong Windows version?\n";
+ $nGlobalErrors++;
+ }
+ else
+ {
+ local *DIR;
+ if (opendir (DIR, $sPrograms)) # open program directory
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR)) # get a filename
+ {
+ if ($myfile =~ /ImageMagick/)
+ {
+ $sImageMagickPath = $sPrograms . "/" . $myfile;
+ last;
+ }
+ }
+ closedir(DIR);
+ }
+ if (! -e $sImageMagickPath)
+ {
+ print "ImageMagick not found.\n";
+ $nGlobalErrors ++;
+ }
+ else
+ {
+ insertPath("imagemagick.path", $sImageMagickPath);
+ }
+ }
+ }
+
+ }
+ if ( -e "$sImageMagickPath/$sImageMagickExe" )
+ {
+ print "Found ImageMagick: '$sImageMagickPath'\n" if ($verbose);
+ }
+ }
+ else
+ {
+ print "ERROR: not supported environment\n";
+ }
+}
+
+sub checkForJava6()
+{
+ print "Search for Java6\n" if ($verbose);
+ my $javaexe = "java";
+ if ( $ENV{JAVA6} )
+ {
+ $javaexe = $ENV{JAVA6};
+ }
+
+ if ($OSNAME eq "linux" || $OSNAME eq "cygwin")
+ {
+ # search for imagemagick
+ local *JAVA;
+ if (open(JAVA, "$javaexe -version 2>&1 |"))
+ {
+ my $line;
+ while ($line = <JAVA>)
+ {
+ chomp($line);
+ print "- $line\n" if ($verbose);
+ if ( $line =~ /java version "(.*)"/ )
+ {
+ my $javaversion = $1;
+ my @version = split('\.', $javaversion);
+ print "Found Java version: $version[1] the complete version: $javaversion\n" if ($verbose);
+ if ( $version[1] < 6)
+ {
+ print "Wrong Java version, at least Java version 6 is need but found $javaversion.\n";
+ $nGlobalErrors++;
+ print "It is possible to overwrite the java exe with environment variable JAVA6='path'.\n";
+ }
+ else
+ {
+ insertPath("java.exe", $javaexe);
+ }
+ last;
+ }
+ }
+ close(JAVA);
+ }
+ my $error = errorAdaption($?);
+ handleError($error, "Java");
+ }
+ elsif ($OSNAME eq "MSWin32")
+ {
+ my $javaexe = "java";
+ if ( $ENV{JAVA6} )
+ {
+ $javaexe = $ENV{JAVA6};
+ }
+
+ if (! -e $javaexe)
+ {
+ print "Java not found.\n";
+ $nGlobalErrors ++;
+ }
+ else
+ {
+ print "Found Java: '$javaexe'\n" if ($verbose);
+ insertPath("java.exe", $javaexe);
+ }
+ }
+ else
+ {
+ print "ERROR: Java not found.\n";
+ }
+}
+
+# different checks
+print "Environment '$OSNAME'\n" if ($verbose);
+
+if ($printerdriver)
+{
+ checkForPSDriver();
+}
+if ($ghostscript)
+{
+ checkForGhostscript();
+}
+if ($imagemagick)
+{
+ checkForImageMagick();
+}
+if ($java6)
+{
+ checkForJava6();
+}
+
+# return with found errors
+exit($nGlobalErrors);
+
+# ------------------------------------------------------------------------------
+sub print_usage(*)
+{
+ local *HANDLE = $_[0];
+ my $tool_name = basename($0);
+
+ print(HANDLE <<END_OF_USAGE);
+
+Usage: $tool_name [OPTIONS]
+
+ -ghostscript Try to find ghostscript in your environment
+ -imagemagick Try to find imagemagick
+ -java6 Checks for java 1.6.x
+ -printerdriver Try to find printer driver, windows only
+ -verbose be verbose
+
+ -h, --help Print this help, then exit
+ -v, --version Print version number, then exit
+
+END_OF_USAGE
+;
+}
diff --git a/testgraphical/prj/build.lst b/testgraphical/prj/build.lst
new file mode 100755
index 000000000000..45fb77fd81ec
--- /dev/null
+++ b/testgraphical/prj/build.lst
@@ -0,0 +1,7 @@
+gfxcmp testgraphical : instsetoo_native NULL
+gfxcmp testgraphical usr1 - all gfxcmp_mkout NULL
+#gfxcmp testgraphical\prechecks nmake - all gfxcmp_pre NULL
+gfxcmp testgraphical\ui\java\ConvwatchGUIProject nmake - all gfxcmp_java_ui NULL
+gfxcmp testgraphical\ui\java nmake - all gfxcmp_java gfxcmp_java_ui NULL
+# gfxcmp testgraphical\source nmake - all gfxcmp_src gfxcmp_java NULL
+gfxcmp testgraphical\qa\graphical nmake - all gfxcmp_qa gfxcmp_java NULL
diff --git a/testgraphical/prj/d.lst b/testgraphical/prj/d.lst
new file mode 100755
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/testgraphical/prj/d.lst
diff --git a/testgraphical/qa/graphical/Test.java b/testgraphical/qa/graphical/Test.java
new file mode 100644
index 000000000000..8c633dede44c
--- /dev/null
+++ b/testgraphical/qa/graphical/Test.java
@@ -0,0 +1,113 @@
+/*************************************************************************
+* 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.
+************************************************************************/
+
+package org.openoffice.testgraphical.qa.graphical;
+
+import org.openoffice.Runner;
+import org.openoffice.test.OfficeConnection;
+import static org.junit.Assert.*;
+
+import helper.ProcessHandler;
+import graphical.FileHelper;
+import java.io.File;
+
+public final class Test {
+ @org.junit.Before
+ public void setUp() throws Exception
+ {
+ connection.setUp();
+ }
+
+ @org.junit.After
+ public void tearDown() throws Exception
+ {
+ connection.tearDown();
+ }
+
+ @org.junit.Test
+ public void test()
+ {
+ boolean good = true;
+
+ final String sPerlEXE = System.getenv("PERL");
+ // System.out.println("PERL:=" + sPerlEXE);
+
+ final String sPRJ = System.getenv("PRJ");
+ // System.out.println("PRJ:=" + sPRJ);
+
+ String sShow = "";
+ if (System.getProperty("SHOW") != null)
+ {
+ sShow = "-show";
+ }
+
+ final String sComparePath = FileHelper.appendPath(sPRJ, "source");
+ final String sCompareName = FileHelper.appendPath(sComparePath, "compare.pl");
+
+ File aCompareFile = new File(sCompareName);
+ if (!aCompareFile.exists())
+ {
+ System.out.println("Path to compare.pl is wrong: '" + aCompareFile.getAbsolutePath() + "'");
+ assertTrue(false);
+ }
+
+ final String sConnectionString = connection.getDescription();
+
+ String[] sCommandArray =
+ {
+ sPerlEXE,
+ aCompareFile.getAbsolutePath(),
+ "-creatortype", "pdf",
+
+// If you make changes here, do it also in ../../source/makefile.mk in selftest: target!
+
+ "-pool", "singletest",
+ "-document", "eis-test.odt",
+ // "-pool", "demo",
+ // "-document", "CurrentTime.ods",
+ "-connectionstring", sConnectionString,
+ // "-verbose",
+ sShow
+ };
+
+ ProcessHandler aHandler = new ProcessHandler(sCommandArray);
+ boolean bBackValue = aHandler.executeSynchronously();
+ int nExitCode = aHandler.getExitCode();
+
+ // String sBack = aHandler.getOutputText();
+ if (nExitCode != 0)
+ {
+ good = false;
+ }
+
+ assertTrue(good);
+
+ // Runner.run(
+ // "-sce", "sw.sce", "-xcl", "knownissues.xcl", "-tdoc",
+ // "testdocuments", "-cs", connection.getDescription()));
+ }
+
+ private final OfficeConnection connection = new OfficeConnection();
+}
diff --git a/testgraphical/qa/graphical/makefile.mk b/testgraphical/qa/graphical/makefile.mk
new file mode 100644
index 000000000000..7cb43a6585db
--- /dev/null
+++ b/testgraphical/qa/graphical/makefile.mk
@@ -0,0 +1,57 @@
+#*************************************************************************
+# 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.
+#***********************************************************************/
+
+.IF "$(OOO_SUBSEQUENT_TESTS)" == ""
+nothing .PHONY:
+ @echo "OOO_SUBSEQUENT_TESTS not given, do nothing."
+.ELSE
+
+PRJ = ../..
+PRJNAME = testgraphical
+TARGET = qa_graphical
+
+.IF "$(OOO_JUNIT_JAR)" != ""
+
+.IF "$(SHOW)" != ""
+# You will need java6 for this!
+JAVAIFLAGS:=$(JAVAIFLAGS) -DSHOW=1
+.ENDIF
+
+PACKAGE = org/openoffice/testgraphical/qa/graphical
+JAVATESTFILES = Test.java
+JAVAFILES = $(JAVATESTFILES)
+JARFILES = OOoRunner.jar test.jar
+EXTRAJARFILES = $(OOO_JUNIT_JAR)
+.END
+
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+.INCLUDE: installationtest.mk
+
+ALLTAR : javatest
+
+.END
+
+clean:
diff --git a/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf b/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf
new file mode 100644
index 000000000000..a753c03708c7
--- /dev/null
+++ b/testgraphical/references/unxlngi/demo/CurrentTime.ods.pdf
Binary files differ
diff --git a/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps b/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps
new file mode 100644
index 000000000000..aa7455255e2c
--- /dev/null
+++ b/testgraphical/references/unxlngi/demo/CurrentTime.ods.ps
@@ -0,0 +1,576 @@
+%!PS-Adobe-3.0
+%%BoundingBox: (atend)
+%%Creator: (Oracle Open Office 3.2)
+%%For: (ll93751)
+%%CreationDate: (Fri May 12 00:00:14 2000)
+%%Title: (CurrentTime)
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%Orientation: (atend)
+%%PageOrder: Ascend
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset PSPrint-Prolog 1.0 0
+/ISO1252Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G
+/H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g
+/h /i /j /k /l /m /n /o
+/p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /unused
+/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
+/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
+/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+
+/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
+{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
+currentdict end exch pop definefont pop } def
+
+/pathdict dup 8 dict def load begin
+/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
+{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
+add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
+eq 3 1 roll exch } def
+/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
+get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
+-1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
+for 256 div exch pop exch { neg } if } def
+/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
+1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
+/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
+
+systemdict /languagelevel known not {
+/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
+exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
+roll show moveto 0 rmoveto } for pop pop } def
+/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
+rlineto closepath } def
+/rectfill { rectangle fill } def
+/rectstroke { rectangle stroke } def } if
+/bshow { currentlinewidth 3 1 roll currentpoint 3 index show moveto
+setlinewidth false charpath stroke setlinewidth } def
+/bxshow { currentlinewidth 4 1 roll setlinewidth exch dup length 1 sub
+0 1 3 -1 roll { 1 string 2 index 2 index get 1 index exch 0 exch put dup
+currentpoint 3 -1 roll show moveto currentpoint 3 -1 roll false charpath
+stroke moveto 2 index exch get 0 rmoveto } for pop pop setlinewidth } def
+
+/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
+/psp_ascii85filter { currentfile /ASCII85Decode filter } def
+/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
+/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
+/psp_imagedict {
+/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
+/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
+def 7 dict dup
+/ImageType 1 put dup
+/Width 7 -1 roll put dup
+/Height 5 index put dup
+/BitsPerComponent 4 index psp_bitspercomponent put dup
+/Decode 5 -1 roll psp_decodearray put dup
+/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
+/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
+} def
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%
+%%BeginResource: font ArialMTFID10HGSet1
+%!PS-AdobeFont-1.0-2.53740
+% Creator: SunTypeTools-TT 1.0 gelf
+% Original font name: ArialMT
+30 dict begin
+/PaintType 0 def
+/FontType 3 def
+/StrokeWidth 0 def
+/FontName (ArialMTFID10HGSet1) cvn def
+/XUID [103 0 0 16#44E1DF76 13 16#50429D91 16#0D1ECFCF] def
+/FontMatrix [.001 0 0 .001 0 0] def
+/FontBBox [-664 -324 2028 1037] def
+/Encoding 256 array def
+ 0 1 255 {Encoding exch /.notdef put} for
+ Encoding 0 /glyph0 put
+ Encoding 32 /glyph1 put
+ Encoding 48 /glyph2 put
+ Encoding 49 /glyph3 put
+ Encoding 51 /glyph4 put
+ Encoding 58 /glyph5 put
+ Encoding 80 /glyph6 put
+ Encoding 83 /glyph7 put
+ Encoding 97 /glyph8 put
+ Encoding 101 /glyph9 put
+ Encoding 103 /glyph10 put
+ Encoding 104 /glyph11 put
+ Encoding 116 /glyph12 put
+/CharProcs 14 dict def
+ CharProcs begin
+ /.notdef {} def
+ /glyph0 {
+ 750 0 125 0 625 625 setcachedevice
+ 125 0 moveto
+ 125 625 lineto
+ 625 625 lineto
+ 625 0 lineto
+ 125 0 lineto
+ closepath
+ 140 15 moveto
+ 609 15 lineto
+ 609 609 lineto
+ 140 609 lineto
+ 140 15 lineto
+ closepath
+ fill
+ } bind def
+ /glyph1 {
+ 277 0 0 0 0 0 setcachedevice
+ } bind def
+ /glyph2 {
+ 556 0 41 -12 508 718 setcachedevice
+ 41 353 moveto
+ 41 437 50 505 67 557 curveto
+ 84 608 110 648 145 676 curveto
+ 179 704 222 718 274 718 curveto
+ 313 718 347 711 375 695 curveto
+ 404 680 428 658 447 628 curveto
+ 466 600 481 564 492 522 curveto
+ 502 480 508 424 508 353 curveto
+ 508 269 500 201 482 149 curveto
+ 465 98 439 58 405 30 curveto
+ 371 2 327 -12 274 -12 curveto
+ 206 -12 151 12 112 62 curveto
+ 65 121 41 218 41 353 curveto
+ closepath
+ 131 353 moveto
+ 131 235 145 157 173 118 curveto
+ 200 80 234 60 274 60 curveto
+ 315 60 349 79 376 118 curveto
+ 404 157 417 235 417 353 curveto
+ 417 470 404 549 376 587 curveto
+ 349 626 315 645 273 645 curveto
+ 233 645 201 629 177 594 curveto
+ 147 551 131 470 131 353 curveto
+ closepath
+ fill
+ } bind def
+ /glyph3 {
+ 556 0 108 0 372 718 setcachedevice
+ 372 0 moveto
+ 284 0 lineto
+ 284 560 lineto
+ 263 540 236 520 201 499 curveto
+ 167 479 136 464 108 454 curveto
+ 108 539 lineto
+ 158 562 201 590 237 623 curveto
+ 274 655 300 687 315 718 curveto
+ 372 718 lineto
+ 372 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph4 {
+ 556 0 41 -12 510 718 setcachedevice
+ 41 188 moveto
+ 129 200 lineto
+ 140 151 157 115 181 93 curveto
+ 205 71 235 60 270 60 curveto
+ 311 60 346 74 375 103 curveto
+ 403 131 417 166 417 209 curveto
+ 417 250 404 283 377 309 curveto
+ 352 335 318 348 277 348 curveto
+ 261 348 240 345 215 338 curveto
+ 225 416 lineto
+ 230 415 235 415 239 415 curveto
+ 276 415 310 424 340 444 curveto
+ 370 463 385 494 385 534 curveto
+ 385 566 374 593 352 614 curveto
+ 331 635 302 646 268 646 curveto
+ 234 646 205 636 182 614 curveto
+ 160 593 145 561 138 517 curveto
+ 50 533 lineto
+ 61 592 85 637 124 670 curveto
+ 162 702 209 718 266 718 curveto
+ 305 718 341 710 374 693 curveto
+ 406 677 432 654 449 625 curveto
+ 466 596 475 565 475 532 curveto
+ 475 501 467 474 450 448 curveto
+ 434 423 409 402 376 387 curveto
+ 419 378 452 357 475 327 curveto
+ 499 296 510 257 510 211 curveto
+ 510 149 488 96 442 52 curveto
+ 396 9 339 -12 269 -12 curveto
+ 207 -12 154 5 113 43 curveto
+ 71 81 48 129 41 188 curveto
+ closepath
+ fill
+ } bind def
+ /glyph5 {
+ 277 0 90 0 190 518 setcachedevice
+ 90 418 moveto
+ 90 518 lineto
+ 190 518 lineto
+ 190 418 lineto
+ 90 418 lineto
+ closepath
+ 90 0 moveto
+ 90 100 lineto
+ 190 100 lineto
+ 190 0 lineto
+ 90 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph6 {
+ 666 0 77 0 623 715 setcachedevice
+ 77 0 moveto
+ 77 715 lineto
+ 347 715 lineto
+ 394 715 431 713 456 708 curveto
+ 491 703 520 692 544 675 curveto
+ 568 659 587 636 602 606 curveto
+ 616 577 623 544 623 508 curveto
+ 623 448 604 396 565 354 curveto
+ 526 312 457 291 355 291 curveto
+ 171 291 lineto
+ 171 0 lineto
+ 77 0 lineto
+ closepath
+ 171 375 moveto
+ 356 375 lineto
+ 417 375 461 386 487 409 curveto
+ 513 432 525 464 525 505 curveto
+ 525 535 518 561 503 583 curveto
+ 488 604 468 618 443 625 curveto
+ 427 629 398 631 354 631 curveto
+ 171 631 lineto
+ 171 375 lineto
+ closepath
+ fill
+ } bind def
+ /glyph7 {
+ 666 0 44 -12 614 728 setcachedevice
+ 44 229 moveto
+ 134 237 lineto
+ 138 202 148 172 164 149 curveto
+ 179 126 203 108 235 94 curveto
+ 268 80 305 72 345 72 curveto
+ 381 72 413 78 441 88 curveto
+ 469 99 489 114 503 133 curveto
+ 516 151 523 172 523 194 curveto
+ 523 216 517 236 503 253 curveto
+ 491 270 469 284 439 295 curveto
+ 420 302 377 314 312 330 curveto
+ 246 346 200 360 173 375 curveto
+ 140 393 114 415 97 441 curveto
+ 81 468 72 498 72 530 curveto
+ 72 566 82 600 103 632 curveto
+ 123 663 153 687 192 703 curveto
+ 232 719 275 728 324 728 curveto
+ 377 728 424 719 464 702 curveto
+ 505 685 536 660 558 626 curveto
+ 580 594 591 556 593 514 curveto
+ 502 507 lineto
+ 498 552 481 586 453 609 curveto
+ 425 632 383 644 328 644 curveto
+ 270 644 229 634 203 613 curveto
+ 177 592 163 566 163 537 curveto
+ 163 511 172 490 191 473 curveto
+ 209 457 257 440 334 422 curveto
+ 411 405 463 390 492 376 curveto
+ 534 357 564 333 584 304 curveto
+ 604 274 614 240 614 202 curveto
+ 614 164 604 128 582 94 curveto
+ 560 61 529 35 488 16 curveto
+ 447 -2 401 -12 350 -12 curveto
+ 285 -12 231 -2 187 16 curveto
+ 144 35 109 63 84 101 curveto
+ 59 139 46 182 44 229 curveto
+ closepath
+ fill
+ } bind def
+ /glyph8 {
+ 556 0 36 -11 513 530 setcachedevice
+ 404 63 moveto
+ 372 36 340 17 310 5 curveto
+ 280 -5 248 -11 213 -11 curveto
+ 156 -11 112 2 82 30 curveto
+ 51 58 36 93 36 136 curveto
+ 36 162 41 185 53 206 curveto
+ 64 227 80 244 99 256 curveto
+ 117 269 138 279 162 285 curveto
+ 179 290 205 294 240 298 curveto
+ 311 307 363 317 396 329 curveto
+ 397 341 397 348 397 352 curveto
+ 397 387 389 413 372 427 curveto
+ 350 447 316 457 272 457 curveto
+ 231 457 201 450 181 436 curveto
+ 161 421 146 395 137 358 curveto
+ 51 370 lineto
+ 59 407 71 437 89 459 curveto
+ 107 482 133 500 167 512 curveto
+ 201 524 240 530 285 530 curveto
+ 329 530 365 525 393 514 curveto
+ 420 504 440 491 454 475 curveto
+ 467 459 476 439 481 415 curveto
+ 484 400 485 374 485 334 curveto
+ 485 217 lineto
+ 485 135 487 84 491 62 curveto
+ 495 41 502 20 513 0 curveto
+ 421 0 lineto
+ 413 18 407 39 404 63 curveto
+ closepath
+ 396 260 moveto
+ 365 247 317 236 253 227 curveto
+ 217 222 191 216 176 209 curveto
+ 162 203 150 193 142 181 curveto
+ 134 168 129 154 129 139 curveto
+ 129 116 138 96 156 80 curveto
+ 174 65 200 57 234 57 curveto
+ 268 57 298 64 324 79 curveto
+ 351 94 370 114 382 140 curveto
+ 392 160 396 189 396 228 curveto
+ 396 260 lineto
+ closepath
+ fill
+ } bind def
+ /glyph9 {
+ 556 0 36 -11 514 530 setcachedevice
+ 420 166 moveto
+ 511 155 lineto
+ 497 103 471 62 432 32 curveto
+ 393 3 344 -11 283 -11 curveto
+ 208 -11 147 11 103 58 curveto
+ 59 104 36 170 36 254 curveto
+ 36 342 59 409 104 458 curveto
+ 148 506 207 530 278 530 curveto
+ 348 530 404 506 448 459 curveto
+ 492 412 514 346 514 260 curveto
+ 514 255 514 247 514 236 curveto
+ 127 236 lineto
+ 130 180 146 136 175 105 curveto
+ 204 76 240 60 284 60 curveto
+ 316 60 343 68 366 85 curveto
+ 389 103 407 129 420 166 curveto
+ closepath
+ 132 309 moveto
+ 421 309 lineto
+ 418 352 407 385 388 407 curveto
+ 360 440 324 458 279 458 curveto
+ 239 458 206 444 178 417 curveto
+ 150 390 135 354 132 309 curveto
+ closepath
+ fill
+ } bind def
+ /glyph10 {
+ 556 0 32 -210 489 530 setcachedevice
+ 49 -42 moveto
+ 135 -55 lineto
+ 138 -81 148 -101 165 -113 curveto
+ 187 -129 216 -137 254 -137 curveto
+ 294 -137 326 -129 348 -112 curveto
+ 370 -96 385 -74 393 -44 curveto
+ 397 -26 400 10 399 67 curveto
+ 361 22 313 0 256 0 curveto
+ 185 0 130 25 90 77 curveto
+ 52 128 32 190 32 262 curveto
+ 32 311 41 357 59 399 curveto
+ 77 440 103 473 137 496 curveto
+ 170 519 210 530 256 530 curveto
+ 317 530 368 505 408 456 curveto
+ 408 518 lineto
+ 489 518 lineto
+ 489 70 lineto
+ 489 -10 481 -67 464 -101 curveto
+ 448 -134 422 -161 386 -180 curveto
+ 351 -200 307 -210 254 -210 curveto
+ 193 -210 143 -196 104 -168 curveto
+ 67 -140 48 -99 49 -42 curveto
+ closepath
+ 122 268 moveto
+ 122 200 136 151 163 119 curveto
+ 189 88 224 72 264 72 curveto
+ 305 72 338 88 366 119 curveto
+ 393 150 407 199 407 265 curveto
+ 407 329 393 376 365 409 curveto
+ 337 441 303 457 263 457 curveto
+ 224 457 191 441 163 410 curveto
+ 136 378 122 331 122 268 curveto
+ closepath
+ fill
+ } bind def
+ /glyph11 {
+ 556 0 65 0 488 715 setcachedevice
+ 65 0 moveto
+ 65 715 lineto
+ 153 715 lineto
+ 153 458 lineto
+ 194 506 246 530 309 530 curveto
+ 347 530 380 522 409 507 curveto
+ 437 492 458 471 470 444 curveto
+ 482 418 488 379 488 328 curveto
+ 488 0 lineto
+ 400 0 lineto
+ 400 328 lineto
+ 400 372 391 404 372 424 curveto
+ 353 444 326 454 291 454 curveto
+ 265 454 240 448 217 434 curveto
+ 194 421 178 402 168 379 curveto
+ 159 356 153 324 153 283 curveto
+ 153 0 lineto
+ 65 0 lineto
+ closepath
+ fill
+ } bind def
+ /glyph12 {
+ 277 0 17 -6 270 699 setcachedevice
+ 257 78 moveto
+ 270 0 lineto
+ 246 -3 224 -6 204 -6 curveto
+ 172 -6 147 -1 129 8 curveto
+ 112 18 100 31 92 48 curveto
+ 85 64 82 99 82 151 curveto
+ 82 450 lineto
+ 17 450 lineto
+ 17 518 lineto
+ 82 518 lineto
+ 82 646 lineto
+ 169 699 lineto
+ 169 518 lineto
+ 257 518 lineto
+ 257 450 lineto
+ 169 450 lineto
+ 169 146 lineto
+ 169 122 170 105 174 98 curveto
+ 177 91 182 85 189 81 curveto
+ 196 77 206 75 219 75 curveto
+ 229 75 241 76 257 78 curveto
+ closepath
+ fill
+ } bind def
+ end
+/BuildGlyph {
+ exch /CharProcs get exch
+ 2 copy known not
+ {pop /.notdef} if
+ get exec
+} bind def
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+} bind def
+currentdict end
+(ArialMTFID10HGSet1) cvn exch definefont pop
+%%EndResource
+%%DocumentSuppliedResources: font ArialMTFID10HGSet1
+[{
+%%BeginFeature: *PageSize A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+} stopped cleartomark
+%%EndSetup
+%%Page: 1 1
+%%PageOrientation: Portrait
+%%PageBoundingBox: 18 18 577 824
+%%BeginPageSetup
+%
+%%EndPageSetup
+gsave
+[0.24 0 0 -0.24 18 824] concat
+gsave
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+1174 280 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<536865657431>
+[28 23 23 23 12 0]
+xshow
+grestore
+gsave
+readpath
+V00EC00ECA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+1174 3256 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<5061676520>
+[28 23 23 23 0]
+xshow
+1283 3256 moveto
+<31>
+show
+grestore
+gsave
+readpath
+V00EC0C8CA003CE07D900A00BC~
+closepath clip newpath
+grestore
+gsave
+568 782 moveto
+0 0 0 setrgbcolor
+(ArialMTFID10HGSet1) cvn findfont 367 -367 matrix scale makefont setfont
+<30>
+show
+781 782 moveto
+<3A>
+show
+1050 782 moveto
+<3030>
+[204 0]
+xshow
+1466 782 moveto
+<3A>
+show
+1735 782 moveto
+<3133>
+[204 0]
+xshow
+grestore grestore
+showpage
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 0 0 595 842
+%%Orientation: Portrait
+%%Pages: 1
+%%EOF
diff --git a/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf b/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..cf48e3d3df14
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/unxlngi/singletest/eis-test.odt.ps b/testgraphical/references/unxlngi/singletest/eis-test.odt.ps
new file mode 100644
index 000000000000..456905de90b2
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/eis-test.odt.ps
@@ -0,0 +1,565 @@
+%!PS-Adobe-3.0
+%%BoundingBox: (atend)
+%%Creator: (StarOffice 9)
+%%For: (ll93751)
+%%CreationDate: (Fri Mar 5 11:50:06 2010)
+%%Title: (eis-test)
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%Orientation: (atend)
+%%PageOrder: Ascend
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset PSPrint-Prolog 1.0 0
+/ISO1252Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G
+/H /I /J /K /L /M /N /O
+/P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g
+/h /i /j /k /l /m /n /o
+/p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /unused
+/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
+/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
+/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+
+/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
+{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
+currentdict end exch pop definefont pop } def
+
+/pathdict dup 8 dict def load begin
+/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
+{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
+add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
+eq 3 1 roll exch } def
+/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
+get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
+-1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
+for 256 div exch pop exch { neg } if } def
+/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
+1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
+/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
+
+systemdict /languagelevel known not {
+/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
+exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
+roll show moveto 0 rmoveto } for pop pop } def
+/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
+rlineto closepath } def
+/rectfill { rectangle fill } def
+/rectstroke { rectangle stroke } def } if
+/bshow { currentlinewidth 3 1 roll currentpoint 3 index show moveto
+setlinewidth false charpath stroke setlinewidth } def
+/bxshow { currentlinewidth 4 1 roll setlinewidth exch dup length 1 sub
+0 1 3 -1 roll { 1 string 2 index 2 index get 1 index exch 0 exch put dup
+currentpoint 3 -1 roll show moveto currentpoint 3 -1 roll false charpath
+stroke moveto 2 index exch get 0 rmoveto } for pop pop setlinewidth } def
+
+/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
+/psp_ascii85filter { currentfile /ASCII85Decode filter } def
+/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
+/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
+/psp_imagedict {
+/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
+/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
+def 7 dict dup
+/ImageType 1 put dup
+/Width 7 -1 roll put dup
+/Height 5 index put dup
+/BitsPerComponent 4 index psp_bitspercomponent put dup
+/Decode 5 -1 roll psp_decodearray put dup
+/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
+/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
+} def
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%
+%%BeginResource: font TimesNewRomanPSMTFID26HGSet1
+%!PS-AdobeFont-1.0-2.53740
+% Creator: SunTypeTools-TT 1.0 gelf
+% Original font name: TimesNewRomanPSMT
+30 dict begin
+/PaintType 0 def
+/FontType 3 def
+/StrokeWidth 0 def
+/FontName (TimesNewRomanPSMTFID26HGSet1) cvn def
+/XUID [103 0 0 16#2F10B8E9 9 16#7048BAB3 16#9CA4D966] def
+/FontMatrix [.001 0 0 .001 0 0] def
+/FontBBox [-568 -306 2028 1006] def
+/Encoding 256 array def
+ 0 1 255 {Encoding exch /.notdef put} for
+ Encoding 0 /glyph0 put
+ Encoding 45 /glyph1 put
+ Encoding 69 /glyph2 put
+ Encoding 73 /glyph3 put
+ Encoding 83 /glyph4 put
+ Encoding 84 /glyph5 put
+ Encoding 101 /glyph6 put
+ Encoding 115 /glyph7 put
+ Encoding 116 /glyph8 put
+/CharProcs 10 dict def
+ CharProcs begin
+ /.notdef {} def
+ /glyph0 {
+ 777 0 125 0 625 625 setcachedevice
+ 125 0 moveto
+ 125 625 lineto
+ 625 625 lineto
+ 625 0 lineto
+ 125 0 lineto
+ closepath
+ 140 15 moveto
+ 609 15 lineto
+ 609 609 lineto
+ 140 609 lineto
+ 140 15 lineto
+ closepath
+ fill
+ } bind def
+ /glyph1 {
+ 333 0 40 187 292 261 setcachedevice
+ 40 261 moveto
+ 292 261 lineto
+ 292 187 lineto
+ 40 187 lineto
+ 40 261 lineto
+ closepath
+ fill
+ } bind def
+ /glyph2 {
+ 610 0 20 0 587 662 setcachedevice
+ 208 625 moveto
+ 208 364 lineto
+ 354 364 lineto
+ 392 364 417 370 430 381 curveto
+ 447 396 456 422 458 460 curveto
+ 476 460 lineto
+ 476 229 lineto
+ 458 229 lineto
+ 454 262 449 282 444 291 curveto
+ 439 303 429 312 416 318 curveto
+ 402 325 382 328 354 328 curveto
+ 208 328 lineto
+ 208 110 lineto
+ 208 81 210 63 212 57 curveto
+ 215 50 220 45 226 41 curveto
+ 232 38 245 36 263 36 curveto
+ 375 36 lineto
+ 413 36 440 38 457 43 curveto
+ 474 49 490 59 506 74 curveto
+ 526 94 547 125 568 166 curveto
+ 587 166 lineto
+ 530 0 lineto
+ 20 0 lineto
+ 20 18 lineto
+ 43 18 lineto
+ 59 18 74 21 88 29 curveto
+ 98 34 105 42 109 52 curveto
+ 113 62 115 84 115 116 curveto
+ 115 546 lineto
+ 115 588 111 614 102 624 curveto
+ 91 637 71 644 43 644 curveto
+ 20 644 lineto
+ 20 662 lineto
+ 530 662 lineto
+ 538 517 lineto
+ 519 517 lineto
+ 512 551 504 575 496 588 curveto
+ 488 602 476 611 459 618 curveto
+ 446 623 423 625 390 625 curveto
+ 208 625 lineto
+ closepath
+ fill
+ } bind def
+ /glyph3 {
+ 333 0 24 0 308 662 setcachedevice
+ 308 18 moveto
+ 308 0 lineto
+ 24 0 lineto
+ 24 18 lineto
+ 48 18 lineto
+ 75 18 95 25 107 41 curveto
+ 115 52 119 77 119 117 curveto
+ 119 544 lineto
+ 119 578 117 600 113 611 curveto
+ 110 619 103 626 93 632 curveto
+ 79 640 64 644 48 644 curveto
+ 24 644 lineto
+ 24 662 lineto
+ 308 662 lineto
+ 308 644 lineto
+ 284 644 lineto
+ 257 644 238 636 225 620 curveto
+ 217 609 213 584 213 544 curveto
+ 213 117 lineto
+ 213 83 215 62 219 50 curveto
+ 223 42 229 36 240 29 curveto
+ 254 22 269 18 284 18 curveto
+ 308 18 lineto
+ closepath
+ fill
+ } bind def
+ /glyph4 {
+ 556 0 62 -15 502 677 setcachedevice
+ 458 677 moveto
+ 458 448 lineto
+ 440 448 lineto
+ 435 492 424 527 409 553 curveto
+ 394 579 372 600 344 615 curveto
+ 316 630 287 638 257 638 curveto
+ 223 638 195 628 173 607 curveto
+ 151 586 140 563 140 536 curveto
+ 140 516 146 498 161 481 curveto
+ 181 457 229 424 305 383 curveto
+ 367 351 409 325 432 307 curveto
+ 454 290 472 269 484 244 curveto
+ 496 220 502 195 502 168 curveto
+ 502 119 483 76 444 39 curveto
+ 405 3 355 -15 293 -15 curveto
+ 274 -15 256 -13 239 -10 curveto
+ 229 -9 208 -2 177 7 curveto
+ 145 17 125 22 116 22 curveto
+ 108 22 102 20 97 15 curveto
+ 93 10 89 0 86 -15 curveto
+ 68 -15 lineto
+ 68 211 lineto
+ 86 211 lineto
+ 95 164 106 129 121 105 curveto
+ 135 82 157 62 187 46 curveto
+ 216 31 248 22 283 22 curveto
+ 324 22 356 33 380 55 curveto
+ 403 76 415 102 415 131 curveto
+ 415 147 411 164 402 180 curveto
+ 393 197 379 212 360 227 curveto
+ 348 236 313 257 256 289 curveto
+ 200 321 159 346 135 365 curveto
+ 111 384 93 404 81 427 curveto
+ 68 450 62 475 62 502 curveto
+ 62 550 80 591 117 625 curveto
+ 153 660 200 677 256 677 curveto
+ 291 677 328 668 368 651 curveto
+ 386 643 399 639 406 639 curveto
+ 415 639 422 641 427 646 curveto
+ 433 651 437 662 440 677 curveto
+ 458 677 lineto
+ closepath
+ fill
+ } bind def
+ /glyph5 {
+ 610 0 30 0 585 662 setcachedevice
+ 578 662 moveto
+ 585 506 lineto
+ 567 506 lineto
+ 563 534 559 553 552 565 curveto
+ 542 584 529 598 512 607 curveto
+ 496 616 474 620 446 620 curveto
+ 353 620 lineto
+ 353 114 lineto
+ 353 74 357 48 366 38 curveto
+ 378 25 397 18 423 18 curveto
+ 446 18 lineto
+ 446 0 lineto
+ 165 0 lineto
+ 165 18 lineto
+ 188 18 lineto
+ 216 18 236 26 248 43 curveto
+ 255 53 259 77 259 114 curveto
+ 259 620 lineto
+ 179 620 lineto
+ 148 620 126 618 113 613 curveto
+ 97 607 82 596 70 578 curveto
+ 58 561 51 537 48 506 curveto
+ 30 506 lineto
+ 38 662 lineto
+ 578 662 lineto
+ closepath
+ fill
+ } bind def
+ /glyph6 {
+ 443 0 37 -13 415 460 setcachedevice
+ 106 278 moveto
+ 106 212 122 160 154 122 curveto
+ 187 84 225 65 269 65 curveto
+ 298 65 324 74 346 90 curveto
+ 367 106 385 133 400 172 curveto
+ 415 163 lineto
+ 409 118 389 78 355 41 curveto
+ 323 4 282 -13 232 -13 curveto
+ 179 -13 133 7 94 49 curveto
+ 56 90 37 146 37 217 curveto
+ 37 294 56 354 96 396 curveto
+ 135 439 184 460 243 460 curveto
+ 293 460 334 444 367 411 curveto
+ 399 378 415 334 415 278 curveto
+ 106 278 lineto
+ closepath
+ 106 307 moveto
+ 313 307 lineto
+ 312 335 308 355 303 367 curveto
+ 295 385 283 400 267 410 curveto
+ 250 420 234 426 216 426 curveto
+ 189 426 165 416 144 395 curveto
+ 123 374 110 344 106 307 curveto
+ closepath
+ fill
+ } bind def
+ /glyph7 {
+ 389 0 48 -13 354 460 setcachedevice
+ 320 460 moveto
+ 320 308 lineto
+ 304 308 lineto
+ 291 355 276 388 256 405 curveto
+ 237 422 212 431 182 431 curveto
+ 160 431 141 425 127 413 curveto
+ 113 401 106 388 106 373 curveto
+ 106 355 111 339 122 326 curveto
+ 132 313 152 299 183 284 curveto
+ 254 249 lineto
+ 320 217 354 175 354 122 curveto
+ 354 81 338 48 308 23 curveto
+ 277 0 243 -13 204 -13 curveto
+ 177 -13 146 -8 110 0 curveto
+ 100 4 91 5 84 5 curveto
+ 77 5 71 1 66 -6 curveto
+ 50 -6 lineto
+ 50 152 lineto
+ 66 152 lineto
+ 76 107 93 73 119 49 curveto
+ 145 26 173 15 205 15 curveto
+ 228 15 246 21 260 35 curveto
+ 274 48 281 63 281 82 curveto
+ 281 104 274 124 258 139 curveto
+ 242 154 210 173 163 197 curveto
+ 116 220 85 241 70 260 curveto
+ 56 279 48 302 48 331 curveto
+ 48 367 61 398 86 423 curveto
+ 111 448 144 460 184 460 curveto
+ 202 460 223 457 248 449 curveto
+ 265 444 276 441 281 441 curveto
+ 287 441 291 442 293 445 curveto
+ 296 447 300 452 304 460 curveto
+ 320 460 lineto
+ closepath
+ fill
+ } bind def
+ /glyph8 {
+ 277 0 9 -7 279 594 setcachedevice
+ 161 594 moveto
+ 161 447 lineto
+ 265 447 lineto
+ 265 413 lineto
+ 161 413 lineto
+ 161 123 lineto
+ 161 94 165 74 173 64 curveto
+ 182 54 192 49 205 49 curveto
+ 216 49 226 52 236 59 curveto
+ 247 65 254 75 260 88 curveto
+ 279 88 lineto
+ 268 57 251 33 230 17 curveto
+ 210 0 188 -7 166 -7 curveto
+ 151 -7 137 -2 122 5 curveto
+ 108 13 98 25 90 41 curveto
+ 84 56 80 80 80 112 curveto
+ 80 413 lineto
+ 9 413 lineto
+ 9 429 lineto
+ 27 436 45 448 64 465 curveto
+ 83 482 100 502 114 526 curveto
+ 122 538 132 561 145 594 curveto
+ 161 594 lineto
+ closepath
+ fill
+ } bind def
+ end
+/BuildGlyph {
+ exch /CharProcs get exch
+ 2 copy known not
+ {pop /.notdef} if
+ get exec
+} bind def
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+} bind def
+currentdict end
+(TimesNewRomanPSMTFID26HGSet1) cvn exch definefont pop
+%%EndResource
+%%DocumentSuppliedResources: font TimesNewRomanPSMTFID26HGSet1
+%%EndSetup
+%%Page: 1 1
+%%PageOrientation: Portrait
+%%PageBoundingBox: 18 18 577 824
+%%BeginPageSetup
+%
+[{
+%%BeginFeature: *PageSize A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+} stopped cleartomark
+%%EndPageSetup
+gsave
+[0.24 0 0 -0.24 18 824] concat
+gsave
+1122 184 moveto
+0 0 0 setrgbcolor
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 25 -25 matrix scale makefont setfont
+<4549532D54657374>
+[15 8 14 9 15 11 10 0]
+xshow
+1114 215 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 29 -29 matrix scale makefont setfont
+<4549532D54657374>
+[17 10 16 10 18 13 11 0]
+xshow
+1107 251 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 33 -33 matrix scale makefont setfont
+<4549532D54657374>
+[20 11 19 11 20 15 13 0]
+xshow
+1100 291 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 38 -38 matrix scale makefont setfont
+<4549532D54657374>
+[23 13 20 13 22 17 15 0]
+xshow
+1092 337 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 42 -42 matrix scale makefont setfont
+<4549532D54657374>
+[26 14 23 14 25 19 16 0]
+xshow
+1088 385 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 44 -44 matrix scale makefont setfont
+<4549532D54657374>
+[27 14 24 15 27 19 17 0]
+xshow
+1085 435 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 46 -46 matrix scale makefont setfont
+<4549532D54657374>
+[28 15 26 15 28 20 18 0]
+xshow
+1077 490 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 50 -50 matrix scale makefont setfont
+<4549532D54657374>
+[30 17 28 16 31 22 19 0]
+xshow
+1070 549 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 54 -54 matrix scale makefont setfont
+<4549532D54657374>
+[33 18 30 19 33 24 21 0]
+xshow
+1063 613 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 58 -58 matrix scale makefont setfont
+<4549532D54657374>
+[35 19 33 20 35 26 23 0]
+xshow
+1055 681 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 63 -63 matrix scale makefont setfont
+<4549532D54657374>
+[37 21 35 21 38 28 24 0]
+xshow
+1048 754 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 67 -67 matrix scale makefont setfont
+<4549532D54657374>
+[41 22 37 22 41 30 26 0]
+xshow
+1033 835 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 75 -75 matrix scale makefont setfont
+<4549532D54657374>
+[46 25 42 25 46 33 29 0]
+xshow
+1018 926 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 83 -83 matrix scale makefont setfont
+<4549532D54657374>
+[51 28 46 28 51 37 32 0]
+xshow
+1003 1025 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 92 -92 matrix scale makefont setfont
+<4549532D54657374>
+[56 30 51 31 56 40 36 0]
+xshow
+1003 1127 moveto
+<4549532D54657374>
+[56 30 51 31 56 40 36 0]
+xshow
+989 1236 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 100 -100 matrix scale makefont setfont
+<4549532D54657374>
+[61 33 56 33 61 44 39 0]
+xshow
+974 1354 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 108 -108 matrix scale makefont setfont
+<4549532D54657374>
+[66 36 60 36 66 49 41 0]
+xshow
+959 1481 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 117 -117 matrix scale makefont setfont
+<4549532D54657374>
+[71 39 65 39 71 52 45 0]
+xshow
+929 1625 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 133 -133 matrix scale makefont setfont
+<4549532D54657374>
+[81 44 74 45 81 59 52 0]
+xshow
+900 1788 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 150 -150 matrix scale makefont setfont
+<4549532D54657374>
+[92 50 83 50 92 66 58 0]
+xshow
+870 1969 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 167 -167 matrix scale makefont setfont
+<4549532D54657374>
+[102 56 93 55 102 73 65 0]
+xshow
+840 2168 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 183 -183 matrix scale makefont setfont
+<4549532D54657374>
+[112 61 102 61 112 81 71 0]
+xshow
+811 2386 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 200 -200 matrix scale makefont setfont
+<4549532D54657374>
+[122 67 111 67 122 88 78 0]
+xshow
+766 2630 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 225 -225 matrix scale makefont setfont
+<4549532D54657374>
+[137 75 125 75 137 100 88 0]
+xshow
+722 2901 moveto
+(TimesNewRomanPSMTFID26HGSet1) cvn findfont 250 -250 matrix scale makefont setfont
+<4549532D54657374>
+[153 83 139 84 152 112 96 0]
+xshow
+grestore grestore
+showpage
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 0 0 595 842
+%%Orientation: Portrait
+%%Pages: 1
+%%EOF
diff --git a/testgraphical/references/unxlngi/singletest/tolerance.ini_ b/testgraphical/references/unxlngi/singletest/tolerance.ini_
new file mode 100644
index 000000000000..ba027e21452a
--- /dev/null
+++ b/testgraphical/references/unxlngi/singletest/tolerance.ini_
@@ -0,0 +1,4 @@
+# This is the tolerance we will accept if there are problems
+# [eis-test.odt.ps]
+# accept=111
+# page1=111
diff --git a/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf b/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..96c922f4aa63
--- /dev/null
+++ b/testgraphical/references/unxsoli/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf b/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf
new file mode 100644
index 000000000000..a753c03708c7
--- /dev/null
+++ b/testgraphical/references/wntmsci/demo/CurrentTime.ods.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps b/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps
new file mode 100644
index 000000000000..36b469ce81a3
--- /dev/null
+++ b/testgraphical/references/wntmsci/demo/CurrentTime.ods.ps
@@ -0,0 +1,499 @@
+%!PS-Adobe-3.0
+%%Title: CurrentTime
+%%Creator: PScript5.dll Version 5.2.2
+%%CreationDate: 5/17/2010 15:0:3
+%%For: ll93751
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%Orientation: Portrait
+%%PageOrder: Special
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentData: Clean7Bit
+%%TargetDevice: (Generic Printer For MSWord Testing) (1) 1
+%%LanguageLevel: 2
+%%EndComments
+
+%%BeginDefaults
+%%PageBoundingBox: 18 18 577 824
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+
+
+%%BeginProlog
+%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
+/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
+setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
+ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
+def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
+rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
+/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
+typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
+def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
+exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
+/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
+{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
+readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
+(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
+/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
+tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
+xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
+tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
+{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
+tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
+rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
+forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
+/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
+$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
+ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
+lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
+/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
+(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
+$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
+repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
+=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
+end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
+where{pop/setpacking where{pop oldpack setpacking}if}if
+%%EndResource
+userdict /Pscript_WinNT_Incr 230 dict dup begin put
+%%BeginResource: file Pscript_FatalError 5.0 0
+userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
+length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
+{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
+/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
+cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
+%%EndResource
+userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
+(Dieser Druckauftrag erfordert mehr Speicher, als auf diesem Drucker vorhanden ist. )
+100 500
+(Versuchen Sie es mit einer oder mehreren der folgenden Methoden und drucken Sie dann erneut:)
+100 485(Wählen Sie für das Ausgabeformat die Option "Optimale Portierung".)115
+470
+(Stellen Sie sicher, daß auf der Registerkarte "Geräteeinstellungen" die Angabe für "Verfügbarer Postscript-Speicher" korrekt ist.)
+115 455(Reduzieren Sie die Anzahl der im Dokument verwendeten Schriftarten. )
+115 440(Drucken Sie das Dokument in verschiedenen Teilstücken. )115 425 12
+/Times-Roman showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}
+if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg
+get def}ifelse
+105000 VM?
+%%BeginResource: file Pscript_Win_Basic 5.0 0
+/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
+/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
+/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
+d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
+/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
+/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
+/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
+, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
+languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
+d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
+/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
+currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
+counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
+/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
+d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
+/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
+{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
+/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
+{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
+{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
+itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
+ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
+nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
+neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
+- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
+2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
+{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
+/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
+{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
+dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
+E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
+^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
+16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
+bind d
+%%EndResource
+%%BeginResource: file Pscript_Win_Utils_L2 5.0 0
+/rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge
+{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
+snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F
+setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d
+/colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b
+/resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}?
+not{/ColorRendering<</GetHalftoneName{currenthalftone @/HalftoneName known{
+/HalftoneName get}{!/none}?}bn/GetPageDeviceName{currentpagedevice @
+/PageDeviceName known{/PageDeviceName get @ null eq{!/none}if}{!/none}?}bn
+/GetSubstituteCRD{!/DefaultColorRendering/ColorRendering resourcestatus{! !
+/DefaultColorRendering}{(DefaultColorRendering*){cvn exit}127 string
+/ColorRendering resourceforall}?}bn>>/defineresource where{!/ProcSet
+defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource `
+mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)
+GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5
+-1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub
+getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~
+/ColorRendering defineresource !}b/findcolorrendering where{!}{
+/findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{
+/ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}?
+/selectcolorrendering{findcolorrendering !/ColorRendering findresource
+setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get
+`}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d
+/G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{
+/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
+/AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d
+E}bind d
+%%EndResource
+end
+%%EndProlog
+
+%%BeginSetup
+statusdict begin (%%[ ProductName: ) print product print ( ]%%)= flush end
+[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
+featurebegin{
+%%BeginNonPPDFeature: JobTimeout 0
+0 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout 4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginNonPPDFeature: WaitTimeout 300
+300 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginFeature: *InputSlot ManualFeed
+
+<< /ManualFeed true /Policies << /ManualFeed 1 >> >> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Duplex None
+
+<</Duplex false /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *PageRegion A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Resolution 1200x1200dpi
+
+ 1 dict dup /HWResolution [1200 1200] put setpagedevice
+%%EndFeature
+}featurecleanup
+1 setlinecap 1 setlinejoin
+/mysetup [ 72 1200 V 0 0 -72 1200 V 18 824.0003 ] def
+%%EndSetup
+
+userdict begin /ehsave save def end
+%%Page: 1 1
+%%PageBoundingBox: 18 18 577 824
+%%EndPageComments
+%%BeginPageSetup
+/DeviceRGB dup setcolorspace /colspABC exch def
+mysetup concat colspRefresh
+%%EndPageSetup
+
+0 0 0 1 scol 22500 VM?
+11 dict begin
+/FontName /TTEC2o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1ae15c03974a1a9b3c172d5d01da698bb3e9bd8fb187
+15ad84bc85cd145093e29e1b226d167407e1f00a6529c34100fe35097c0d
+b5af1eda9d93c4fbe9bd86433be0237415462af5d09911e8c9f42535e5d2
+2dd429d16a06629077406afc7b7c534dc9e9e045cc02be968fa94e480676
+cb53f625f5f575a27ab6d08d5c839bcfee5628e5ccd4d4605b7fec3a76bb
+28738163f3b82fd887dfecdc22fecb045a567be6d3b5a147b633e25bed18
+40c3e8e2f2258801243cf18236f06a8992b5a43fdca766d185ec61f2b174
+d769605817b24a47643e089d8814e415ab639130ea66e36890bd761d0a8f
+5d374c4904ff82dfe0f21c18dee922bc8376caeba56e25b6c9ddbd670491
+72036f023f43bf7830df38d0c36ef5d7184a77d3822cb988db6213ddd19d
+879129e1b8f3a8dafd1d138bec6d1ded9fbbb5b4294072df1f12a135929c
+9a45aea5ebc051f8d6514ccf32b2acbd84dfcbcce5469c945c93be1929e7
+f9fca6965e31a4328311b483ac44acb3daed602b089ab4fe0f74705bb07b
+21067988ba7246b0dd96c23046cbbc2414fdb62ca2e102c041d24e977418
+1bd25e1bd6f500cad2b24572a49f549bf2e59a693759d0acb7c42c2caaa6
+f940204c5d06b53cc4847dac692da2e938bf86283692a51a631279087ecd
+19b56062b53f44ca8d3025a1c25c7aed9b406e9d9fed5a13ff540359abc6
+0a0a444273d3bf793cb00c3158c1050a0a026d200bf4d34f0237233c5b80
+ee79e7cad72f335228314e3461cd05ef2f3826bc1c5c43a92b0551e00b19
+ebeea73ef66820f36ee61ad9be6012c65138a13ef4cd7745cb966af72d76
+d42781dc5aaf5f69753ae6bd324bf42ec9cee010ff5f487dfaf1eea51f2f
+43488c9a9115ceda9b959465b3ae6f1e94ede9ce7867344484db692e5423
+962fa13ffb0073691e3a193f217e588ec12fcad5e3c7a2da41073813b4e4
+99a784d26534294d71d117a87c98a814df39bf6fc01fac1bf8f73960775b
+0a4ed51d90d942c14585b424223f30c4f93ee07bd3c05dd7f36271b10cc0
+914af6e94e4451befc31d1557802dad903b71eb5189c18fadd8ba9ce4ff0
+c2d750518bfca7c652b5c5d314a35fefb8e62e62632d0168c97718779689
+97abcc8e922914102cc46e07874511d23c143f7c2440a81b012532995272
+f01ae7b4d8f66ffac047ba7ddcf4b156ce29e19491ceb0af30494c5755e6
+16eb123ec1f237fa5d36c4a03de9e90000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTEC2o00 findfont /Encoding get
+dup 1 /S put
+dup 2 /h put
+dup 3 /e put
+dup 4 /t put
+dup 5 /one put
+pop
+Pscript_WinNT_Incr begin
+%%BeginResource: file Pscript_Text 5.0 0
+/TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d
+/fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^
+length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets
+{{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{&
+/CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get}
+if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{
+{ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
+StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $
+! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy
+put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM
+makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0
+Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N
+/uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT
+{xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d
+/AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict `
+/WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d
+/OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont
+Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1
+add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E
+/CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $
+FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255
+idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector
+Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding
+length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2
+add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs
+putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^
+256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E
+/FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~
+definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix
+makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ !
+findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2?
+{Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName
+get undefinefont}forall undefinefont}b
+%%EndResource
+end reinitialize
+F /F0 0 /0 F /TTEC2o00 mF
+/F0SA7 F0 [167 0 0 -167 0 0 ] mFS
+F0SA7 Ji
+4696 1120 M <010203030405>[111 93 93 93 46 0]xS
+3600 VM?
+
+currentfile eexec
+9e67edc6b841305d5d10e5a53359c38b0291a4f57acae0c56237cee47bc1
+d85570b1414b43fc17ea6b4843d55ac9afa7067f1a7091b4594d913de276
+a8772313a65fcd26ba87b9a05d166b03e17f03277dd8efccb02a7d4c1be6
+177e723f7aa9e190ce43dd1df2bf2988559fa94bfa641911cece0e747ceb
+9b660904152a628a244fd923b311f5c4a5fe7c546e8d37afebee19511e85
+7ff39e7ff6c4792d53badbc7a555b283f38f31e279752d4342dd5f00e99d
+ba2152623e1e346ef7276b3265bc6cc3a37e315df96fd5d085e519b5cf03
+fb27cf9385ba7058ff6c83c880bff9c4fbd2947bdc5c671ae82a44177042
+f439578104f7c75f2ba09f3a578b522774bde2cbc6643d623a5e689df5bd
+359ed5f335c5b979036b99e788351b92cb83205fff7dfc1b4880b7c6f468
+edd5346a15139d558c3bc6afd4767b4d9529a0b1aa4767bc65f3a158d720
+6b2b276cc6eb3b50ea5319f6a5b9f96114b77ee5ff8b0d84786036821196
+10d2ea5e2af2f62d8e94dfa5e9d87f303e6969e9121676a20da78c247202
+97cf246bcdca069951c2ca4294017dbf317ba60a54367a75dcb0c005394f
+2e21d22fc8f1ca437c52566a26569f6f218d87831bbb59f9d7ce80d28c89
+c77c8ae2b608c786ebca7c5c5a7b7ded13c1007bc6484e8151dc558cb6f0
+6056b74666e6cdb8c0ccdc65044d55b68497ebec08ea9f2c661760595438
+8dfea6f0743c11811fd26f2837f954ef0a99db60eb9c3e1b523e0762deec
+c717a44bfc75d4b55b7b8719218283ecd5e23ccbcc9bc1893cd9dda88922
+be1f24e77c46fbafd369868830f7ac384a338b2dde52ac79f83047febbb7
+a1adfd3f3ea13de8dbb63607beec48b0b5957be43431e98c34591c3ce646
+5c30ed78f1a8d521a4349671263c640e277d310adf33cae19cfdc350adff
+14c02e0b73c1a80c0b97e5974cd751a144d34ca579b5cb81d8e0f230dbb8
+2d306f969dbd71108cc52e7338359ca95bc1873c1c91be7b51240fc14001
+98c8f64796e991eea99e27eba7bdac1f2296da2c6db2cdbcc4d7538af40d
+5cd881a349dbc71725ab9bf815736c339b0f5aec8f6c4ca0438ecca51f39
+130895a4e7fd438813034129b8a838589b370000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTEC2o00 findfont /Encoding get
+dup 6 /P put
+dup 7 /a put
+dup 8 /g put
+dup 9 /space put
+pop
+4696 13024 M <0607080309>[111 93 93 93 0]xS
+5132 13024 M <05>S
+19800 VM?
+11 dict begin
+/FontName /TTBC013398o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1add2c77631f898ffcae76502bbe5e22d7ef71c602e1
+9e22c890817f47e70d08803467d31dd4454c7e898bf1e600f73ba7788118
+7a31575a7bde4b80b1052323a8cd8606039f631424bead9a04865f2b6ccd
+563650769cf3b9f4ec66fa0b354b1389beaff83c6934509010d5c85f025f
+31060982b13953fa166bd5a265f4594dd80728aad8dbc710567ddbed093f
+27b08481959f39d5ea87844272e351c3b107807046866c6efdb34ab1a02a
+4560b58fd36e23b92ffe3af9cc87a0bcbebea7877536640c59261a3a850a
+0941a1da1349cafaf520ac0b488e6dd848ded092875c1ddfbb53986369d2
+ea38f05fc71a0f819904a116f9de8d4281e77df87763452fd42258656862
+4ee87f6acc7b7e1de1128cffce1168ba4f0f231290002f98b6bd2bc60a37
+f305d9515113ceba5d077871c967bffa3d810d8b4355895fdb320c155536
+880c517ea5384f01027eae42fb1a1cf3b4105a4bd7287b950000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 1 /one put
+dup 2 /five put
+pop
+F /F1 0 /0 F /TTBC013398o00 mF
+/F1S5BA F1 [1466 0 0 -1466 0 0 ] mFS
+F1S5BA Ji
+1459 3161 M <0102>[815 0]xS
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58aba309a5f2e2cec5372d5eb49ba5adffe6ec0d
+ed20ee879de2476ee6f4099e560589a666b9194b6bf7f0128e1a3afd80ec
+9f40a396884744c1962e90eba74a9cd4a32f9fdd0782f0c6b6d12f732bee
+20b6ac0c3bfba90b08742c53ddc1970000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 3 /colon put
+pop
+3123 3161 M <03>S
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58abba975b6391782ae96f027086c2b7fc4d3f90
+351b67f8a2fc2116477655cf0dff5a6bf15f1a3d629270d6af26f69b32a3
+312831823f86f43a0ab84649de6044d445b8ed1fbd9a8f026fbac386a0e1
+c5428153a9d4e786021ed524ba1216a3b8ab60edfbf05959d5558b762ca6
+ffa65d882d930f795bc1903885698b5558100097185b7cacdbe4413bc735
+faa8d6a05f03b5bcb23f73372cbb5f7cd01ce3e3bb2e524201be263c6e0c
+f04205a026405c90467d80e06d42e97c1af53a494a1c86c7a93c034ec9a1
+58c34d868fc499aa20961ab79c8fd94237c294a6d7569b8cddbab704dca3
+ab7466244b990000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 4 /zero put
+pop
+4201 3161 M <0404>[815 0]xS
+5865 3161 M <03>S
+900 VM?
+
+currentfile eexec
+9e67edc6b841305af19a6e4bb2a230e3e9efc9b96f464cd2cec0584bfa5d
+e6b6c8bf4fb2bca3ff5c4ffdcb930b9549cfaa6d954b63169b356002d4a2
+065b3dad6c77543f2f4c58abb474233ea80ce809e35265271e29a645609a
+f19523b459da829c3beb337f4e916de7baa7dd40e381e60e1d68dd6dc672
+318ee6d51a4977d970db3ae073fa94a7f5afcd21e06e8476d782a2865dd3
+2a9c235bd5f3c5f1f327252a54d27bae21d8962686e2aa6912c72c946bed
+83223cfc201da7c3f18870a82efce4ad7f1c996c4d99903969225ed21444
+37bc8415a6f4b6d44e30c3d0e47b6d6945d1536311137281dee93fc9a238
+a6036c912e79e0ebe6ecb3d20cd3093cccd00d504fa49f3c0efe04da2103
+3e167528183bdb7896175c77778fde8f0d0b65cb28281e8869747cde7f28
+94c91c302ba109d3ae45ff70f1999a40d8e9a33bd9ce6b8b22961db9c435
+a39d612dba6c4fcc51231f651c91bd0b0724b13d8d8e0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC013398o00 findfont /Encoding get
+dup 5 /three put
+pop
+6943 3161 M <0405>[815 0]xS
+LH
+(%%[Page: 1]%%) =
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 18 18 577 824
+%%DocumentNeededResources:
+%%DocumentSuppliedResources:
+%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
+%%+ procset Pscript_FatalError 5.0 0
+%%+ procset Pscript_Win_Basic 5.0 0
+%%+ procset Pscript_Win_Utils_L2 5.0 0
+%%+ procset Pscript_Text 5.0 0
+Pscript_WinNT_Incr dup /terminate get exec
+ehsave restore
+%%Pages: 1
+(%%[LastPage]%%) =
+%%EOF
+ \ No newline at end of file
diff --git a/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf b/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf
new file mode 100644
index 000000000000..0654d52c11a8
--- /dev/null
+++ b/testgraphical/references/wntmsci/singletest/eis-test.odt.pdf
Binary files differ
diff --git a/testgraphical/references/wntmsci/singletest/eis-test.odt.ps b/testgraphical/references/wntmsci/singletest/eis-test.odt.ps
new file mode 100644
index 000000000000..968c7b3cbd44
--- /dev/null
+++ b/testgraphical/references/wntmsci/singletest/eis-test.odt.ps
@@ -0,0 +1,1984 @@
+%!PS-Adobe-3.0
+%%Title: eis-test
+%%Creator: PScript5.dll Version 5.2.2
+%%CreationDate: 5/17/2010 13:9:19
+%%For: ll93751
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%Orientation: Portrait
+%%PageOrder: Special
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentData: Clean7Bit
+%%TargetDevice: (Generic Printer For MSWord Testing) (1) 1
+%%LanguageLevel: 2
+%%EndComments
+
+%%BeginDefaults
+%%PageBoundingBox: 18 18 577 824
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+
+
+%%BeginProlog
+%%BeginResource: file Pscript_WinNT_ErrorHandler 5.0 0
+/currentpacking where{pop/oldpack currentpacking def/setpacking where{pop false
+setpacking}if}if/$brkpage 64 dict def $brkpage begin/prnt{dup type/stringtype
+ne{=string cvs}if dup length 6 mul/tx exch def/ty 10 def currentpoint/toy exch
+def/tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0
+rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show}bind def
+/nl{currentpoint exch pop lmargin exch moveto 0 -10 rmoveto}def/=={/cp 0 def
+typeprint nl}def/typeprint{dup type exec}readonly def/lmargin 72 def/rmargin 72
+def/tprint{dup length cp add rmargin gt{nl/cp 0 def}if dup length cp add/cp
+exch def prnt}readonly def/cvsprint{=string cvs tprint( )tprint}readonly def
+/integertype{cvsprint}readonly def/realtype{cvsprint}readonly def/booleantype
+{cvsprint}readonly def/operatortype{(--)tprint =string cvs tprint(-- )tprint}
+readonly def/marktype{pop(-mark- )tprint}readonly def/dicttype{pop
+(-dictionary- )tprint}readonly def/nulltype{pop(-null- )tprint}readonly def
+/filetype{pop(-filestream- )tprint}readonly def/savetype{pop(-savelevel- )
+tprint}readonly def/fonttype{pop(-fontid- )tprint}readonly def/nametype{dup
+xcheck not{(/)tprint}if cvsprint}readonly def/stringtype{dup rcheck{(\()tprint
+tprint(\))tprint}{pop(-string- )tprint}ifelse}readonly def/arraytype{dup rcheck
+{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}forall(])
+tprint}ifelse}{pop(-array- )tprint}ifelse}readonly def/packedarraytype{dup
+rcheck{dup xcheck{({)tprint{typeprint}forall(})tprint}{([)tprint{typeprint}
+forall(])tprint}ifelse}{pop(-packedarray- )tprint}ifelse}readonly def/courier
+/Courier findfont 10 scalefont def end errordict/handleerror{systemdict begin
+$error begin $brkpage begin newerror{/newerror false store vmstatus pop pop 0
+ne{grestoreall}if errorname(VMerror)ne{showpage}if initgraphics courier setfont
+lmargin 720 moveto errorname(VMerror)eq{userdict/ehsave known{clear userdict
+/ehsave get restore 2 vmreclaim}if vmstatus exch pop exch pop PrtVMMsg}{
+(ERROR: )prnt errorname prnt nl(OFFENDING COMMAND: )prnt/command load prnt
+$error/ostack known{nl nl(STACK:)prnt nl nl $error/ostack get aload length{==}
+repeat}if}ifelse systemdict/showpage get exec(%%[ Error: )print errorname
+=print(; OffendingCommand: )print/command load =print( ]%%)= flush}if end end
+end}dup 0 systemdict put dup 4 $brkpage put bind readonly put/currentpacking
+where{pop/setpacking where{pop oldpack setpacking}if}if
+%%EndResource
+userdict /Pscript_WinNT_Incr 230 dict dup begin put
+%%BeginResource: file Pscript_FatalError 5.0 0
+userdict begin/FatalErrorIf{{initgraphics findfont 1 index 0 eq{exch pop}{dup
+length dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding
+{ISOLatin1Encoding}stopped{StandardEncoding}if def currentdict end
+/ErrFont-Latin1 exch definefont}ifelse exch scalefont setfont counttomark 3 div
+cvi{moveto show}repeat showpage quit}{cleartomark}ifelse}bind def end
+%%EndResource
+userdict begin/PrtVMMsg{vmstatus exch sub exch pop gt{[
+(Dieser Druckauftrag erfordert mehr Speicher, als auf diesem Drucker vorhanden ist. )
+100 500
+(Versuchen Sie es mit einer oder mehreren der folgenden Methoden und drucken Sie dann erneut:)
+100 485(Wählen Sie für das Ausgabeformat die Option "Optimale Portierung".)115
+470
+(Stellen Sie sicher, daß auf der Registerkarte "Geräteeinstellungen" die Angabe für "Verfügbarer Postscript-Speicher" korrekt ist.)
+115 455(Reduzieren Sie die Anzahl der im Dokument verwendeten Schriftarten. )
+115 440(Drucken Sie das Dokument in verschiedenen Teilstücken. )115 425 12
+/Times-Roman showpage(%%[ PrinterError: Low Printer VM ]%%)= true FatalErrorIf}
+if}bind def end version cvi 2016 ge{/VM?{pop}bind def}{/VM? userdict/PrtVMMsg
+get def}ifelse
+105000 VM?
+%%BeginResource: file Pscript_Win_Basic 5.0 0
+/d/def load def/,/load load d/~/exch , d/?/ifelse , d/!/pop , d/`/begin , d/^
+/index , d/@/dup , d/+/translate , d/$/roll , d/U/userdict , d/M/moveto , d/-
+/rlineto , d/&/currentdict , d/:/gsave , d/;/grestore , d/F/false , d/T/true ,
+d/N/newpath , d/E/end , d/Ac/arc , d/An/arcn , d/A/ashow , d/D/awidthshow , d/C
+/closepath , d/V/div , d/O/eofill , d/L/fill , d/I/lineto , d/-c/curveto , d/-M
+/rmoveto , d/+S/scale , d/Ji/setfont , d/Lc/setlinecap , d/Lj/setlinejoin , d
+/Lw/setlinewidth , d/Lm/setmiterlimit , d/sd/setdash , d/S/show , d/LH/showpage
+, d/K/stroke , d/W/widthshow , d/R/rotate , d/L2? false/languagelevel where{pop
+languagelevel 2 ge{pop true}if}if d L2?{/xS/xshow , d/yS/yshow , d/zS/xyshow ,
+d}if/b{bind d}bind d/bd{bind d}bind d/xd{~ d}bd/ld{, d}bd/bn/bind ld/lw/Lw ld
+/lc/Lc ld/lj/Lj ld/sg/setgray ld/ADO_mxRot null d/self & d/OrgMx matrix
+currentmatrix d/reinitialize{: OrgMx setmatrix[/TextInit/GraphInit/UtilsInit
+counttomark{@ where{self eq}{F}?{cvx exec}{!}?}repeat cleartomark ;}b
+/initialize{`{/Pscript_Win_Data where{!}{U/Pscript_Win_Data & put}?/ADO_mxRot ~
+d/TextInitialised? F d reinitialize E}{U/Pscript_Win_Data 230 dict @ ` put
+/ADO_mxRot ~ d/TextInitialised? F d reinitialize}?}b/terminate{!{& self eq
+{exit}{E}?}loop E}b/suspend/terminate , d/resume{` Pscript_Win_Data `}b U `
+/lucas 21690 d/featurebegin{countdictstack lucas[}b/featurecleanup{stopped
+{cleartomark @ lucas eq{! exit}if}loop countdictstack ~ sub @ 0 gt{{E}repeat}
+{!}?}b E/snap{transform 0.25 sub round 0.25 add ~ 0.25 sub round 0.25 add ~
+itransform}b/dsnap{dtransform round ~ round ~ idtransform}b/nonzero_round{@ 0.5
+ge{round}{@ -0.5 lt{round}{0 ge{1}{-1}?}?}?}b/nonzero_dsnap{dtransform
+nonzero_round ~ nonzero_round ~ idtransform}b U<04>cvn{}put/rr{1 ^ 0 - 0 ~ -
+neg 0 - C}b/irp{4 -2 $ + +S fx 4 2 $ M 1 ^ 0 - 0 ~ - neg 0 -}b/rp{4 2 $ M 1 ^ 0
+- 0 ~ - neg 0 -}b/solid{[]0 sd}b/g{@ not{U/DefIf_save save put}if U/DefIf_bool
+2 ^ put}b/DefIf_El{if U/DefIf_bool get not @{U/DefIf_save get restore}if}b/e
+{DefIf_El !}b/UDF{L2?{undefinefont}{!}?}b/UDR{L2?{undefineresource}{! !}?}b
+/freeVM{/Courier findfont[40 0 0 -40 0 0]makefont Ji 2 vmreclaim}b/hfRedefFont
+{findfont @ length dict `{1 ^/FID ne{d}{! !}?}forall & E @ ` ~{/CharStrings 1
+dict `/.notdef 0 d & E d}if/Encoding 256 array 0 1 255{1 ^ ~/.notdef put}for d
+E definefont !}bind d/hfMkCIDFont{/CIDFont findresource @ length 2 add dict `{1
+^ @/FID eq ~ @/XUID eq ~/UIDBase eq or or{! !}{d}?}forall/CDevProc ~ d/Metrics2
+16 dict d/CIDFontName 1 ^ d & E 1 ^ ~/CIDFont defineresource ![~]composefont !}
+bind d
+%%EndResource
+%%BeginResource: file Pscript_Win_Utils_L2 5.0 0
+/rf/rectfill , d/fx{1 1 dtransform @ 0 ge{1 sub 0.5}{1 add -0.5}? 3 -1 $ @ 0 ge
+{1 sub 0.5}{1 add -0.5}? 3 1 $ 4 1 $ idtransform 4 -2 $ idtransform}b/BZ{4 -2 $
+snap + +S fx rf}b/rs/rectstroke , d/rc/rectclip , d/UtilsInit{currentglobal{F
+setglobal}if}b/scol{! setcolor}b/colspA/DeviceGray d/colspABC/DeviceRGB d
+/colspRefresh{colspABC setcolorspace}b/SetColSpace{colspABC setcolorspace}b
+/resourcestatus where{!/ColorRendering/ProcSet resourcestatus{! ! T}{F}?}{F}?
+not{/ColorRendering<</GetHalftoneName{currenthalftone @/HalftoneName known{
+/HalftoneName get}{!/none}?}bn/GetPageDeviceName{currentpagedevice @
+/PageDeviceName known{/PageDeviceName get @ null eq{!/none}if}{!/none}?}bn
+/GetSubstituteCRD{!/DefaultColorRendering/ColorRendering resourcestatus{! !
+/DefaultColorRendering}{(DefaultColorRendering*){cvn exit}127 string
+/ColorRendering resourceforall}?}bn>>/defineresource where{!/ProcSet
+defineresource !}{! !}?}if/buildcrdname{/ColorRendering/ProcSet findresource `
+mark GetHalftoneName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)
+GetPageDeviceName @ type @/nametype ne ~/stringtype ne and{!/none}if(.)5 ^ 0 5
+-1 1{^ length add}for string 6 1 $ 5 ^ 5{~ 1 ^ cvs length 1 ^ length 1 ^ sub
+getinterval}repeat ! cvn 3 1 $ ! ! E}b/definecolorrendering{~ buildcrdname ~
+/ColorRendering defineresource !}b/findcolorrendering where{!}{
+/findcolorrendering{buildcrdname @/ColorRendering resourcestatus{! ! T}{
+/ColorRendering/ProcSet findresource ` GetSubstituteCRD E F}?}b}?
+/selectcolorrendering{findcolorrendering !/ColorRendering findresource
+setcolorrendering}b/G2UBegin{findresource/FontInfo get/GlyphNames2Unicode get
+`}bind d/G2CCBegin{findresource/FontInfo get/GlyphNames2HostCode get `}bind d
+/G2UEnd{E}bind d/AddFontInfoBegin{/FontInfo 8 dict @ `}bind d/AddFontInfo{
+/GlyphNames2Unicode 16 dict d/GlyphNames2HostCode 16 dict d}bind d
+/AddFontInfoEnd{E d}bind d/T0AddCFFMtx2{/CIDFont findresource/Metrics2 get ` d
+E}bind d
+%%EndResource
+end
+%%EndProlog
+
+%%BeginSetup
+statusdict begin (%%[ ProductName: ) print product print ( ]%%)= flush end
+[ 1 0 0 1 0 0 ] false Pscript_WinNT_Incr dup /initialize get exec
+featurebegin{
+%%BeginNonPPDFeature: JobTimeout 0
+0 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/JobTimeout 4 -1 roll put setuserparams}{statusdict/setjobtimeout get exec}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginNonPPDFeature: WaitTimeout 300
+300 /languagelevel where{pop languagelevel}{1}ifelse 2 ge{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
+%%EndNonPPDFeature
+}featurecleanup
+
+featurebegin{
+%%BeginFeature: *InputSlot ManualFeed
+
+<< /ManualFeed true /Policies << /ManualFeed 1 >> >> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Duplex None
+
+<</Duplex false /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *PageRegion A4
+<</PageSize [595 842] /ImagingBBox null>> setpagedevice
+%%EndFeature
+}featurecleanup
+featurebegin{
+%%BeginFeature: *Resolution 1200x1200dpi
+
+ 1 dict dup /HWResolution [1200 1200] put setpagedevice
+%%EndFeature
+}featurecleanup
+1 setlinecap 1 setlinejoin
+/mysetup [ 72 1200 V 0 0 -72 1200 V 18 824.0003 ] def
+%%EndSetup
+
+userdict begin /ehsave save def end
+%%Page: 1 1
+%%PageBoundingBox: 18 18 577 824
+%%EndPageComments
+%%BeginPageSetup
+/DeviceRGB dup setcolorspace /colspABC exch def
+mysetup concat colspRefresh
+%%EndPageSetup
+
+0 0 0 1 scol 25200 VM?
+11 dict begin
+/FontName /TTA55o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066084a75e287a6b21
+7d5ead11cee92565651ea4f1d618325c70b09fa582d2eca5e5c5deea3be0
+b1103a2db20dd69d0ed4b12a762ee64108282b8d83f8d25f9b0608098b16
+460b06a011c4da3f1e637f7ceebc2c8c5e93750ddf750a5c367617f3ede0
+a6cce86a134ca76a529adbcaeb6269451c7420c09daca772307efbb571ee
+ca3a4465c4c2c3d07e2e4a4d48c613544563cea572138daa08d3f5cf8000
+48b9a9565dad61504d768972a63af0d028d75c4659f9cca991fb4b69a2bd
+6e431e8b0e6a12e9dcc103601275d759cab9eeadc4460c47826081779cba
+93705992909858e7649b160152d7bf68815571de7b523535e3f769594f22
+6903dcade6a25b8812844738e33c7cb6fcaee97f7e0d8603cd3dc3ff06a8
+773abda4287715d753d213526621e7b9bd20a1d7c760b92a1abcd504356e
+4d33dafc982a531bd06a84380c708eb3650d88f88d440ded48d8d3ce7678
+a965d8469f5931134fe32d1a371bfd25667b18e588de27003a6758c36c0e
+a3d1550756abfd014ccbd822aebd05c03521ded77a70cbc5a58c47def657
+79dab92fed044a48697ae300bc4ea5a33620bfcde234c944b214a9c2d562
+d369051015084e6cbf286344a22b3f1003133679dc6962df21405aa70d6b
+725b8f8a37436c2f12a9cf0eb097dbda2dd417b2c2e6eb0ac571bc00b5e5
+93817cce74217395cc079c8222746172fd669a96cb65e23828a2a4b1ff2c
+93428a8c2738b0c42e14b93725d2907b0352a41c50fef53b7a13daeb06b6
+d1f339ee6f2cd8c8fa1154c733b17a2f3ac716ad02da5459abfc16b83ab3
+9fc018038386e7065f68be925cebb5f86a1112a2657cd4c5a741c5e7b520
+be2a0dfcf072d331964cb6065f51531606db141ad04b59b2aea886c83024
+feccd6a378c41dc2bacf17907885e03384773ce94735dc19022f0d171df4
+4322ad309a02ddf3455ba4c822cddaa3b0b0552dbdd354bbd279223a6b54
+a55fd4b0d5570543709083a26e944bce2feb3c09d9ea02a4851b70bf4a24
+7892c3d0bb0483daae9b9a9dc5acd3955a9e213c7ca9b51bc1a3a97eae3e
+67abaf6e26d68e27bbfd9a05b30474a1ef758ed08ae5423f0e430efdf23a
+6149cf11ecd234c9d48aca961f1cdaafa375f9e488605876fc32ad44b2da
+abb0e23a05b2e35412aef4dc77dbae93b2bc47f7b284d5f3e12dbc56a1fa
+971a5c5be62ef903e4f54edd9dddea7c3908546ff5dd4bda3079624a9a22
+9cbb4c84ac0b4f68a19b24a88d2068b8074c21eb35ef43789a3588b32710
+4558187555465bfed7858029c1f7f30f942ae86dff06d1f8f2da8cf8b330
+a1260fb9bb4648d8fccfc12f295164eac890dea6d03091bd25c91db21856
+e1023ae08ea96af37790bcab40398f35122b6287f3e0ba266b563cd5e09b
+117b848b20d986fc6f08d53a5115263e91e84448ce2052e731ba5ac2274a
+3cfe116473da78d88a3980ab570e9d8afe870905da9620ef3c55b859f825
+a7239fd31d4a6a5ea67381a26e68dd48a07d7b2e9396ebd861b3f55e04a2
+b0cb2a2dc1c20e2919cd3981883acea06c47700adc875197fd05cf4dee96
+e3847d7e7cad37e3d62536f36bf7e9b39fed99c8e18564b030417d7c46d7
+73edfc7c97506df2ee5dadc76b03c19d17444c5d529641aa20fd07d50f62
+85d1ea902c58baa75ed6f2236c1904605a89c333160a190d92068c03982a
+8bfc3b3968487f940314478274337863c0e7c797435dab9758bb85240e4a
+59345b67492edfe7a3c00d6626c663bf7577f4012bcdc438fd37e32f5785
+cd124fab0681605098048f77aec3819aab4de3ba73bfea197c50c4284225
+3008b38a77151400eeeaf84ea6d1e8a26f9463baef55137b53a4460000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA55o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+Pscript_WinNT_Incr begin
+%%BeginResource: file Pscript_Text 5.0 0
+/TextInit{TextInitialised? not{/Pscript_Windows_Font & d/TextInitialised? T d
+/fM[1 0 0 1 0 0]d/mFM matrix d/iMat[1 0 0.212557 1 0 0]d}if}b/copyfont{1 ^
+length add dict `{1 ^/FID ne{d}{! !}?}forall & E}b/EncodeDict 11 dict d/bullets
+{{/bullet}repeat}b/rF{3 copyfont @ ` ~ EncodeDict ~ get/Encoding ~ 3 ^/0 eq{&
+/CharStrings known{CharStrings/Eth known not{! EncodeDict/ANSIEncodingOld get}
+if}if}if d E}b/mF{@ 7 1 $ findfont ~{@/Encoding get @ StandardEncoding eq{! T}{
+{ISOLatin1Encoding}stopped{! F}{eq}?{T}{@ ` T 32 1 127{Encoding 1 ^ get
+StandardEncoding 3 -1 $ get eq and}for E}?}?}{F}?{1 ^ ~ rF}{0 copyfont}? 6 -2 $
+! ! ~ !/pd_charset @ where{~ get 128 eq{@ FDV 2 copy get @ length array copy
+put pd_CoverFCRange}if}{!}? 2 ^ ~ definefont fM 5 4 -1 $ put fM 4 0 put fM
+makefont Pscript_Windows_Font 3 1 $ put}b/sLT{: Lw -M currentpoint snap M 0 - 0
+Lc K ;}b/xUP null d/yUP null d/uW null d/xSP null d/ySP null d/sW null d/sSU{N
+/uW ~ d/yUP ~ d/xUP ~ d}b/sU{xUP yUP uW sLT}b/sST{N/sW ~ d/ySP ~ d/xSP ~ d}b/sT
+{xSP ySP sW sLT}b/sR{: + R 0 0 M}b/sRxy{: matrix astore concat 0 0 M}b/eR/; , d
+/AddOrigFP{{&/FontInfo known{&/FontInfo get length 6 add}{6}? dict `
+/WinPitchAndFamily ~ d/WinCharSet ~ d/OrigFontType ~ d/OrigFontStyle ~ d
+/OrigFontName ~ d & E/FontInfo ~ d}{! ! ! ! !}?}b/mFS{makefont
+Pscript_Windows_Font 3 1 $ put}b/mF42D{0 copyfont `/FontName ~ d 2 copy ~ sub 1
+add dict `/.notdef 0 d 2 copy 1 ~{@ 3 ^ sub Encoding ~ get ~ d}for & E
+/CharStrings ~ d ! ! & @ E/FontName get ~ definefont}b/mF42{15 dict ` @ 4 1 $
+FontName ~ d/FontType 0 d/FMapType 2 d/FontMatrix[1 0 0 1 0 0]d 1 ^ 254 add 255
+idiv @ array/Encoding ~ d 0 1 3 -1 $ 1 sub{@ Encoding 3 1 $ put}for/FDepVector
+Encoding length array d/CharStrings 2 dict `/.notdef 0 d & E d 0 1 Encoding
+length 1 sub{@ @ 10 lt{! FontName length 1 add string}{100 lt{FontName length 2
+add string}{FontName length 3 add string}?}? @ 0 FontName @ length string cvs
+putinterval @ 3 -1 $ @ 4 1 $ 3 string cvs FontName length ~ putinterval cvn 1 ^
+256 mul @ 255 add 3 -1 $ 4 ^ findfont mF42D FDepVector 3 1 $ put}for & @ E
+/FontName get ~ definefont ! ! ! mF}b/mF_OTF_V{~ ! ~ ! 4 -1 $ ! findfont 2 ^ ~
+definefont fM @ @ 4 6 -1 $ neg put 5 0 put 90 matrix R matrix concatmatrix
+makefont Pscript_Windows_Font 3 1 $ put}b/mF_TTF_V{3{~ !}repeat 3 -1 $ !
+findfont 1 ^ ~ definefont Pscript_Windows_Font 3 1 $ put}b/UmF{L2?
+{Pscript_Windows_Font ~ undef}{!}?}b/UmF42{@ findfont/FDepVector get{/FontName
+get undefinefont}forall undefinefont}b
+%%EndResource
+end reinitialize
+F /F0 0 /0 F /TTA55o00 mF
+/F0S64 F0 [100 0 0 -100 0 0 ] mFS
+F0S64 Ji
+4483 738 M <0102030405060708>[61 30 57 35 61 44 39 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA56o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31c3571c
+8737a397efefad52089b0a63555d3209d1f3499e5f079b0179d26bd1a32a
+7bf160e83323b466debc925db378cff20fe2ba66a466a4d8e1d2a6615e05
+93a54552fe19a6e69b359af73bdf13ed8417dc9fc8dc3f18af93902e4197
+b017bff7f07009d52cf468581f6a23267d555fa25bef058e1ac4f1bf710a
+4067b25bf8ed2fd76a56a21222c35beb89a1e778c0ca1c10db6fad771b1b
+85771340b80523ff61971323b189e5cd4f8666eabccd1bd2aa658224cc84
+a8652949369fd109f7da580efd0ef48637981305ef31dd2654b818529b95
+81188e00d73117aaf12858765156a2ee8b290fc3b1ad7f8500e5fdf3a784
+bcd5a3d1d8613b692b3fc5d88ba80b961c093aca30c05de21307a42665dd
+567218faaf8e7531b8658b777053fa437955fab3db6bcc47bf877b55850b
+26ca2a1d2ae2f655f6939da944107009b124d97feab6b504be5d1d142fd6
+e7a2e0b1e5c51daf94eb93a43ce9ae7ebc4afba0c6dde00967e5ff15f6e7
+87af9d25ee37e13ab42bd3c6163335570877ec27d2e0b8a87083b7bd4e51
+f5a164659aec160554f0cf11eb2f253844b0a6adc1748c633f16f0ab1885
+3f25a36b4e80c4f742f83568920975e061327bf0a3a77e99b0bf948a068d
+18a4723ea71d7048424ac7b39260fd0717446fc6916cd997742d088d4258
+d4301cef2f3cc8c632d9c0aea984131a59c77315ff1e282c26d745f499cb
+4ad480715a91553e4dd0345774bdac173e3db6dab78f559da4b3ec76c473
+5d24af2afecb96535a5a6c956453f5ed7f00fdfff68025fd6667ffa85b3e
+fc5bafa39cfbdba93d1e9054b5581daa9d37bbfba4f602f3766d61f275aa
+7aa663a22d807494bff21a562eae0507e64bc74dc8d1a2f052b626539a73
+5d1a5832e7a89e886eb4db30ccac44725ef80f8215d2115764ff1dec4cf2
+4bfa1f30c36e3da7b69915d30cde7e205e8a9e780bdacc60f3bb715b00e8
+221669692a26d568e581e1b318334ac68fc818b4aae56f9bcb7c4dc7b749
+a083c67c5df50e02ddf9fbe5ab022acd31204913f32d7a8b47242c2de557
+cb452815625cb986e010e03c757188e99acdcff88b435c229c9fa7e762f4
+2823b4b32bbad7aefa65cca11515b4bd335afea1638e7ef8da3fa7f84626
+25c39e1a2ed855c06cc5f62152d2eafe46b9d11dca17173ec0955b1452af
+531f67fabb234bd217a9aba25d1dcd411f90829c70932706ad453c184066
+f3981f10ec9d212029aec5fdbdbc0ee51d1808c0a7d911c3f039d4f5368d
+0b8f0fbe6b67b888119a7f7bc24558be741e57ea649bf1d03f8a555aa600
+a90a69e471b6d8014264f1e3efa6c74e2a2f694c36bcaa713d16a2279073
+748d853fa087e61ef3db613d9112c861655a99de6a3e4a707c8d450eb68a
+0a6959ce43b5437f338ef9f90a4a2f1611ac157c105a68770e2d00af10df
+882fd6b4f100ecc610515e037112a012e306c2e6b684cc837e815971ed26
+6fcc6fa7f2fb5f83cb06d835731a5034e683ceb10e5402f41eddbd8302e1
+df211165be9eff0f2c296eb85d7ea8c667d86fc1a620504f5158dfb898e4
+72f7c46964e2ceaf85c9a892eff29d25bcc1e5297aa679976919f6c839f3
+d0f54de71a531116f4ed682f527c7f53d5c164517db6f807c1d20d37c022
+c5bd5e6a8da424c3e3d47689fb71fa07290f52db51c37d64b83207fca5a6
+9833ba0c2c3ab8c4d8d171c040863605ee1122166d712ad8c04475341da5
+86b1a501e0dae2d6726daac4b640945778ffc53c567618e47993dbba3ffa
+82fbed8bd9f9eb3f0145870cb80b4429e582595ab561bcbb6dc15c889e3e
+ac002d4fef28fd1b9422c142dfe50ababb2be2f385bd343ae40000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA56o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F1 0 /0 F /TTA56o00 mF
+/F1S75 F1 [117 0 0 -117 0 0 ] mFS
+F1S75 Ji
+4454 869 M <0102030405060708>[70 40 65 39 71 50 47 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA57o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206118c660a9cbf6d8e
+4b94826b96ececa9599a7609dcee16efe1179b77c1b7f46a95a0ab7c17a5
+697836677e08c4eee7e9abfc4070a184ceafafef2726ec95228791901739
+e45003466c73dbc8c43a9c04969dbcfd8dd8cf15a19004cee3a14a49be6e
+b91213a5ee7b0d2d584078f374b74774ed505dcdc8983311c8f8e03e9edb
+9df6842ada6e161ed6a5b011b3f1c7320ded247da6deb3cd17a7ec0f397b
+2415ea072df14348131a70acc1f7c7fbbfd3870b5f41e98d030d413cb08a
+2845f8f1c697e10d8ac363d896f70864686afbee40d592ff2a9e75e3e361
+06444d8ee582de9d325fb883a53b6c68d362eaceeafa7048afa7430ccc45
+572995e53aad2bd2386c32d72665fe9d6964f038c062b01a43757a9ab52e
+2cd852d6146f2232dfa51ead4a2b44b01c5832d54b88ed54c258aed0171b
+b62cc9a580de1309215b9be7403d782f2bf09d2a9edd0f657647fdc4900a
+22c529490ca9a42be2400c61acc09f4db4f7d500159c7a4e4e3ad5d4f112
+0507ba0052d9818e041afe07325886343f03c99f60cc1601307e85a68685
+691790d16bdb7d487a68e6e15d211ebeac2443efbed31a5512d98cacfdff
+e34d638fdb613469cffd654f12c888fb2923930f739325fb86060b4acae3
+c1e5a887d8703feda1156c4d73c0e21813d748154bb54f8c24c1daf24601
+8792c263771d62affb085a58adbf11ab9599cb9dcda256cfe6909ffa616e
+53434e3627483cb07b06d46eef74e18d985429a9e1ab75b933114b58082c
+22cf52f6c86824e52d1ec597c6250f14a100499af35f259be3e328da8e47
+483a34be21f28bc8a3262a528199b63a9791d53121a622873f5e6987e883
+930912abd47d820cb61501acb111bb4b004abc7bd88ab6b8245fb7ed6917
+8a29a82d445ee37eefda5c108e2e5729338da717589f1aaf4bb384d05de0
+f8094fc57f0b38379014638d4e690feb342a7767052f75d630b35a14c266
+846a0a255e7012750b989aec755b5f382e79a9417c6fc1e67dd51ff6db64
+6105edd0f9db04526a56c1dafc9a5c3b2eec3e8b9cc15e6eaf81df891db3
+1e4a1578f50ae8b34485e77abb15bc441dfe8dbe345c23f8378de08d802e
+6b1fd78d7f06217fcaf8737778d271c391cc56f2111f7600b59d683316dd
+dc1c3721f4e1bf984f1c1922b989a852ea83eb7cc9e907fefaffab3777b5
+5b0f4b31ef5995c2e4d1f076a36c6dac984dab1fe574f6c30f9883f3adb3
+8104eba28e817d1c8845c2e339509afb6916f2e74a26335df0f2389652cb
+b97a144bd0b34d282501f1ac84ec15b8ab7208be238220a6d45443928c3e
+678a651ed615ab2419886ecb8170bca1de483c4bf773a2ace74003476dd4
+9cfa70f78ddb9b2d832b6da5cde76b8286c581c6e0855333f24c4a849b3b
+0591099e36178aecee54d3a7d3aee7c2af5c84555f6a2b6d0090938f6a48
+177c4e5d34c0287c6b8c4a0dd59ad7ed951e296d122a8f174da1497fb317
+2426125f25cb184a7e89665539ecbc53e89416e28a146b933ab891ce7291
+db110571cc559ac79a8f06534d3aeb78af1fd90c1a62ee315df8e9ea58e1
+3003e4784c9354d1de15ee86207c70f572629fa6b62cad886aa18a39c2e9
+f2dd802c49542b085b88afcaae2ea3b3aca61ba5ffd9f4e3d2c1e9bdd3cf
+d5669196623887a7a2016ef55d22f6b5d791e1b787bd8c234d2c715ce9b4
+0bcd0dee3a9ddcbb71bb1ddbf2a76cd4fb4f0d7d2b786a28905989ae899a
+669a081cb20699ac39b91b6fc7a98870cabd07f2d54d666e66bf182334a9
+236157ad4379069afadc84bc9438bf76ca41bd153d38f64b5af32421d933
+0f54c7855f00031060c388dc4ef54a67ef866969cf47a6e684367c794f0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA57o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F2 0 /0 F /TTA57o00 mF
+/F2S85 F2 [133 0 0 -133 0 0 ] mFS
+F2S85 Ji
+4424 1019 M <0102030405060708>[80 45 74 45 81 59 51 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA58o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1728ab
+cda123ebf188b9a6b8b24cbe57d2fdc0fb1465e42a4a57f1b5de50d12264
+c2c52885376894a97a3c08ba53166de08d794b16c034e3260814dc36d7d5
+bd49c3cd5a16d882e9a1adc9ffc8fa13e3d736dd14a0f59c0e23b738cd57
+789aa9c1769a2a0780fc2c19fc708dfc6073d95f7be838edfc03cbae144a
+378d7cf48890570309de33ee5d7cb65a04e574605763d16439afa2291a11
+03067d6228112b327dcf9ec9ffb4b4c5842fb3d130ce409f5838ceea1dfe
+56bf53695ba7e626b7e902e190dea669301951796a841a0bedb5e51d3c09
+3e882413436423ef296308bdbd1ac60b84bc70376ea86c1b07062f7a204c
+573da34342995ae05ec7dbf7853f2e5f9b9842c8ec74fa1d38c508ef3e13
+c69f19b5dfaa844e9cc5e3d791f36fae0adfc6a6e90069792294e2170e4d
+ac265f7c0fdb3301ac4b0ff5ec185b21826fc4ac759a856acb923365268c
+2939a33c5bb257385b099f89737dc9f92a81ffee9fd40483dc6e9e1918ce
+cb7dc0141b3fb52a6f9326e075efd4c5296c39718ff35463da3ad067d02a
+96d8b41a02f84adff5bb4f6950fbca87a3db27261f99d049c78ce3d75510
+788b537af73800fc21501b72ac3cfea52b9d86946fa2d807b50640efc784
+9492f277cbb4a451bccf504badbb0f5e0a8f6bb116d8c16ec3522fcaa2e1
+466cdd96ab803f47d4c8c206b5676909ece2e6db8dd88afacd31b9f5a670
+5daa6dbf84d3f053ba4261a8d3707311fa9d46bda5ae891aea4ad6b70360
+08628f733151a4f2262aadabac443b4dce72ce55c62968cc0205bca2e296
+41c53ad39c339efcc6ff63a56440b6109c071289a18024596d0840bc634b
+fd0076c39db41e96443f89d1d79f6c796b3df419f8d19b9abebd474cba56
+f1b0be6e75199399666b1e5c297418a5e05575a85f4f596615ffdb47ea6f
+79933ed05fba1911a87ec7985fe0acc52c074888943175fa52470b364398
+3a99eead59369a00556ee687c9ceed2e8a95d9dc1790034d2fa6a19919d1
+a43f10bcae5e14ef4ad036c7f44cb63f99f9a2cf4970b5760fa073a6c970
+eefd0ce5d2fa46af1b542149afe26804a834ac0a7f727ef8649d6af07667
+2724e5f7b6b25744e674bf9a5086196b7834df64bc3bcab2cd70a1fcc492
+b3e7afc80f72e3a84aa5d3e5c3c902d6032f41da6ae5e7340944e1f4bfb6
+85fc826248d897cff0897e4c590258f8df6c84c891f3b46abeabe0411cac
+70b9abd20ef4324819bc49b28fb3df7e25381d9d21c276fc908aaabdc532
+6621c5cdcb3dc3dfa758584a9b8f86e7070ade12bfdd54b1f56947eb98a5
+a46745809b0edafabd19192517147c68d4dcd55b2bcd924955d09d8a363c
+596a4e5f0b18e23813e70d5231def676dff793ad0f4af3ca4b279d5276c2
+adcdb87b00531a4ebeed39d836f09861386999c622bffdd5df501c7e7844
+6b559037fce2e95221391d4223368d705bb40bbe7d1a7a7f15c49686a9fe
+418d72a2b9fff5bcd68b058633580ea72709a3d95779a06821f56d70febb
+a767246ff6c567e7d4f3cf63c69551a37652aced5441e9e5df350d931420
+916a69ef9a880108df611eec29d502d08b073b78271c1b151774392639b7
+5cdbdc2045bd3a6f81086d8500e50d195207f3b4c289539cebaa82ee9d83
+05552788b36623ab12f103176a73856bfa4e6be9cc9897fc305b86829b30
+2c0b7287e514ef5e9b10733ed95ecf1b51121b9ad99f9becada0c85c7c1d
+c8fe8e896c083bf9daebb69e529af516c09562c6bc8b50eef72f33b81e7f
+08a88ff5be58bfccbd42f96a582ff3d3ba11218f82d121040d0fc501dd3c
+fef1e5d184c959108f096bbd543980458a682ea0ad0b62ba31ceb3560000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA58o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F3 0 /0 F /TTA58o00 mF
+/F3S96 F3 [150 0 0 -150 0 0 ] mFS
+F3S96 Ji
+4395 1188 M <0102030405060708>[92 50 83 50 91 68 57 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA59o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22061485d7d0c2a0dbf2
+930a8f5918a6862051241b27b50bcdabfaf3447ec6b9abe16f841c5bb191
+f22797fcdf6a8c8ff86f049be5c0235027cd0afec26ca4ec8f456e5fdca3
+48ec1263f3379ff320dac2de3bf289d44a586dbc7321cc21f6970a30ec04
+4c81bfe4cc4aad0c34c941050be71d47d6b71b17cdc52f5f4929234df4ce
+8e8dda53ba1756d68ff2998920764c753c787ce2aad2b7318beedaf154cd
+ed062e47828b15606957a37f2ed31c497b84f23af55a4be8ec19ec290bc0
+8b8a36d4f76ed450f2b6bd24d1ab0cb9733ded98d13d121ed6e61bea7f25
+535d7bb636e41d1e6c85066ad25a4129078090ff449da4901c333fff5a65
+3b109d418559dfcad8a3b95343e32949626ae79e1b9b76f34e85f8ad1d02
+45224ae5469e6de5f8ebe918e4243c58795f146dcd8fdb345ced4febbb37
+49447b9005b7e9da42f5d30c4760fc2fc25f01bd6cabee8635bc3b354b51
+4640db9cc5a1ffc3b043e11b946b86dba33ae4d62a6868a0563918626a9c
+ab48b3a26ac63b32314dd3e73ffdb937da9fd8641213b6e421733bc26d75
+4436a44bb0374923869ba9d9e3ad5d720963b321d55c8a69622f6e513484
+cb56406691e8ebff011186c94bda3ae6d73b1ee31e0ab7a00d1ddc0a0add
+9162daa7d98b701e411ef69cba5bab29143d51a6621fdbbc6c2786715312
+6abed7ad07ee21ea4aa2604ae9801151304692738429383a6be9e2420d35
+36706494a215bbc41a8b0720608803753eb09b8da2232ed01b25984e1ad2
+2ced31325125ae4f61f6c40c003e081c25e1648f36c734b9206e82780ff2
+d6890dfdba56a76379cb87ccd6a207a3e96ea78cf156ef86936224d070be
+a4af0e4c33a1e9016db6a04374dfefe1190ff69f20c89991541c22cbeae9
+d716460f215a5e3cf1b3da78cd2fa5c732024001c91382dfb9cc28268f71
+6097460b697b27d156c66591da3701476c10f4a699da79d411353d984a44
+335227370be063f904c2ed3046c105d07d009f5586a254627bc02cc60086
+5ce2c25952b4ed43a867b1e4de7312dade167ead9739792765d1987c094b
+611be118f5392f62b207aebe1855cf31d6cd93e85627a1314bfe1c99231b
+3f5fcc8cdc99e8c843f553f264d4a676e700104c4f98640d95f912bb5c2f
+21d3fd8ef0fa3759139bf3e24238c7571aae8f3db149822f24233c25d03b
+e95c19deb5e0fb30f5ce473f81cfbcf25a3998b511c61e1c788aa5653bca
+a78621a572a576df9bd271e38ad6de59995df949aa857ec90ddaaa3972bc
+abecf967125d88bf8cd80f5864010b927ee8a77909505e8a0d84ac430ac7
+7c3568384caf36adccc0b4c083fa19dc61f5a35f9f51adef83a1e4410507
+9f1238fe26633516e27aa116a1ed20889fc23c2e803a34d17ca4a328b654
+df8bf4312ed207b24abe6b205f401b2239a29154f251a6ef7a5a8481640c
+c92819cd1aec2d6cec4964d9230d8011a9908efe0a14f825cf3bfbe84d7f
+bbfb539c127c84611cb20e0a59301a13b4a5d279c763a2f7a718f99073ae
+5f18d7c7e8c9d8f4baa8ef33941cf41620bab2ebf6b55d781ec3b2bf7157
+74e3ec25418d93decaf162f96cdf0d6f96e81997358c0e1cab62af3bcb24
+86904a0858a07eabd803e5379b03c650af98500509eadef2b1afcc03dc34
+e669c1b996554c6ef76b1a40f130d9d342411fb9b5ce422e71166545e4c6
+70a2abdaf7a4fd819d3ea3c501917eca68803f09af97fc95618a36048ad9
+93647725ffd4bbc4fbbda3258b92047db2c9309e51efc433257e23c84274
+90d257dfb2ce98ad682743094f1ea6342930f3b9dcda8ce2d665e08f7aa3
+fa4df153a7da21f64c2eeb74351ae8cea832987cf187ad483d67900000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA59o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F4 0 /0 F /TTA59o00 mF
+/F4SA7 F4 [167 0 0 -167 0 0 ] mFS
+F4SA7 Ji
+4365 1376 M <0102030405060708>[101 57 92 56 102 74 65 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Ao00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066ef7ec7adad4e5d3
+8b2e433d08a0dc640353a02ece412a4b09d5e6d3465f6bc5e74216dd072f
+3e9e3f8ddd853f280cb37ec60c99e5ebfc757e7be973819b39ff8196497e
+472a63fdfc05e286e46365bf4d55ef237a062467084640c98e5d0dbea864
+ebd8683f644b0d7c6923a28af309cb98a3be6e046ced7cb900f4631b119b
+65be6103be27edf87e4f495d1753cd8bd59e99bbebd2e1d600fe9e2d5ae7
+db029e32176da132e72f490d02728cdfd28b8be9472520c524363b527f9d
+91b3224e223789c3aa5422aaade5dd21796ca05e253143fddcea8d000ef4
+bbfa338c920b5c025a3475b44b9ebf0dec8b8bc9fd1a4f4328f1dcfc041b
+902792f9477fda833b0962748e3261db32d775f63eca2c99bd863edb9c3a
+e5e06bc0886cb9de7e91161055143943d5b9ffe3d69894eff59942c6e6bd
+14f1764dff5ac5f1b0bb60812e6ef1f4935a5443092a15cf32a4b18e21e9
+aa333e356f31f450f888aa11c25480a796202faf03196243a7fa68bac329
+1dbb3b0d7ad4c7f80f66f8462e44d066c558c16e377fe342997ea31c3c00
+c0903389a580aa761d9ae539521a4cc09f2cb49232385ffcc7126415f498
+5289dd79d836c4d11ac344119b7755cb406f12c2bc0c6abd598754be166c
+9e62e0c1f0c55e8e205273db43574b4ce35677439575aa7cce8b1860f212
+3803d6a99b5f928e00536bdb35d7f77b9caac62936e902762921648e9189
+4586de6c61e572732b0d097683bdf4e2f7a0b9332efd48b15de3d934c324
+6d96fd969ba4abcef9b28563b45c266aeac1782cfe4ef1d3baac42796450
+3e0ecef9b80d20a51c757eb8eb8b4cb3832f1bdaf75d336748a3bf5746b5
+48d93f3a13fbd0e29d974ad5991ef5e14ee409d385d59d83fb9413950468
+ea2b09a608b72a0b7bd60ecb9814cce7d920b22d387e867a23cebcf54958
+ac985c6433b3a65b5778543daea52a9beae38bc838995895bb2262772b07
+7a4e0cdb87633287eb320b56d652895b12f39927dd54104579c497fd1c47
+25bc223e54ce3fcaa22faca351346c4979209419ec33264b1578034461b9
+d2b2359f310d3bb0578f30e5b729009d6372fcb1d6430e282de232363d67
+5eac59c4a6704836aa6e274473d2f6220a627c9ab5747fc3115ac948180f
+549b305bcc2895ca1de60aea55332b2b180b36831ab380b7c2f421ca5689
+7b173ac0ceb1e4198cb47b8c626057eb4319bb9b2505f3a6c9f4638f14e3
+f07c1d915d490174d7b6deccda599a3aa67af1adb52192c2b0591f52ae78
+78527f69baf10ad6bea8d1d50898e4f5795717bcc90cd5f9078caeea6760
+ff12a1ca76439be0385cdc3c7af7905a904828638c51121648265d99c5b0
+16781fd791060dcfe4a611b15e5c42e92c1a31fd40f8873c79b438041899
+50070799a04d114ac98dbadf46a8023a4413aad03c2546cda40fdff6afd3
+70572d90a7709336daa37491ef98c376a836250a37818621b0ab50401e5c
+137004bda09e99ab2726dea1b4b17afc11a04c20cbb9e12f70bc3cfe4304
+83bba0e3079cdc0a27ebffd6701cb4908f0e2afc384d7a9ef77170216a6c
+acfb8842c9c700734705a3828d0f43b2bc2d378b16678b9daa7e20a62217
+5e41ce1d9a669d4a4accf73231cb66c4671642c6bc2a5cfeb84e58d51344
+3e4ee31aa83dad85b034293d42f390cb9f6949729a019ef973fd4d2a5bde
+aa3b3d2d41de3daf5b11c02eca9ae7441215e0c44319c090873208fa32f3
+caf24b4b92d67e744e8234207efaf0cd03066ec4d84ac8e0f71138fa5ecf
+d4a87a60a2b5be428d95e0fe40147782a1cb875c53e84ba042387a35a687
+e9e02f0a7a934069d2dc97971f43b809d0a358a5a92991cc279b4d0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Ao00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F5 0 /0 F /TTA5Ao00 mF
+/F5SAF F5 [175 0 0 -175 0 0 ] mFS
+F5SAF Ji
+4350 1576 M <0102030405060708>[107 58 97 59 107 77 69 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Bo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066baeb5dbea4fa9a3
+71fbf5607f4335673d842c1fb7de714eadcb044948b7458d4cd4d22f303c
+51e1270d84994826f6a1a17ea11bc730d40426ace8a29926f3e4fc00e701
+a90ee9f5cc95cf95beb409d15d258fa32a3a904d0f959273e6eda6f0df7d
+08ac5dc01d384b162e5ca1aa8a3b1f45c0ed44717a8b1d92a54ad496aa6d
+86c578d27a9aa506dcbe25e7181a98e99c355dd06cac8f9f8c2edc1a6278
+1b861b29d71b1ead02638aa086f77942c6cae5fa9678321e48be7a95b860
+56566e58dacbfcaa51dcc09cb1f7c4cc3f34dcbd2f5e33dfe4222fd8b18c
+36bf74b5d48df7344cd4cf4972bc08ffa6f62ca6bc4b0eee26ece563b33f
+5ca6f0c377d134cd7f31c4802763cdd756c01b5ec85fb2a1a641d7aee478
+26402f527ffe707d36f6f6f90c180dd922dcef1c5cc10cd1d26c916f8362
+190f7100cd97d6feca5604bc997f8cd99b7c0b44a5c4660d832949eaa19b
+bf9aa919275db8306def142a4cbdf5689c190b4b9e9d510a319270245dc2
+16e5f52217d490e714fed8e83d29d12c55f7f01e2ad235fd852f2ea19ddf
+ebc7ac1d32552815089539f04b30e775082de5a863ff0365f5607b7bfac8
+2887ef522be1490075f821f4d5ef5ece2687458ac2e87c1d503fbf3795b9
+47ae1ba5d480635a873473d7551abebec664e312e7b242f60c471eeb4e88
+b86d6d27d6d71a55196e112a1bad2d00f428d7258ecf7541a70894b2c812
+db5b402a617cb11d25510f8ed3109a74271835139e732abe651d81c5cfa3
+52703ee63da6b2dcf5929a3724c661f23e316c04cd73a3a2072f56390b79
+a7500ce8575d6fdd9221b5347ec45bb7759729a220a37b6144b41fdd5b3f
+12d49a9caf57421edada1a5752f216108d2c32e40f5cab75fae02f7f3b27
+2834e35707f4788f3c70190d486b5b5baa19ad85e3f694abed01aeab1f05
+2a7b0b54b2531eb9cb1ef43e53eeb0f5969812ca7fec824a63bd8fbfc78f
+46adcf490959cdaa80dafecbc397b558f027a97de9c3fb9b55ed5fde50ae
+324323479715e14a95a4c955116c967c7bda2119923fb71f1f1021a74f1d
+69d17e1ab09ec97586d63f267583c43b22d528f2b57c25c53e4e0b07bf8e
+25bbbf3477821da145bd30c01373afff39e2baef768e0425857900d83ee1
+dd635c2f317258a2fab349a733300a24ada26a77464995e7e0bf2c24de2f
+cd756fba3610d79b0f69be5682362fdb0dd6d159b27578deeea4b892db05
+55f50cfc5390f24fc67ddd9035f72675329677af64cff7b051a1a34288a4
+9ce551925ab6ec27b552fc677d566a2f18c75ad8002b2ffa6b0ec56d20fb
+8f27087eb5ba673deedbb7f3e588c740f85682d3ea2ab618978f7037f659
+7da162957e953a97236acbbd757ac4b73bd8e60d34d178102477c0574175
+28662b96fbecd33dd786db3773f3771459fd92b1e25a149601d8fdbd7a6c
+f1de6aa1a61da61494f8c7a8f8df88b09c72a9d70a51ef10704a324e8756
+5fecf5c04e72193933506c7a0b3d55a6d59e2c6a4ec96ec0070deeaf6abb
+50f0d29fa90b9523fe30374b73444bf11dfa093827100f92fa75909a7fa1
+107d966ea3f4ce988cd246845975e87332e5e277e693f0588f2ca55c1e06
+8b1a6b5e2914a40743a964c92356393c742272e9eec81ea0fd77d8ddf90d
+2a48f011233c6b0d65a1398bc12459cfc161bc15c22ff325a0aa41b29d3a
+0c652a52b449502683b5a11c5a5072af5aab99ca2e7b5be106b03f066826
+5b2bd317ea19358bb92fdad766daad1cf9cbc8c81d33da27c41b0be7c252
+378efa2dd77d639f6eeab6e738ed470c5a9c2ff96956aab708cf0129f182
+19a5599cef850ffd465071e2d44b2347d401f82fade624e4dee38b0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Bo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F6 0 /0 F /TTA5Bo00 mF
+/F6SB7 F6 [183 0 0 -183 0 0 ] mFS
+F6SB7 Ji
+4336 1785 M <0102030405060708>[112 62 101 61 113 80 71 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Co00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220616fc35b8e91f4411
+2ea3e18d75348a1b570035ada3ca7681f0d5845dd9dfec3cd6f29f9d0c50
+ad262fb16bc30f7723e63f783c20889eb90751dc023bfb4ede4165eb655b
+6163541eb0a9d146f382dfcad00d5398d12bb905725708a55921dbcfafc8
+fffddc36649a4d606ea08acc886b1ec07e6d5790eb9723c3b8c8bd327929
+5acebb70c048f1bb55874dd9bbc0815f7617c4031ef813c968dfb3b69a59
+12039471551dfc475d116d9f62ab9713c351ff48ffa5a9b6c0602990b34a
+985e118ccf9b853ec6313649c6ddf17b10ef6ca51360a0c19710daa58695
+4c14858082820bb3985a8117932627679a0ff497e1724d5b0f0994bca28c
+3d9b57615a601a25cfb1496187e3697596c87670600397a0b03d87cfe888
+e5ae783f0ac78a0198392285b47056cd96dad15fa8a95954b0d04fb1cc64
+c39402320e2f365dd118708e1c8f9c0019f4ca95d3a33bbc5fc700cb2806
+02b2b4de764f0a55eebed1277f9b5c71caf3f119ca24285d2f736386aa92
+a2ca367d9a6b3201f578278a52ad274c4478fea87dc93b97df73cdcc7a2b
+b55205f2c859608e06cb37bdf8f2be8e75cf505eb0e77781e321de98f410
+bfb42b5fa970a743ecf7ac2a3d8e49c32db746f11b0c52f823e249843257
+48412382bef94b64cddc4841d3c8214a8e56aec81c12e9d5f456d1641c36
+c477ffc722b09b1b8fa301f977ba6abc218f2fbd39419917d82bdcc1a5bc
+4f781865006f56faab8321f0e3c9b4e358a871dde55e36c46a402005856f
+4f83816a420730bd83e5d894fad1879bf93f10325a8830777decaa17d3aa
+1493a38cc7684235778bdbdb719f1297b854156d101885b96e98b7222c1b
+fc11cfc18c25b03a173b05d53c5f4385aab31a2864f702402ad84ca18eed
+c09937a2b31097d8b07ae55b8d1038a7ce9b3c70b6fc88db42d0bda799fa
+fd17d6868c14ac40abd445c91f03b5b3a13367024e0edd28408aeb40e05e
+732a268432a78cc7095b6807fb6d97562db7fb82b53277cc12062b50b480
+33ed74b2b39e9f35727a6cb20a7b35c92be650a1bc35252c7761aa55c6c8
+8442073108bcdb015fa7d8fabc5ea6ff2bd0c372403feb12da4ef9adf970
+6efc84b2a0b531345ae34d9d3699feb3675889d6ed757255a911d766f0a4
+dd34c57301bbe1265e3883c7697ff7116c5a9cff89e8bf96cb16513a1e86
+f6b1239f76daddfa3ed680db35a2881d3fa08b9ba64f09d1971958ce62ee
+de4a1c4f9e69ee0674dbe1ec200a7d1d76c52ad7f5025d5f812273f18ff8
+6af9f5fa5bff055c25c590e50fe8eddb3feb6ccd8e0d9fd0ac0916658f5c
+0a618bf4cfdaf2d1451f29869de7771b66a4909f7139825334d97db11f15
+a9359cc2d5012c57fc9122b248da66fcd042370313d1729e9ae288203470
+1b92f8e155c72aa48e38f01dd3651f516effdfc5bb75d612072f7d02aafc
+86b606522e2a5f952f9c62762b208b30be4b59130b141db083f35a9d315a
+0578a98ed4d0ecb7c5bbb7ea94d5f66568e12c754a1d91c199c8ccb95299
+c4bc3e6e2e3ffd9384e9bc392900389dda064e849fedb5d38bdddfafd0fc
+7ebaead7941293d3f85ab533a79fcc2286dce859b663142ce0b16a99750b
+e0a02cca5a6e4cd7e0d46fd1fac9c833bbbf33d307c3741f54ab210bb4e2
+ba0077d05abcdc9334e07f77dff7cf6515f2418dc5a93043d4777ac91af8
+f4cf77a24e14042d3046797038b4fbfd7d430563657ac56608c6f98b3769
+2b75a71bdc4781c16bf3f738a1d3ffbd5ae9e99f3c691ea52f311236b669
+d7d0689268d10d2d90ca9d06b88097b2d72ea20c75109f87768b2d489e67
+2330db7f78701b56cfa5e5b02eb6375b2df4e612630504bff664125a0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Co00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F7 0 /0 F /TTA5Co00 mF
+/F7SC8 F7 [200 0 0 -200 0 0 ] mFS
+F7SC8 Ji
+4306 2012 M <0102030405060708>[122 67 111 67 122 89 77 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Do00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066cadc506161c23a7
+07cdaf743386c9822f1c3d4f1494deef8094aecfa106d5bdcefc2934aeea
+6c4639fba0af1e13157a96336c8af33c57c65e0fcefc246506268822e518
+cddff1357a1dac1553af2b7cc7c807b2848594a4ec5eb543f2401ec4a3aa
+5c3198e4b670c8cdbca93390ddfde52b91b320ee408da449cdbbe4b8a5a6
+9160a65140185ee849eac0bbedbac799f4d0a8bcbb61f53c0a60fa06e396
+e2db21c286f13dee961e86c199cb40f7b489412d0e75822c3ebe0db17eed
+df59427be23998af0d97ec9f6e15cf937e9aeeeebc5ac671d2ae3d35819b
+1d21b24d78783e94bd21c2e3f61c52b62d334162bb9a14504c229f656c89
+872fe3863d2e9b6ab97a470713023e22e8f9517cc057c317547c546577c2
+9a4a39657b10568ba08dd8579b011d4bf5ab42a847852edc43d265df501f
+05326c3804b1fad0ffa31e7629b54edce59163ad88f88804675e68747d16
+6286211a0f76666185aec30ca45784112a93bcf0ed930a554114ea2958dc
+be58bb93a657e161193a0114f2d16b2ac7418cbecdddd7b9afc10673c246
+c814cfbbc49e88044ac141baad415809ee06676d000c2c7ac663be935b1f
+04bdf1e27fe903d292f49ed28429a6a8750e734895bd4e681f33f7e0e615
+78282e452fdefdcbd93b89248f3172b927b1563a4b580f303f294847beba
+b5b8ab0693692817badaa8d4ba9bd3a17c5b0db7f8c36f52f388261cd797
+54b5bb730849e083e1cbc9a0c7c4597bc0dad77a79d35fc6f4e0ea162d68
+4fe21b3223dfa8df1137cb37a8bad1f221f869428f779bafa584bce859a3
+646ab50caa39997b3fc3ebedef9109e7b32efd180b3633b5cc562cdd7ee9
+68789ac1dc8a27261c09aaf09f69c61ee63c380913bf4baf6944d8166a5b
+54b8ffdf78fe6875854d17898d53f0fddfe5f913e41f9657452f7c93805a
+ecc771b74975813179e3a181d2f7268c6adfb1c923067e737fca7bd5c060
+c67755410ec3faf0265d0483f5c66a31bdb89ae87239d3bd8bd49b4be079
+2565bd4da3eeacab81135a4fe96733e47faec3fc5c1165e25a5f5c19e24e
+589a1ba2cb960ab30bf2cbf442b12c3a75d752b8cc667aeb891f34329e41
+e6a35cd058c9a5d8d78a6bd7e9687606108239def2530636fa2a02d3091d
+8abd4583482272bf522b3ed2eb217f1c209621fd8eab075683819b077977
+ddc380731182d2d34bffc8f253ba4cdec4c054bc489682c39287cb8e3ebb
+1c49c50617994d8169ce00e67f617d5ebf7a7c5390a3096424bb3854294d
+a66805215beb03aa892ba9019872ac2c3cdd408b7a3f4d9ad3af3cdaa284
+bba725d0d16636c723507f53258a97d77cc8f9dae0eaf1dcb7a6f58c0bce
+5339f3cf6c1e85164624363e4b267f471170d417d307080d11dded682cce
+378cbcf8fb1f98a78960b4a37c917346fe6da893d512ad58b1f33ec6ee88
+201aadcf068877609c68922e6eaf21524367ed9cb711f1b4d225ba8c6302
+dcd23f934979a2cdf99e5f99fa661adc0117169415a20660498de8046bde
+1bf97171d5a06cf380771f4b0356847bf466fbc7ae3998fc87ccfb05e624
+1179a30746391da63a4e2a19a38680c7a5e276ca15712c7eb2afe8430882
+eabd46f019c882f82fbbd86195810899a0c676b9f322309d945cf5010cb5
+bbce1a15392d78c20880a4edf30404c1005656b0bd33dc31b1624ade0b5e
+ebc291cbed766f163e47554522396d59734bc0bdc46f207b9e9b62b94a14
+8039b5a3ed8720863aa1d0774c2738767018cc6469e35aa9f2ae6409842a
+8d18ecc86eb37249e60b6056542f605e123c1276e606b6ca246111b2b5ab
+1ee684f1c915e1b2a8b783e7138f7bbc48542315461ddf686d17970000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Do00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F8 0 /0 F /TTA5Do00 mF
+/F8SD9 F8 [217 0 0 -217 0 0 ] mFS
+F8SD9 Ji
+4277 2258 M <0102030405060708>[133 71 121 73 132 96 84 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Eo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31f86d83
+ec215dc15546bab381b4f0b8cf598b3de4c3de3f6a106e539cdb0f64c685
+e8ce98b2286105e954732793d04f8c77bb313fbaa17485daeba6e5c4f6f5
+d01696085413cf6d9ad5a061c2eeb124bbb8b99bc879c0521034f10efed3
+37a6d5850e031ec2caee80822c71fef24a88e5787fe50f5de916d2d6a3a2
+e380f8898b9210c3a198ca0f76bbedf8fded493125b69a924475869668fc
+861cfc389477f13d02bb3d0d067c2e164b56613d248570c4482ef87c54ef
+4d4d50dee5f62984f8581aa288b09bf7e231e844c7f50e25f78f7e6ed700
+18dc53b8a138090dc053e18ddfbff6cd6d885a3703a59e298001310379f9
+be660008ea82c80f1447f0a7945d0745faad0b0830ff465a65c587c5e996
+95495f5911387ba8aca425ea35b80e043de79bce76252042b0cde47cf891
+4efa923553835ff41a7b627bf6123dc1f6206fb88246c428e4983733f82c
+fcb24f89ed1b6607ec6726f43950e1a20ae46bc4181f0abe0ea39caf020a
+6119f6355ecb87c1b45b72b4af80d27a3801a6e1fb792c77fe9db23d751a
+0c0c62f748e06896b179fdcbbfb2a8ee05fb52f687f43a5c018505f0649b
+5f257546b1037a8de164aef8fa06294cd4f6e058aa2f040c3cc1e6440341
+4fd43acafd408d15070730b8d5a49a1f524d57a23730fd79727c21e905f5
+a653c7bedeeeaeba7382fb9cc6b703f29f89ac4da5f8721c0752c884473e
+c3f30e16b7eda908f68fc34f96f25faa76585ac41846682c52e2ff9f40d3
+3a61fddd2ec477641be661f5bc7e51018abde3e7f3dca6c64425c9025bbf
+7577dc758aaeb5e3aeddc592c365d50985ed3d387f80c73b28185997ae1b
+2e1a77b025b36f91df6ad12be854fe79727317fcc10fcff99549233530bc
+22beaca0960ba7e2c092be4e9af0f630b6e7f22fd0d30c1f21cec9418066
+eb5e81abbdcfe85696bfec4cc7746886880c04eb0b333a42fc1f077dd7cf
+7d4d808e690a15cfea75a4998c592c52967a33da837ae0569142330069fe
+babc011d29826fcdd1d64a2cf3112b20d98aa16e1b4d1574bd8e124bd7f0
+169c402f37a7cfc53921608cdecfd58447b3b98447edcbf69e5c5ddd2c8d
+cd73f297c5901858a9552c530528872bbaf2dd6215fe304cb767529af72c
+67b145b0ac5b1308c855a307bd78548fcfcaa6eef3057280ae00a90e0dd6
+fe6c0b5d68783be52dac797c2cb6e7243331d7e9ebab2beb54d02a87571a
+43fda71b3e15f97b5c965bbce78ec8e6efff04ca44fe2c4aaee2d981f02d
+af6c1a696b6c86fd2b8ebfbe5b3dc92813be6ce95a41134640e27643a851
+55ca711bad0cb9a26482e5a8f6ca3b067e43ad332c21c148b0ed92d55bae
+9ef93397577adc025f36f6ae10d59caf488ee9b6d6bbe3c55b6447c7cb7a
+d26e7ebdb2992907b685a7e703d3024baa3b0787e89de76fea8b46d2b473
+d6733b40d4e41923d6b923b190103fdabcedd8e701ccb843a760aeea1096
+212590c5a281a108951ea4cdbc2e6c7114724b5c1021d593605618a4d7fa
+df5bf17a2e5f267bb62ae421b46d3edb9f8856438664637da5bfc861128f
+c5639ea03dc7290c690436bce7820156c0be99100274f97054877a573ddc
+9c0be5dfd7cef8f7c8aba68ac05b9ce1b81180c001bd7841349c9587ba21
+d9b158599b672a7c42238e7eef628da1a88b539886a6b9f6c241a53ff44c
+adadc01d0ef7469509c740afb7fee4eb2a75ef8e78072229b90cd292fa96
+6f94bf659328d23cc7f22253a06cd3b0d2db36646f58084a622904a66fe7
+9b6260f400bac49be0e74934869dca984af60e898905b07ce5e37e729c0e
+5806c2b93ef7a09edbaaec50e5e49e7f9673a9f463df5eb51feb0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Eo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F9 0 /0 F /TTA5Eo00 mF
+/F9SE9 F9 [233 0 0 -233 0 0 ] mFS
+F9SE9 Ji
+4247 2523 M <0102030405060708>[142 78 129 79 141 104 90 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA5Fo00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22061485d7d0c2a6275d
+8da901d4c90b764c07b7b55a308444fa1e7a528df157b5f3a3c98718c51b
+b8405ef3fea9ef7db06034e263d395c70f718a4b588bc1590b987df93e7a
+72c230091e534b07a2ee7b4cf1641847bfc6d3721c80ad7d67f7b7e7952f
+5297e4c939a240bef9367734ebdb25f95d2e914d53ed710482d6c0ef0e7e
+a5d569ebc4ead0daec244491f71d5c6c5279d1c62599dfcd2e5b8f1a98c0
+883cd198bd7c7cb5d8583f6eb5bdadc1509f1e07e8a60fdd5ac1f91fa8bc
+bd3db3de11f798d327c54f9bab256e9b64ee974c431c601574ba9f16f705
+f849859f9b81fe926d3ad64dc715c4fcdd03547669c72c29ff6d9db7ba0c
+9c8eb6ad87836223789881c8c054a785683e679ff620f747733cf8a65f41
+f41804649ac29633168ee70c441958e03b3d857aef37fe2f4b61a4356640
+8d39bf06df627a1cafbec8c90cd5d4b9e17ddbc0ef8b838887991521beec
+7745da33772b5f1dfee80a89ef3058868878ef1abe7131a1a337abf0c241
+12546185d043c9a89bc0790368cab51d11bde95d9f893797a1bf7da358eb
+b681c63b922a074a5be052b91f0bfc31090ca4d6f266f70f4f4c27ff2774
+475b69301570f64e2a775e961246ba51d1ef37716621dce50b155078fb60
+cd81d9c133641423778e3f899bb102dfc5f28f20894bf5850e57425324a5
+7adf1ee9ed235f80dd53251e24d53992b184dea9bd5644be6d3c7128f61b
+469e5b03866cf5d090fb847d437ca106ceeffd41a20c2feb6f018fe69b81
+d2e1bf7a084a6c95ea8f102ad81b5e02812d7c36395f11ceb3fac49adfe3
+f918e5bcefe4b1425c469dd7e3c57de7a680d6999078510cdf1a2741efaa
+af2995071314fb018448d7dcb5109391cbc69507d206d6eaf1cf74b28403
+00aaf32adeddf5070b80f9831083be56864cb84d7c80f60df6d1f534dd88
+90245a330c13b34b0b487f7c126489e4faebade7b1d12ffc058bbf48baff
+67fb0722a453db48756058436e565969dec48ad212ff410e07d51fa23d54
+f180e530efae113004f42d300251c04eda6317f01db9cc54808622ddb708
+2e4238aed2e5aabad836d08a599bb57a43faef2e1f3e4cabedd2dec9843c
+2eec92fafe755341b5c2b0aa3fa058da19b178a041ac3cdf161f1df3c506
+110fdd73c18af469090aefad97f6732e4478506a901883d1809359513d7c
+bb2aff861ff164e85a79fa1fae05fbcd6c4b3248c4d7d9dcf3ff4ea043b0
+9e9a8b73f108ec6873d7de2af19598798a1e2948797270ca9d680070b2c4
+cff9e32bf2417a6813098943ff603482c834a38ba8d10b16a26e195b41f1
+66dc801fe2ff73ad06165e3c48281bba7c5ac6c6c09774362af43726f85c
+ac8fad3dccff8c7008a3bf70265abe55a724af89b740b3b8f464ad66db80
+06ff96f44b70a5630729600bf74ff96218dd3865fd472776f0cc56bc02f2
+62f60450c4041afbe70d278e7fe87b4956c3a414c9efc1ef733bf317f984
+644729023b633fee715f438df1b36d5f021bb0c018b838570c1ab4a47378
+6cf297596d0831c0ecef9dadb1ce6f90210c8498ddce915d60d9d0ddf317
+0415d5788b83c3883ff9968c9875b2f8f9be67d847b07a4143605e9cdd26
+f84486d0d8014ce92ecfb99bb11ccfc40efe0019383cf75e02f132b9c552
+6da2286619ef4904b9537885b4fc108a295fc33213cfbead8cf919c20b7a
+42e5d1e389899e132428f143d5ad323c4890fd80deea0e1133dd64149eda
+5ac5c123e24807ecc7ec529e5b5fe77fcf4d199f4ac1f2c37fa1f70e36f5
+a52faf5e28918a4dec9abceb374a2167601194c2b5b44beeb01e3203a82a
+0378af4be9359d36b99521b6b93da7a297b1dc05c54edaa035b5b10000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA5Fo00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F10 0 /0 F /TTA5Fo00 mF
+/F10SFA F10 [250 0 0 -250 0 0 ] mFS
+F10SFA Ji
+4218 2806 M <0102030405060708>[153 83 139 83 153 111 97 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA60o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220669f64824a95af9e1
+b7462e8101f23040cd414ad1ad5fc3ea20cd2b3e75f6ba5e360e7705bc89
+b2e3bf9d3e15ae90366dd842e27734d8f0e0c27a6a076b2c59fadff0ec12
+8400f2a8d05c969a3b3817ad9f981ccf8ee6cca8c5236ec32d047c5cb595
+b4e3e2bcdb983d7b14810f4c5567975b7decfa08dcb923d4ef76014e6ece
+7119e297986961f7aba4ad98225ea6c1ed25b02f4a2f325595b8cddd4d10
+085bce5d2dbf77aa0a40181d2bcafae4abe0b0128ec44e173da86ed26fd2
+b266135f3566bab3a73a2358120237add2d0efb4b62380f68a275d6ea766
+2305076aabafd83c161527b9200a8c64465680e8d626f3c9662f5aa9927d
+69882070a476dd23399cbdf49c8f6da83cb53ffbc2ab9189fb529a614652
+75d93d4a2af2a4bd529a88a496b70b6abc1a72d91cf0087faf95bb6a9b12
+a1d3f5c69427ec3b5117326196458bebc4a07bf2ac9228381defb84d565a
+104d1a6587062d03ac3c58f6ddbe8979cfa3de980a675af65c303b63e181
+a015445a27b3cb04b1635773e8f0c3b6c95b8a844b69db30b74ee4b6f1d3
+8c9439aa9754161e65b5d4ce67f0809e34167542666410a3f9c56253809a
+8dec6dbcabf721c0d5ca6261144924a302842e973846e6f6f50494bbf814
+4049c7cfac9be4774d06653114914308033c25e328af5a4ab42541699492
+fdc3cb7a1c287c3b623230b9f083ec48e34f2857a7bffd03e90700183d0b
+0f8310b4ada2d2064bae1b46c72cfe83ad9e0e818d1d0f3baf70c228817b
+9ec38a785de8d17ba5093765b4bf6c22d6ba40a9f9d80eadad352b33befa
+92a99829ff3f7d917dff22e221617c80860b8057a91ca0397ec4147f73d7
+7713b73da270437a982c2db0a0a45ea60d7108c3ee6c998c56999226149e
+dc27ff93a4562b508c2b2d36b7504f4ccfa9f27c57aba776456575e451d9
+510ba43a472fe0cf34cbca5b5d83b4976d9390b7fc6dabf21c227f4963c2
+24f01d8f5ce06ed8e31b293a57a762c62db3ae155710d0c792a78014ab1f
+b0d4ba14f48fc5c0150aab1cd18e90e4a1b826a36d25a13d61a73e353db2
+ab6c52f562b648f98112997686d7f9cc9b091e8780e3bfe7695bb967d0c5
+9924aea5d79734572c3568f27a4b53722882803cccb3eb6bf8e71374963a
+3a89239361796eb6432d4dc63601f05b78a250ce6ec031c412c56d5e243a
+7ed5cfb66b44c571d5ecc8b5be209ae1a00acfcb08d949bbc5c382e3de92
+eef300faa0b505282e9b58e82301f42dc79752c3673cdeac3996534c25a9
+56ac8bcaabcd5982f6cad6b059332ab3b7dfeb8e74c4a6fcf11f9f7595e8
+6be17bbfeb1d1f4e1552f684259ef3bf25443dc82c98a4e5670a9da1bc38
+1daa61f7e58e768fb26ac57cf76c1854ab05917d6e3f366d241a3118c31a
+b39e31597d4f8b4591a5725ec081d83ad3c9229db25a508a9fbc5030fecf
+4b86a246d210caf9969a2cf191db0d4ba5944d0dec317f71a58bc7654817
+e703e9af9eb4e6941db44b1344e631067ac9301a3b5639ca77329a8a733d
+e53350ebbaa58635ccb16892e56162a564e59ba132f921477e1bb7f5b84f
+6d9a131024895857a972d3dd125fa7ab1492486dbb3c219b989cdf51f557
+c15999460b08993c599587689f6af0650574123a6d97e293acf6f48b3f84
+2a159a71bebc068ff5a5c890ab433080e70a734d75f2b1a3c4c110f871cf
+8a1a31b8491a83841e02734057361ef04c844da7cb24ab011ccfdfc7e8c0
+5afc3cc8e268965810b6d6a441e2076da2f739651cae11715fc8409f735b
+c4c553c2d12cb4744a448d135031effd4b5b0611810744e162e8b81d512c
+63faf3d2c4c02803cfc42511419ed72b575a70ff89e1e8cdc387ff0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA60o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F11 0 /0 F /TTA60o00 mF
+/F11S10B F11 [267 0 0 -267 0 0 ] mFS
+F11S10B Ji
+4188 3109 M <0102030405060708>[163 89 148 89 162 119 103 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA61o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1e31c8
+8c173203a6107d2397cabd68bbc408288f57dcdcf1ba25462a21c2a280fd
+4872197251257cb1b5a68147f0eab49c590d0fc4f101316f75d4d0196e5a
+ac34d7d2e9511628ac0fd24e6ff645e5c987e3cd80b41ff91b50316539f1
+945b229cc2b0fd7a67a73172bf84134051c7dbf945bf36c21b55175b1c6b
+b36f0672f5737fffba364f88ea1255b73fa8ee6092bff85991d33cdca1a4
+a4cc23e5faf71e692c5041decff1e6b04eae13e98ece29596770a98c895b
+225dec5dd89035c2f378a13bab71727eefbdc0cbca7c5ef8cb35ce7c1e21
+a20987e02b1872227ac2149890a99f33e4c14ffa2a0f7f6af0b4d8d559b7
+7d52407f6fb4707a7902fb4d0930e09b142a87df214434e7c49a95b20a64
+91cdd7994b2d38bd136500f36657f6ecc27d53eaec93089e292291d9296b
+891d30464a04dee7e4c852933e00e3309305809538c0c3b9a9edd7626aaf
+6ca17228f379260e938512ceda67808ce4982b30312c8c2473d4a1727cc2
+742d35ab6730e4a615192f13708fd9c9e9fb65aa18e78a1698d1390dd1b4
+8d828d743ccaaaba22181d326cae273cfea381ae1305943dcd8fccac4d04
+f7a53d9dc5f61d9c6b34f33c79abceb357e6540cbe4b49b0cfce43f93f59
+8f0efa3ab63f515cefec093c13ec8df9b98f4502475bd4859ae19d8a2a2e
+1ff887cfd300ad50dc620ba7996ab2d06a330c6004fedb3d71958efa0451
+176c4b1e3afcb48c6560f0e4fe8a302c7bbbd2fe83a4bb54a114a1883058
+48dc2965f310a9d6f4ee9ac19a486b987fdd9ff596013b708e29af08ebc0
+44dc8fa57633da7ec675fa00a692161401fa16244c96460f74549e8daebb
+940f454dfc96316f14ebd9fb9c1d86e487175c282f8c5b3008e378695789
+fee70e0ba828400cc3fd62f10bba3e50ae17105c7189ce026e907621fd87
+07a4cd89b4516b5af98a1addbef0ee4bfccd1f306835b2fbe716187f3570
+5ebfb0e16f98cd24a78c82434903f09e5b0e78c02a43d38bbe6f221dc88b
+adf8efdb08e0ebe4608d4f4392d4d9ecfda871039e0049f0881bbd5722d9
+3d3f784c628ee9910cf824854095a75255953ac6376e83dd085b6741d35f
+604b09473df889906ecfd22a9bc759cdc9d1ee7abfc75213b1d495e4663d
+4e722b58de4d50671c19cbc3a4dbd20ed5e0c6567ad69a0c5203a619ff58
+ee3ed1a9d77f10d64a36ba6f89a629f9ffa2a4f1fd2bf2affb4204d5437b
+540625d7daa43bb790183fbf524d914ac18817aeb295da7b40b97d3d4b89
+54977054e0ddb9e00c4679651b905db04b1bbcb4017e4a666154f3c2ac92
+5db40a171cec499af9da1858234e5e15c4c6590c5b2eb366c9d11b3ff86a
+937e896a0b8d42e1aef576893360709ff76bbb3baa4bee49dbf2f56b84e9
+d2ff6ab36add7128d2864d0958598d86c99eaa799662120463dcfe373e94
+c803657a95a5aa31d66e4631f1a09f9a47bd8b287975a71b42900bd8699b
+9730e1bf655c0f68dea05dad22d99852e444d801a2ff17de73e9ad49a996
+c6b23cce82b661b50776d1be87cf5e16c7c88302824f56dd9eb5ece935f4
+f9a43384878fa1d5634f727ac6a6dbadb51afedcede5e3832e91dda9b171
+399d4f7542589aa47f800feb7172c33a426b58499488facaa1a51ed5a8de
+3acf21da23664db141de8dc183042b73a96ed18089c0bb4a890614cd3a2f
+3c4911c131221865dec83302116d31ad9527433038ffc8d0f96f234ef5e8
+ac69c6d1f5b9aeb3f4a0bc248700ba99bf64aeb07bc7f3f368512c77aacb
+5ac234f9386079b6a20d9998967044c40a948a9eb53c6ba443c39797f1b4
+c0f6d1903d61beff8fbb0ff303f0217db50d3bf6b4b8fad466d1ed0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA61o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F12 0 /0 F /TTA61o00 mF
+/F12S12C F12 [300 0 0 -300 0 0 ] mFS
+F12S12C Ji
+4128 3447 M <0102030405060708>[183 100 167 100 183 132 117 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA62o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb22066a6b46d2cf1e31c8
+8d680a80f464f13349e5689a189f13dd0689e85869e2bbd27eb19374eb38
+071897af922bc3f8ff6b7c3fca4ab2bbe308e84badd13a5b927c626da36b
+1037fa38a19ada6ac72cbaa7ce1cb85eb111d32a1ef92b11aa069b0a273b
+48c617c3358281f67bd01a76b549470528570b0c4d05b950a91475fe2981
+7a0c2bb0b286c50881f2f950fa93bf9806ec786b46525ecce59f4443e75d
+5d7985890e7128177ef8e802f1813332aa8684a83067f590407c2dde2d71
+73e14b887b636aadc7fab122b657dabd4046c48129a3af1103f40a16259a
+eddaf0f051e1753a1f3e3689e35deb19a06b2f3b85dbcc93ba0d60c5ff6d
+68160e7e1c576a9ffa0ab3bfa64730821ccf4ea1fc95e15fc102c355d570
+338a9b5072b4ccbf1cf9392f81cc77cb641160315c4e0633ba976fd4745b
+687108d2dcbc28a4223c53f842f8f3732d98ccfe0db81dc11ae752887cbf
+9b3a755f12ce22a69d74d5627e1cdfe96f7b6170185a428fbecea6dde1d4
+319929e215abd940ad9817fbd2dafbfcf71a02213753bc2f771deb3397a4
+52bc2eccf72e56e569d6c9d14d3ddb28217c69a621fd8f214394d87cf834
+3f530aa72a28658956515e3a70acdda0f82ac1648b1522aa1c30473fb36f
+b54a6abc080c88bef7463200bc3b84fca38f4d5e1e3fb1f8a7793a202cc4
+44b5ac108f2f5d1fc9330975186f2c35636f0eb5e5c4e8d7e20ec2407ba2
+0ab60aac449ae735447a0bd83c9f649a025f215ca3d2c0a063233d231c80
+f2d81d46c475c8eac6103d9711ce1dd986645286fe0a7d6bdd0b854799c6
+2078e169bc4bdeaf54fe41e9feab27467ea91ce80a9ea2526c0305727a5c
+1f010c7bc04e3e1e2719c2c67f2beec0d90c6248f7062d3a86223dbf2f4e
+6dd858ad111e2fac402858eced9ea7c78d239b791f448448cbff2b9b8fd0
+d7d373837195d94f69ef6acb0b58825d45f9494231f949f9338ea5ac1fe5
+e78a485fe2d456bcfbfc77d6875ad95413cc0b05f2fd0b1d5d87bb45adff
+aa97135b0699ae511381c1092d5c9f658f33bff078fdea96425ffd5320c2
+675fc8b58b96f02b8a63c8b0031843430324f55d36c42d9e4a242afffbf3
+f5f5ef2d79584cd9961d62978d8f5b5ab9394b9ba4e9cef9befe2c720a3a
+15e7a4213221320284bfa64ef6eac7907d86a6c4b4a25747ef60d73f889a
+5fbeb0cfcefd06df792a9221ea8d7a63d331c8c120d95b148eff4395527a
+cd9279d0cfe32ecada854c38c85dae0bd54edc6631aee3a5c563a5553fe1
+487e1b6474dc60916f5c26baf2f306695972475809fadd8178ebe0b3e6b4
+98995f5e2f34779a6bcf317ff8e18af39b8ea02426259c38610fa7d4b994
+247e4d1a70374fbfeaed6fddee1b0814535125d0501ee6d5852181262ae9
+c50e8e99460ce2a96929e426dccf8cedfbebcb7845fdac62512145a65636
+4f48c63755a860ed7f0619f80ba6d057960d0ef012c5c2e8389a89e5d32e
+b8a80d3bf67ef8d84d2c2ceafaaae987ec4030146eb511ad6b2a729bc2ca
+f48cc2d0534b88bca04cd2d60814a46528d0e5e02e933552f1cecb6c5b58
+8fd53c5a53f3092ade44eeb11b399f6a3b90c52fae04861e23ef6d113547
+56f5ead2292e1b05a3fb7c85d6911a556f26a22c15a58c3fa5e46886bae4
+8d0a6baf057d60f763b1901866542e20425cc12e0203575c7f133ab80ffe
+5b222bb798ea64c93abdf1b85010d562e35b3f24064614df3942d90e6c83
+0ed5570bef45451e1d1c5fe32cb9efca3ac8e3a6abacc7c75c02db4ff81a
+51e792507e2d45b4685f270e703d63e15e0c7dabacc30e7ac546fcbb588f
+1043bf9214d0606f29b5e11013bde03b272216c8f7e0b98f8ae9da0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA62o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F13 0 /0 F /TTA62o00 mF
+/F13S14D F13 [333 0 0 -333 0 0 ] mFS
+F13S14D Ji
+4069 3823 M <0102030405060708>[203 111 185 111 204 147 129 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA63o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206158487fb3119fa92
+a8a86034818e39ec9fc196fd03660d0897479998880acfaf10dbf270706c
+28fa707ce4dad00c8e93cc045f9a10f475da3df377bf5ded23dfbab06e55
+cc7d6cf560ab7dcb7eefb7cf36eb09d88933abf76e7e0394c20619811a51
+443bbfa69c436e08988379dbefa860397a3f0d85b5036475ef5b3ba59810
+143f3e33c935c2c9125c1df9354d17924ca77a47a34ec1c15611c5ac9f6b
+56e9758d7af90235b8ed96875cb14e2323abefd86a36c74bc59eeac84fe0
+d013f3515cc05c7e5f694e9fbbd43f931d6afe14238301aaad0a3c19b198
+b1efec19f875db470cd5db8b58d1a9715b2e1082fcb22755ed511d03db7d
+026c3e0b9897db3d94a72b9cccc5a6460baa0834eb22c9cd4a783353c578
+013ecb0f00144828def066ba832978414b051ff879bd7aa2b1e60ed7b068
+7564600d3b11ee13d514044212f44c470186e217cebcd796acbfb8f18a5a
+b262054a3ae208111ea1daec5d7c42d978501a3a924f6acdcabc5c2483b6
+9a708086b1f1477f78736e10664014b5f7278c223ad56498da95a4be6335
+a2ec179f528e57e99e177cdc7ee01f27e41cd84d37adfac2dc7bdb9272a0
+7ad37ac91ea2c5b6801d3f62417e87cfad0f483e9bd45e55c4cb4911f711
+a55886fea6300530aef55669bf62569d023c1ddd2ba2d038296ba4b6234e
+6a7fd36a75b2a372f98a1ed02aacaf6506c2b8deb73aff137aa589043226
+cb1929a8d09ad7dfff5312d1c5a3c5a13b48af57c294857ccdfbe5fd00fe
+24562fa7040ce5c75ab6ec8362b0fc8de4e7d7e6faeb8b3fecd5928ee6b7
+95c15c7fde8a021278bd25aa236c5e7b91421aaa11710145547210fc9ea4
+5cad7bf0899e082aad912fc701a087a9bd85560095b9fa079316ae4ff508
+e33daca2e55f687982dc50603d7311a9cbe39ab38a73f5ec2b4fd3b46775
+951c0082b5f434756251fb779103b284771c9be4047024d30194d9c338ad
+2b1958e7137e74fd3cf1753a68f030d1e48a99a92131937a7f494fd3bdd0
+e707409d2eec84e68de07225866f2401a10cdbf19d28ce0e2254161604a4
+4e74cf7c6279d55d39a548121129b619067b8d68db383f32a065bb526c24
+b02ef9a9c354d4def81020323ea06c93d647e6fa2f221b047a7ecc8198e3
+cc5e16865013bac7a20500895114c5d97de0c9a3726f288a42254e2204fa
+14ba9d4fb8f1b4bb44841d3d70a6d754b193d701d66543798ab1d3e4dee4
+9e89b21b31f1c07a07ab948a70bde185c4101d3c9e361eb67c255f3bc5a9
+0c89f81def08d4180b0d5e8d0b212e545485fea50427de790af06413e931
+4233d87df73e012d343f71b3a4e0da09ad443e47b0bb230cb7cdeff909ca
+ce2f15b2e2e1807fde167179540fd7e916b69f0d277cf0f91af017925581
+d9a1d66c86d7834f2af841ce657288cbdfcb6c0d07abdf6a0699fb8f73fb
+f5d08ee287c3ce53312842e813ab4675b0d072e1d152f7758cec3abe9f68
+62252ceea015b7587db6c081fed9efae5da5380a3ecac1f0a5391245c28c
+9f6d1f20fa547aea71f89fcba2d979a0215776dd62d4790f202b36db791e
+ad6e7b6dce1612ca4ac3d02d4aaf9322d34ebd6c37e0bdeb11b9c82bdc97
+5ea90afe2d06ef815b2ed0581666f7e3bc9466a68d51e1bd00c8ae6bb94f
+d0fe97fdc276f28d5b9c0200492cc41d53f21336bb0e660e1b2758da5452
+bf6f0638b9e50224c3073622767433c92a9ad7a79b1abcacfab68a0e70cb
+5353fc54f6987b13d84d79b5d954f7b3603ff942fafc4460564d4582bbc1
+3ca21e59a5556335ecc99f3b78a254c52ed6a79ead46d6280e91a5641e67
+a85529b255e42dd69656fdef1ece30227b328d980fe6082bb624960000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA63o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F14 0 /0 F /TTA63o00 mF
+/F14S16F F14 [367 0 0 -367 0 0 ] mFS
+F14S16F Ji
+4010 4238 M <0102030405060708>[225 121 204 122 223 164 142 0]xS
+4010 4659 M <0102030405060708>[225 121 204 122 223 164 142 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA64o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220616fc35b8e91f4411
+23fc68c58b5f46a1f1275e177c6aa9c2eed0243cce590e527cd2227f8444
+14cf47b571f571784ce9573c21d7d38a8b1f3b5c5b80564c328122627f3f
+ac24de4871f2b61b498c1035317868d10aec4be63ce71d6eb7894d350070
+e2d3bb54ff08c43ee722e479e9be36817aeb0f94485e836a5e505477047d
+94ef6bb481178e2636db057ffe2bd6ba3de8544935b3d2c20e99196d9bb1
+847ed930b62c48bee95c908968e4c681545cc28f60f97ed41399a3615689
+6de5fdb9d0a5f0abd2fdb820eaad1a8f08dad1b1f440e099959ed4d516db
+48ae31477b68fa2908927032ac27a55ac3cf78a5e7be83075d2065f47e20
+a3a47beb91299bf9bbae879b26794c0e5cb4e680ec7a6dd1498e36f1fbee
+8a4d52c01ae62ed702f0c1f83b39a7129db168e37b5dae7b92d5622ce8a8
+91120de77d44f809ad1e6cf23ac58bcc4b46524801cee0f6fc7c68d33c86
+0d7ff13d43bc160567ebe1da324107967ed860c79364f8e8ad1ad7f0b0bf
+36f35eb2d1ea1fada92cd8ca58106c9f57f5d9ec3562775df931dd704510
+02b9edb700fbe3f89ecc31417ec84400756e2a243bc34393908dcca3c0b5
+4dec679d743a79ce99a4c11236b9738f04e0cb5af2f57ca5fcc258a0a24d
+60805661bfc9dcad4e514d5089a67ed3f9f73e39b2c1e8e0f9a48d7ae38a
+cf0c1822d730ac58cc5ed4094b96b1d42bd7a4a1493f712a6d160a6d71df
+28e64d9e168b21f188b034c1163c75b0e237fcd7fde9216848d62075c3c0
+3e332de3d9078a9adafb3667a456abb812ff43738c70ab9954d70541a0ad
+823bef3acad4b39195cea348d88a6992440ae3a11e65bac8009eff46d52f
+ab715920e8be65cc950b41190fc3ec3eb9710ef499cdcb28b288771a148c
+2c68140fbe14229148989e5f0f57de39659865c5514eb54cf7960fb50c34
+5fe43eaf66c115e73c8c7c344c0bf8af82c6f3ec5bc2d4804a8c30bb135c
+783b2b4d782235e4734c4cda9fccb033396448b2bb417d58a06168044397
+92b816cab67386e1bee2d4a4fe0f1581ab509613c5658f55e769a7eb49e3
+a89a6d57c389cb0882d32528e2545f8a48eb3838b63974e74181d68d27fb
+91149cb2c362e7c1abaec89872358cd66895a6eda09a1fa84c234ab03c7e
+8bf1e84996115a76012491925771a863d27c46408ffadc375419dd7a90b8
+943b79131747572117d6d98eab875f4a70036f7012be1a9fabd106401489
+e16c198b1fa9fa9b5ed0b0445f00fdbd577ac1534112f51510f74bd87bc2
+73929005be30c102d63b7251697512806da51bdec65b624d8391f29dea66
+9374ff3b6eb2b580e2735de61a835243095fea770d56c0643c0fa15e47ec
+3a2ae9c8deecae7bde01e68ac2ec108fe23f3370c2823598a291cb7dcf13
+e8174b1c55f58b1721904f7f72fd3badd8bd0c65694608b7cc260c5c4801
+53e32fc0d340ab604ac10fa5ce26c0d03745524deb9fd8cc7f9a1bcd050c
+e0cb6a842dfed52761259fae8ca2e2ffa8e52fb637f2db6aeaec66c1017b
+64d6432884399931893f49fc96b719c7650db46ef7743e6ae5e062c39912
+5cc41866ba23c2ce5af2dd0896514145a2aca6d4ff8e71d169b064cacb3f
+2cab77b34b2e7b6efa103a0500bf02453e327ddc59edbc07a8feec4d25e9
+dc9d86f7c65bc872188da32ed8a0edaf431cc32abb5672fb61256d55b6a8
+9da111703d609d59f8bf4a34cfaf1cff1b711314b8cd50b3eb61e99b9fcc
+03e121448636749c1289a892ef822771f7637305eec6f2a799ee0f4ab30d
+f3599ff553d7697408c67abad9f8131e141e2d65623d89574472c5baaacb
+df67ea90065c766f01ef39449eff529461df1673cf8d8d818ac87a760000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA64o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F15 0 /0 F /TTA64o00 mF
+/F15S190 F15 [400 0 0 -400 0 0 ] mFS
+F15S190 Ji
+3951 5112 M <0102030405060708>[244 133 222 135 243 178 156 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA65o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206179c29b10360f66c
+a9dee7eaab7087c8834ade2a458dcbc6003210ab90663c579b16d5f2ce6c
+289056f18bbbaa7aa904d32ae457b267501aa32481206d0540c6bba57505
+8694477f31f801722d806719a2a318e17e8430363366539a22b2558b1534
+bba96abc799d72b761a18b2c5ca22c2a3c6303914df51cf07491bf3b7244
+369fcc5da2eab0caee099fbbb0e2f438e76541ae37f9f3d119c621e5a51c
+a572a7c5b40ecf16281499ddc4df140e69be0f21ab05feaa553a96fb69c8
+d9b701aa432358791f0efb0ab57c37135b2c1d1012b3a87c88a1e8a1a275
+3eed718bcc969bf3d5875adb9c8b2200564fdea69b4caeb28e464106e61f
+c5187d0970a0e7c36c269bce3bdbfbf22fd4f1bc331689d1530bb268af25
+c45973a5bec46df80df4f0508ec729d165203925c00b1c73901afdee68bd
+1847b34a10e20895dda626c43113a6e11c32bcd477c84badbe23b0ca40a9
+4f0a0701a2edf14b4c675f538f80b98275c1f2c13cafbf673b46324465b3
+544c4a0dd3800d84bbfef594166bddfe875cbaaa9516fe53048319233ad7
+d73686dae086514c82a1d552d1b8f3a6df1b791fd32a6a283bdd970fd71c
+850f34658e75c599798ab218c3156a8605bcf9d515ddc1b8d0005576767f
+a29d14f78c241c98bbfcb13a5cfab805430803fa2c55076ee34a5eb931a6
+a0662c544d59541670e9590e47ff41453b3c561c78d712d270fceafa35b9
+0713c96a1ef5fabcde661f0989d01a640511c47de583b8057d975c2a1730
+9a663389f271616151f02c0eb8e072251bf1146ef961ce587d4a486c6848
+549f331b2ba7c9088f24fa105c4f2389debbb3c7d4368b838809bd4198d4
+b617b420fa507c503ae5c217e416b927495842333a8e251fc075be16e338
+51d62287e9a272f4843f62241e508b952d45ea728574320b996861f06f83
+5e8028a69dc579fc660dcc6afa67f4f47f94455cd2b29d326b7cda83b9ce
+b204d080adce1134af535bfd59b989a29b9b84e3c73b5f1a87068b892236
+23efc8cb6f5677417d1d3cddd5d367fc20895ab7671d1e997b5f12668062
+c18059ecef3fe26c4b8a8103bcaf8767f1311bc2866b2fd0432208e63020
+f41007d7a9a43bf0a30eff53903299c2d88fd59163f9b7415653cbee5a60
+2c50c607edbf1bca3157aa3a013c4377c3b5088ff717e794ba8949e91a85
+e204ffd57976d7de79e70409e3a6cd0c180455719ed09ebc5888a175dc20
+735e3c69484fec32ad88014bdc0100e62455a6ce6be23b6e306948c9ec8d
+98ba3e89a4858f7c4537908e733840cb3897529efe2bdda4192cae694ea7
+80edfc2c1f75d01b1a9c911e839f0776b7556e85348979159c2c1c9f1051
+141da74db4bed5098c80ff84d5187ca88570bc6f512f9a204d093cd6bbfb
+438fe9d062a41575a6f8a5f7b44f9c82faac321ab9f4850c0803148cad84
+b339e314ffdb7c8dec381e0fdf3c3757d83102e26259909c380537f66182
+fbbf656daf939e7db6c69bfcf79fd281931f02ea1f33730f42d735b18496
+d6d9f08ebcfe70c55d966f671b28e9fd10e1b4151782eeeaf357f95a4319
+0d5b124f60c9a9c9af2d2a3f5c594f00628c46f13637d205428c4ce1dc88
+22e4d41e9fde4b177dd60e7be2fcf8d14d1f99a996ffdb71d712f22a91ef
+8060d241b397dccad9198e5134d69c2ebb566cd530fc7c29a7a70d2bcf7a
+d30c7215b65c686e676e1dd88311cb0d35d2e3c13e5a7bc1df44275fb7b0
+8a801c63f17e987643c7ed845713454afda90c825f0af5d8945429115a8f
+cc65d3c2372ee22d1eb7764484ab397862e8c448479d4fdc5ca1d18abf5e
+6b0b717dc116123298a80f59db58fa03af2027b2efbb59e115c30f0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA65o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F16 0 /0 F /TTA65o00 mF
+/F16S1B1 F16 [433 0 0 -433 0 0 ] mFS
+F16S1B1 Ji
+3892 5602 M <0102030405060708>[264 144 241 145 264 192 169 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTA66o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb2206689a2c7f31fa5794
+54a6cc5be7a453c42c272f1015ef94322c3929a0ddefb938ab1522150251
+fdd9f6b70f2e773d4f8663aeccb0bfc787064307fa1dd2f8bc4dfd5c7205
+d9853547485a8d4f01ac00b1b09d2057d65671f1ecfa41c8223a5108e94e
+eed8977391d4cdf5cc5898097984dcead7d3ea18561ddcbf4d05252b668a
+16e0b09a7b46807271a79103ee35cd33f3f5562733fc8557b69e1eb31acf
+17667bc44a27417541c228ececeab7e30fbda792ffb1d12490b7a763dd92
+7feae2dd8a29c69e1c33dc198ff3d1cfced187c07e67b604ae0d38df8d9c
+f97994f52049867475193872d41dd75f54fd685f66a9ed9804118499b261
+00ec06d93e56caf1ea7fd932421a7b807451acdfe8b949268673a769babd
+2fe767a6b050b34ff782968242657ff47cb62cf2a1616c809340e4fe22eb
+ad2944863557a13c39e581d23eac63f64dfc9276c0341b148f86cc6d3116
+6bd106f158615eeefc789238bf3b2f9ecfdc343e3afe48ff47146aa2af53
+d3879ea5dd09f2a25db26346d5a113284a48541d9a940e9f8b9ad98596f0
+c788a3dcbf41c177bc55bba52512f887b2c5e8776efb804942e49ecfa60e
+10b3e0a6a136e6da02b00b7a95bf805508eb0275a9e243b68c49a8554717
+3a1f750f860d6b50681d877660e47696b6a9f70ee9642d77678d8513fcc5
+da51a824f7a7a163b3416ae572593eb6e32392e6c4699995a1da11cc29c5
+ef52cbe73f49a3159c031ac87bbb2336e3d2618537c01288ad3c11f8f837
+aea942a32f1a9388126758aed7558987937ba918bb20896e46f8b80493b7
+827603e8e11953a56e2d406baf573f366a6c325d9585a36232356c876d22
+38917e0806d2de7624cfb33d7c2a6da2aae20ad18a8d5738d747b5cea624
+0bd371cfd8e59232a1b8f953aafa3065d393ffc28479fcf15350375753e3
+d8d4169d64023ad9200881d358cad783a45a67ae18f81263f801df120e8c
+a9cd4636fd19024f4d7d50d84a4dbef10941e5b86650d89013c4aadf1206
+411b1c84e45f3baf8b5984fa9c5043dda578b736a14bcbdc7551a0fe7e62
+2e5055da5e7b6df296d868970d9589482e54edfdcd380850b2877f30d6dc
+3fb72877575c1851710095b46311a4c3dd769809e100ab6dba6e80f4313e
+6417460d7d99dbb9002e876ece579b6479c49d248050c5530883c07e5720
+b72e1543a51f7878463a760d7160da57b2c7cdda23684ba394f4fe456487
+8e26926386884961ff02a917786958ace479e4d34b42174558ba65e5feb2
+3708dc192d0ee9ffe2fc272aff62b3caf0276f66d18f838fdc15adea9faf
+86c6e87e48c9997dd940d6a3a46063406a40f2f44758df815aa75453a10d
+254f082d5abf98176fc8340a575a47b93d3bc46bbb2790d9fe6d9fd518a6
+fb3b4fe9331f2ba68762cc21c15e4a429217f86a26e802597785c3354878
+653c0c48ae31cd5eafca143ebe4a5ea475b5f10e658ed07cbc1266547d12
+d0c62598e3f3e802e53d0b99164ce825ac5165aa3e9fd4761c5451182e60
+1937322daaa63777230f33f9d45d638d32f5cf61868cbdbaf3b056cd9bf2
+b496a029387dbf63cd6cc636c2cbf3ce0c07e518c521f7b4fbd7b619f4d0
+7e9ffdeec465771a9ca8e9069f52eaa88cad66d47092ac1f5f52be036aed
+d2d6f36153e22fa251aaf8b10da257dd14cb46163723013df097ffd16c33
+ddb8d3a4dd2fc6545550e4081ae70de8cc65a83f220212744bfb58cd2cd7
+29b17f2b842e4138a307cfa37adaaf9178ee510e2fd3d3f43b7efb0ba3f7
+a59e6ebeb4f2a35e908016cdf0383304b2cbfd02769cfd5ac9d8eba752f2
+ee6b8cf7287ba98fd5b2cb0e61647483659cb6b97f1ac442dac87c0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTA66o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F17 0 /0 F /TTA66o00 mF
+/F17S1D3 F17 [467 0 0 -467 0 0 ] mFS
+F17S1D3 Ji
+3832 6132 M <0102030405060708>[284 156 259 156 285 207 181 0]xS
+25200 VM?
+11 dict begin
+/FontName /TTBC3E32E0o00 def
+/FontMatrix [1 2048 div 0 0 1 2048 div 0 0 ] def
+/Encoding 256 array 0 1 255 {1 index exch /.notdef put} for def
+/PaintType 0 def
+/FontType 1 def
+/FontBBox { 0 0 0 0 } def
+AddFontInfoBegin
+AddFontInfo
+AddFontInfoEnd
+currentdict
+end
+
+currentfile eexec
+9e67edc6f3ddb54d987dfb0ad4392351758f10eff40ef287a1387512b853
+046f6e589e2c97d48fdb38d54b68757f1dc48a239a5da408c2bfd473eac0
+3ab6b0025b87770e5f3b06904c282a51ee189ce871258447b47d83c5fad2
+326aa26e4c7f0ff21a841a463c859f102729802bbfa6ac0c2766f6b09317
+a247f37b339b99b7588bee2e861ed9de7a8990c512001ce21da50f4516f7
+553cc5df31ac42402c2b4e2b106773ccdac45a8dee89d3d35ce4f9afb022
+79592359efd5293f35df57216c84236a1347e922a61c45691be2c137b65f
+08f4b3113b88e58dce4bd559387db7a00fe16460e5ab8fc835ea6ed9b938
+610bff26bc7ddabb1af7195ef7e654ee14a569bb220669f64824a95d9550
+e6b732d24163e5f1f14c0d8e68bffa74a7e923785ab628ea1b858f9c8898
+aa3a6a215f95d69b979cf88a88e66315daccf6b3e567737c55e3cf437e98
+6959eca072eb5947c0a09809b4d3d5430005f3fa1b9f519f0635d2e185f7
+4e1eec5a19e358c5609375ecd636499ee362b08643e4c00019c76096365d
+ae34a30b033cf6378a4a47f08172f46c61310b971071ca9fcd6dcd1b9ad6
+63809fcecd4cd2183f3a5a9de5c683838022bd1362f59a5b864d29a4d185
+4ca19a30f903bb33d1ca039f71e2039cc453297c2bae1af6d32d72092a4c
+b00fc35b50397d28064e83425bcb8aa2802cb275252b0e70d9983b36eab5
+6caeb1305e4f95ac5edc55b2d2ec626088c80766ae22d5f2ed6bd822b754
+d1c1004291d98617b4ea4915642deb170ab38bcf01dbc7d461b8c4bbde17
+e6745cf0bc1d064418fbed78f744269daef38817c6f073c543dbdf219dd0
+1846e629428c6636dcc0d80038222a8ef4fe9a380b2f0e6e2c4bca8c39fe
+f4a6d3b66af29ba79996bdb5389abf14ec305653c6de8e1b55effb93dcf6
+6bcb0eec3c735bf981b03907a3ffcb25b51f3f6b7632ca38e91975702745
+98993eaef2ad15901aa3ef965171e4a386b664bd21f943b3482afd2c1412
+151ad3e78b340945c8c5faadab4d79d6b3e1017cb933af412dcbfb368b7f
+4790d99ab75ad1715248a31296f12d99ae05aceaa4d28ac45fb01ed9abdf
+c7eb1ecb1de617a14454f6ba1578cbefdadcd3684cc47b453c763c730436
+8f32d78e11012ea6d3d16ca5bf67951a742d405591ac3ee6d5164e890891
+e10c21777eb10661f8c88e5bfa6326d51a8ca574f3321b5cc05631bf331a
+ed2f169a77e8ddecba5e03eb7df19b634f20a0353685b98668fb79295051
+ce2ccd8487a1d0da7d9bb3dd3cb1e3df220fc81841cbd0b3719fbfa27809
+379e5f3e7900be85b9e2bee893085d9bd17b9cb7174367d80bc06d7cb841
+566f2ac1d0e5a1f01dc1cdf58195977393929340b5746f4bc1f3e3ee6f5f
+df3941a5deb99672255cabaac0ea3657a449c28267bc9dbd448fdfe12b52
+fe91ed89405246fe3b6d63c89536f8659fe660ae005adbf01c3c2729913d
+2117f8e2dec91751be554a057dd7998e15b9d02377d6a6d5c83b1091fb8b
+1c7c358f13b4dc00839db3fe4cb9163f5ffc725b1561a2d3e4faab96bd11
+bcc159c4be2dda581cd695dd41635fee2c8b1e5d8dd4b35a59bdcc368ab5
+9bb2ce9799ca98dffa60212f587b7f99b3788f3b052c7a83d31ede5e21cf
+ccedc821552ae0faee16444c26e489d37034f8ba4c811ea5728bc16dcf9a
+217958e8f745e87c917536ff3899b13d00bf631cc449eda3934a726bce8a
+154519d6192fe111443b7d039f3844f6a95bc56142d31970ed4a8e7936b0
+0ff7c795cc2bdb4b82616d7fe32c0a76ed3dc837b238905ebe9cf2d9bb7c
+62bf9ef3fd62d6adbd8928e5cfcc6e01ece9fdc2496b7eaed14d0dd56d31
+123b9ff1712c0e67d00c73ae48d61688a2bb8dcbf8a5a8523aea76f8f107
+554df15d3fc6db019c97efcd6c3cc837a222851ed21e92e0c658a556f7ee
+52268c8787600227471918fa7e32d787c76277b7eda00bfa4fcd5730b724
+20333168b0b79fa2ae46c639399cfae05eb45df153448d831698d38be55e
+1aab21503e8011f9889d8ed64e9d29ac7e298f1136d7cabda06b452c1257
+5d655523016b8302cf0e2d66b310f6ee0cb7e725752b4f2c346b89f98453
+b2abcad50dac1dea9c9d842fd37a409b73621d99599d9d6fc10d2441de0f
+808e63bed2a5d2c2f6b34098aa3facbf6d379b4d1575008ba866446ca1b6
+8aa5d4961e3c2f05b4beb6fc4695f7dea133aba05385434a26db160000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+/TTBC3E32E0o00 findfont /Encoding get
+dup 1 /E put
+dup 2 /I put
+dup 3 /S put
+dup 4 /hyphen put
+dup 5 /T put
+dup 6 /e put
+dup 7 /s put
+dup 8 /t put
+pop
+F /F18 0 /0 F /TTBC3E32E0o00 mF
+/F18S215 F18 [533 0 0 -533 0 0 ] mFS
+F18S215 Ji
+3713 6730 M <0102030405060708>[326 177 296 178 325 238 206 0]xS
+/F18S258 F18 [600 0 0 -600 0 0 ] mFS
+F18S258 Ji
+3595 7407 M <0102030405060708>[366 200 334 200 367 266 232 0]xS
+/F18S29B F18 [667 0 0 -667 0 0 ] mFS
+F18S29B Ji
+3477 8158 M <0102030405060708>[407 222 371 222 407 295 260 0]xS
+/F18S2DD F18 [733 0 0 -733 0 0 ] mFS
+F18S2DD Ji
+3358 8987 M <0102030405060708>[448 243 409 244 447 325 285 0]xS
+/F18S320 F18 [800 0 0 -800 0 0 ] mFS
+F18S320 Ji
+3239 9893 M <0102030405060708>[489 266 445 266 489 355 310 0]xS
+/F18S384 F18 [900 0 0 -900 0 0 ] mFS
+F18S384 Ji
+3062 10906 M <0102030405060708>[549 300 500 300 550 399 350 0]xS
+/F18S3E8 F18 [1000 0 0 -1000 0 0 ] mFS
+F18S3E8 Ji
+2884 12034 M <0102030405060708>[610 334 555 333 611 444 388 0]xS
+LH
+(%%[Page: 1]%%) =
+%%PageTrailer
+
+%%Trailer
+%%BoundingBox: 18 18 577 824
+%%DocumentNeededResources:
+%%DocumentSuppliedResources:
+%%+ procset Pscript_WinNT_ErrorHandler 5.0 0
+%%+ procset Pscript_FatalError 5.0 0
+%%+ procset Pscript_Win_Basic 5.0 0
+%%+ procset Pscript_Win_Utils_L2 5.0 0
+%%+ procset Pscript_Text 5.0 0
+Pscript_WinNT_Incr dup /terminate get exec
+ehsave restore
+%%Pages: 1
+(%%[LastPage]%%) =
+%%EOF
+ \ No newline at end of file
diff --git a/testgraphical/source/CallExternals.pm b/testgraphical/source/CallExternals.pm
new file mode 100644
index 000000000000..a0a3b1ae716a
--- /dev/null
+++ b/testgraphical/source/CallExternals.pm
@@ -0,0 +1,539 @@
+package CallExternals;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.29 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&callphp &getPHPExecutable &ExecSQL &callperl &getPerlExecutable &calljava &setJavaExecutable &getJavaExecutable &setToolsPath &quote &quoteIfNeed &set_logfile &close_logfile );
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------------------------------------------------------
+# small helper, which replaces the return code
+sub errorAdaption($)
+{
+ my $error = shift;
+ if ($error != 0)
+ {
+ $error = $error / 256;
+ }
+ if ($error > 127)
+ {
+ $error = $error - 256;
+ }
+ return $error;
+}
+# ------------------------------------------------------------------------------
+# helper to call external php with popen
+sub callphp($$$)
+{
+ local *IN_FILE;
+ my $phpexe = shift;
+ my $phpprogram = shift;
+ my $sParams = shift;
+ my $line;
+ my $error;
+ my @result;
+
+ # print "Will send: $phpexe $sParams\n";
+ # log_print("CALLPHP: $phpexe $phpprogram $sParams\n");
+# if (open(IN_FILE, "$phpexe $sParams 2>&1 |"))
+ if (open(IN_FILE, "$phpexe $phpprogram $sParams |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ # $line .= " ";
+ push(@result, $line);
+ # print "callphp output: $line\n";
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ print "callphp(): Can't popen '$phpexe' with parameter: '$sParams'\n";
+ $error = 1;
+ }
+ return $error, @result;
+}
+
+# ------------------------------------------------------------------------------
+sub getPHPExecutable()
+{
+ my $phpexe;
+ if ($OSNAME eq "solaris")
+ {
+ $phpexe = "php5";
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ if ( -e "/usr/bin/php5") # Suse :-(
+ {
+ $phpexe = "php5";
+ }
+ elsif ( -e "/usr/bin/php") # Gentoo
+ {
+ $phpexe = "php";
+ }
+ else
+ {
+ print "getPHPExecutable(): no php exec found.\n";
+ }
+ }
+ elsif ( $OSNAME eq "MSWin32" )
+ {
+ $phpexe = "C:/programme/php/php.exe";
+ # add second try (xampp)
+ if (! -e $phpexe)
+ {
+ $phpexe = "C:/xampp/php/php.exe";
+ }
+ }
+ elsif ( $OSNAME eq "cygwin" )
+ {
+ $phpexe = "/cygdrive/c/programme/php/php";
+ }
+ else
+ {
+ print "getPHPExecutable(): unknown environment. ($OSNAME)\n";
+ }
+ if (! $phpexe)
+ {
+ print "getPHPExecutable(): ERROR: php executable not found.\n";
+ exit(1);
+ }
+ return $phpexe;
+}
+# ------------------------------------------------------------------------------
+# helper to call external java with popen
+sub calljava($$$)
+{
+ local *IN_FILE;
+ my $javaexe = shift;
+ my $sParams = shift;
+ my $sDebug = shift;
+ my $line;
+ my $error = 1;
+
+ if (! $javaexe)
+ {
+ log_print("ERROR: javaexe not set.\n");
+ return;
+ }
+ if (! $sDebug)
+ {
+ $sDebug = "";
+ }
+ $javaexe = quoteIfNeed($javaexe);
+ log_print ("CALLJAVA: $javaexe $sDebug $sParams\n");
+ if (open(IN_FILE, "$javaexe $sDebug $sParams 2>&1 |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ log_print ("- $line\n");
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ log_print ("calljava(): Can't popen '$javaexe' with parameter '$sParams'\n");
+ $error = 1;
+ }
+ return $error;
+}
+
+# ------------------------------------------------------------------------------
+sub getPerlExecutable()
+{
+ my $perlexe;
+ if ( $ENV{PERL} )
+ {
+ $perlexe = $ENV{PERL};
+ }
+ elsif ( $ENV{PERLEXE} )
+ {
+ $perlexe = $ENV{PERLEXE};
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ $perlexe="C:/xampp/perl/bin/perl.exe";
+ if (! -e $perlexe)
+ {
+ $perlexe="r:/btw/perl/bin/perl";
+ }
+ if (! -e $perlexe)
+ {
+ $perlexe="C:/Programme/Perl/bin/perl.exe";
+ }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ $perlexe = "perl";
+ }
+ elsif ($OSNAME eq "solaris")
+ {
+ $perlexe="/so/env/bt_solaris_intel/bin/perl";
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ $perlexe="/so/env/bt_linux_libc2.32/DEV300/bin/perl";
+ }
+ else
+ {
+ log_print "WARNING: Use only the fallback of perl executable.\n";
+ $perlexe = "perl"; # FALLBACK
+ }
+ }
+ if ( ! -e $perlexe)
+ {
+ log_print "getPerlExecutable(): There exist no perl executable.\n";
+ exit(1);
+ }
+ return $perlexe;
+}
+# ------------------------------------------------------------------------------
+# helper to call external perl with popen
+sub callperl($$$)
+{
+ local *IN_FILE;
+ my $perlexe = shift;
+ my $perlprogram = shift;
+ my $sParams = shift;
+ my $line;
+ my $error;
+
+ log_print("CALLPERL: $perlexe $perlprogram $sParams\n");
+# if (open(IN_FILE, "$perlexe $sParams 2>&1 |"))
+ if (open(IN_FILE, "$perlexe $perlprogram $sParams |"))
+ {
+ while ($line = <IN_FILE>)
+ {
+ chomp($line);
+ log_print ("- $line\n");
+ }
+ close(IN_FILE);
+ $error = errorAdaption($?);
+ }
+ else
+ {
+ log_print ("Can't popen '$perlexe' with parameter: '$sParams'\n");
+ $error = 1;
+ }
+ return $error;
+}
+# ------------------------------------------------------------------------------
+our $sJavaExecutable;
+sub setJavaExecutable($)
+{
+ $sJavaExecutable = shift;
+}
+
+# sub getJava14()
+# {
+# my $sJava14;
+# if ($OSNAME eq "MSWin32")
+# {
+# if ($sJavaExecutable)
+# {
+# $sJava14 = $sJavaExecutable;
+# }
+# else
+# {
+# # HARDCODE!
+# $sJava14 = "C:\\Programme\\Java\\j2re1.4.2_10\\bin\\java.exe";
+# }
+# }
+# else
+# {
+# if ($sJavaExecutable)
+# {
+# $sJava14 = $sJavaExecutable;
+# }
+# else
+# {
+# # HARDCODE!
+# $sJava14 = "/opt/java14/bin/java";
+# }
+# }
+# if ( ! -e $sJava14 )
+# {
+# log_print ("Java14 not found. Is searched in '$sJava14'\n");
+# # exit(1);
+# return "";
+# }
+# return $sJava14;
+# }
+# ------------------------------------------------------------------------------
+sub getJava15()
+{
+ my $sJava15;
+ if ($sJavaExecutable)
+ {
+ $sJava15 = $sJavaExecutable;
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ # HARDCODE!
+ $sJava15 = "C:\\Programme\\Java\\jre1.5.0_22\\bin\\java.exe";
+ if ( ! -e $sJava15)
+ {
+ $sJava15 = "C:\\Program Files\\Java\\jre6\\bin\\java.exe";
+ }
+ if ( ! -e $sJava15)
+ {
+ $sJava15 = "C:\\Java\\jdk1.6\\bin\\java.exe";
+ }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ $sJava15 = "java";
+ }
+ else
+ {
+ # HARDCODE!
+ if ($OSNAME eq "solaris")
+ {
+ $sJava15 = "/usr/bin/java";
+ }
+ else
+ {
+ $sJava15 = "/usr/bin/java";
+ if ( ! -e $sJava15 )
+ {
+ $sJava15 = "/opt/java15/bin/java";
+ }
+ }
+ }
+ if ( ! -e $sJava15 )
+ {
+ log_print ("Java15 not found. Is searched in '$sJava15'\n");
+ # exit(1);
+ return "";
+ }
+ }
+ return $sJava15;
+}
+# ------------------------------------------------------------------------------
+sub getJava16()
+{
+ my $sJava16;
+ if ($sJavaExecutable)
+ {
+ $sJava16 = $sJavaExecutable;
+ }
+ else
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ # HARDCODE!
+ $sJava16 = "C:\\Programme\\Java\\jre1.6.0_16\\bin\\java.exe";
+ if ( ! -e $sJava16)
+ {
+ $sJava16 = "C:\\Program Files\\Java\\jre6\\bin\\java.exe";
+ }
+ if ( ! -e $sJava16)
+ {
+ $sJava16 = "C:\\Java\\jdk1.6\\bin\\java.exe";
+ }
+ # }
+ }
+ elsif ($OSNAME eq "cygwin")
+ {
+ # $sJava16 = "java";
+ $sJava16 = "C:/Program Files/Java/jdk1.6.0_16/bin/java.exe";
+ }
+ else
+ {
+ # HARDCODE!
+ if ($OSNAME eq "solaris")
+ {
+ $sJava16 = "/usr/bin/java";
+ }
+ else
+ {
+ $sJava16 = "/usr/bin/java";
+ if ( ! -e $sJava16 )
+ {
+ $sJava16 = "/opt/java16/bin/java";
+ }
+ }
+ }
+ if ( ! -e $sJava16 )
+ {
+ log_print ("Java16 not found. Is searched in '$sJava16'\n");
+ # exit(1);
+ return "";
+ }
+ }
+ return $sJava16;
+}
+
+# ------------------------------------------------------------------------------
+sub getJavaExecutable()
+{
+ return getJava16();
+}
+
+# ------------------------------------------------------------------------------
+# this function is a helper for parameters
+# if quotes the whole string with 'STR' or "STR" and replace quotes in it's content for the right.
+sub singleQuote($)
+{
+ my $sStr = shift;
+ if ( $OSNAME eq "MSWin32")
+ {
+ # we are MSWin32 (quote \" stronger)
+ # $sStr =~ s/\'/\"/g;
+ $sStr =~ s/\'/\\\"/g;
+ return "\"" . $sStr . "\"";
+ }
+ else
+ {
+ if (index($sStr, "'") >= 0)
+ {
+ # replace all single quotes ("'") by "\""
+ $sStr =~ s/\'/\"/g;
+ }
+ }
+ return "'" . $sStr . "'";
+}
+
+sub quote($)
+{
+ my $sName = shift;
+ return "\"" . $sName . "\"";
+}
+
+sub quoteIfNeed($)
+{
+ my $sName = shift;
+ if (-1 != index($sName, " "))
+ {
+ return quote($sName);
+ }
+ return $sName;
+}
+
+
+# ------------------------------------------------------------------------------
+our $sToolsPath;
+sub setToolsPath($)
+{
+ my $sNewPath = shift;
+ $sToolsPath = $sNewPath;
+}
+
+sub ExecSQL($)
+{
+ my $sSQL = shift;
+
+ my $error;
+ my @aResult;
+ my $sSQLDirect;
+ if ($sToolsPath)
+ {
+ $sSQLDirect = $sToolsPath;
+ $sSQLDirect .= "/";
+ }
+ $sSQLDirect .= "sql_direct.php";
+
+ # select(undef, undef, undef, 0.060);
+ # log_print("ExecSQL: $sSQL\n");
+ # sleep (1);
+ ($error, @aResult) = callphp(getPHPExecutable(), $sSQLDirect, singleQuote($sSQL));
+ if ($error)
+ {
+ log_print ("ExecSQL: An Error occured.\n");
+ log_print ("PHP: " . getPHPExecutable() . "\n");
+ log_print ("SQL Statement: " . singleQuote($sSQL) . "\n");
+ # exit(1);
+ }
+ # select(undef, undef, undef, 0.125);
+ # sleep (1);
+ return @aResult;
+}
+
+# ------------------------------------------------------------------------------
+# helper to call external php with popen
+# sub callexe($$$)
+# {
+# local *IN_FILE;
+# my $exe = shift;
+# my $program = shift;
+# my $sParams = shift;
+# my $line;
+# my $error;
+# my @result;
+#
+# $exe = quoteIfNeed($exe);
+# $program = quoteIfNeed($program);
+#
+# # print "Will send: $exe $sParams\n";
+# # log_print("CALLEXE: $exe $program $sParams\n");
+# if (open(IN_FILE, "$exe $program $sParams |"))
+# {
+# while ($line = <IN_FILE>)
+# {
+# chomp($line);
+# # $line .= " ";
+# push(@result, $line);
+# # print "callphp output: $line\n";
+# }
+# close(IN_FILE);
+# $error = errorAdaption($?);
+# }
+# else
+# {
+# print "Can't popen '$exe' with parameter: '$sParams'\n";
+# $error = 1;
+# }
+# return $error, @result;
+# }
+
+1;
diff --git a/testgraphical/source/ConvwatchHelper.pm b/testgraphical/source/ConvwatchHelper.pm
new file mode 100644
index 000000000000..8f157641b1f4
--- /dev/null
+++ b/testgraphical/source/ConvwatchHelper.pm
@@ -0,0 +1,574 @@
+package ConvwatchHelper;
+
+use English;
+use warnings;
+use strict;
+use Cwd;
+use Cwd 'chdir';
+
+use CallExternals;
+use stringhelper;
+use filehelper;
+use oshelper;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.39 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getQADEVToolsPath &setProjectRoot &getProjectRoot &checkForStop &getSofficeExe &setINPATH);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------------------------------------------------------
+our $tempprefix;
+
+# sub getTempDir()
+# {
+# my $sTempDir;
+# if (! $tempprefix)
+# {
+# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+# {
+# # $tempdir = "C:/gfxcmp/temp";
+# $tempprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci/temp";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi/temp";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# # $tempdir = "/space/gfxcmp/temp";
+# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli/temp";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sTempDir = $tempprefix;
+# return $sTempDir;
+# }
+# ------------------------------------------------------------------------------
+# in filehelper
+# our $programprefix;
+#
+# sub getProgramPrefix($)
+# {
+# my $sDBDistinct = shift;
+#
+# my $sProgramPrefix;
+# if (! $programprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# # $programprefix = "C:/gfxcmp/programs";
+# $programprefix = "C:/gp";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $programprefix = "/space/gfxcmp/programs";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $programprefix = "/space/gfxcmp/programs";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19));
+# return $sProgramPrefix;
+# }
+# ------------------------------------------------------------------------------
+sub getQADEVToolsPath()
+{
+ my $sNewPath = appendPath(getToolsPrefix(), "qadev");
+ $sNewPath = appendPath($sNewPath, "scripts");
+ $sNewPath = appendPath($sNewPath, "gfxcmp_ui");
+ return $sNewPath;
+}
+
+# in filehelper
+# our $toolsprefix;
+#
+# sub getToolsPrefix()
+# {
+# my $sToolsPrefix;
+# if (! $toolsprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# $toolsprefix = "C:/gfxcmp/tools";
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $toolsprefix = "/space/gfxcmp/tools";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $toolsprefix = "/space/gfxcmp/tools";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sToolsPrefix = $toolsprefix;
+# return $sToolsPrefix;
+# }
+# ------------------------------------------------------------------------------
+our $sProjectRoot;
+sub setProjectRoot($)
+{
+ $sProjectRoot = shift;
+ log_print "\$sProjectRoot := $sProjectRoot\n";
+}
+sub getProjectRoot()
+{
+ if ($sProjectRoot)
+ {
+ return $sProjectRoot;
+ }
+ die "setProjectRoot(PATH) not set.\n";
+}
+
+our $sINPATH;
+sub setINPATH($)
+{
+ $sINPATH = shift;
+}
+sub getINPATH()
+{
+ if ($sINPATH)
+ {
+ return $sINPATH;
+ }
+ die "setINPATH(PATH) not set.\n";
+}
+our $dataprefix;
+
+# sub getDataPrefix()
+# {
+# my $sDataPrefix;
+# if (! $dataprefix)
+# {
+# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+# {
+# # $dataprefix = "C:/gfxcmp/data";
+# # $dataprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci";
+# $dataprefix = getProjectRoot();
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# # $dataprefix = "/space/gfxcmp/data";
+# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi";
+# $dataprefix = getProjectRoot();
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# # $dataprefix = "/space/gfxcmp/data";
+# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli";
+# $dataprefix = getProjectRoot();
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# $dataprefix = appendPath(getProjectRoot(), getINPATH());
+# $dataprefix = appendPath($dataprefix, "data");
+# }
+# $sDataPrefix = $dataprefix;
+# return $sDataPrefix;
+# }
+
+# ------------------------------------------------------------------------------
+
+# sub _shortsleep($)
+# {
+# # sleep 1;
+# select(undef, undef, undef, 0.333);
+# }
+#
+# sub _waitInSeconds($)
+# {
+# my $nLength = shift;
+# my $i;
+# my $j;
+#
+# for ($j=0;$j<$nLength;$j++)
+# {
+# for ($i=0;$i<$j;$i++)
+# {
+# print ".";
+# }
+# for ($i=$j;$i<$nLength;$i++)
+# {
+# print " ";
+# }
+# _shortsleep( 1 );
+# print "\r";
+# }
+#
+# for ($j=0;$j<=$nLength;$j++)
+# {
+# for ($i=0;$i<$j;$i++)
+# {
+# print " ";
+# }
+# for ($i=$j;$i<$nLength;$i++)
+# {
+# print ".";
+# }
+# _shortsleep( 1 );
+# print "\r";
+# }
+# }
+#
+# sub wait30seconds()
+# {
+# _waitInSeconds(20);
+# _waitInSeconds(20);
+# }
+
+sub checkForStop($)
+{
+ my $sStopFilename = shift;
+ my $sStopFilePath;
+ if ($OSNAME eq "MSWin32")
+ {
+ $sStopFilePath = "C:/temp/";
+ }
+ else
+ {
+ $sStopFilePath = "/tmp/";
+ }
+ my $sStopFile = $sStopFilePath . $sStopFilename;
+ if ( -e "$sStopFile" )
+ {
+ print "Stop of Convwatch tool forced!\n";
+ unlink($sStopFile);
+ exit(2);
+ }
+}
+
+# ----------------------------------------------------------------------------------------
+sub readdirectory($$$);
+
+sub readdirectory($$$)
+{
+ my $startdir = shift;
+ my $sUserParameter = shift;
+ my $hook = shift;
+
+ my $myfile;
+
+ local *DIR;
+ chdir $startdir;
+ cwd();
+
+ my $nCountFiles = 0;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ #if (! -l $myfile) # not a link
+ #{
+ if (-d $myfile ) # is a directory
+ {
+ if ( -l $myfile)
+ {
+ next;
+ }
+ # if ( $myfile eq "help" ||
+ # $myfile eq "presets" ||
+ # $myfile eq "registry" ||
+ # $myfile eq "uno_packages" ||
+ # $myfile eq "lib" ||
+ # $myfile eq "user_tree" )
+ # {
+ # next;
+ # }
+
+ if ($myfile ne "." && $myfile ne "..")
+ {
+ my $sNewStartDir = appendPath($startdir, $myfile); # neuen Directorystring erstellen
+ # if ($sNewStartDir =~ "^\/proc" ||
+ # $sNewStartDir =~ "^\/dev" ||
+ # $sNewStartDir =~ "^\/udev" ||
+ # $sNewStartDir =~ "lost+found" )
+ # {
+ # next;
+ # }
+ # my $sNewSUserParameter = $sUserParameter . $myfile ."/";
+ # do a recursive call
+ # $nCountFiles++;
+ my $nFileCount = readdirectory($sNewStartDir, $sUserParameter, $hook);
+ # workOnDir($sNewDir, $nFileCount);
+ $nCountFiles += $nFileCount;
+
+ chdir ($startdir); # zurueckwechseln.
+ cwd();
+ }
+ }
+ else
+ {
+ # File must exist, be a regular file and must not be the $onlyOnFile
+ if (-f $myfile)
+ {
+ # print STDERR " $startdir" . "$myfile\n";
+ $nCountFiles++;
+ # workOnFile($startdir, $myfile, $destdir);
+ $hook->($startdir, $myfile, $sUserParameter);
+ }
+ }
+ #}
+ #else
+ #{
+ # print STDERR "linked file: $dir/$myfile\n";
+ #}
+ }
+ closedir(DIR);
+ }
+ else
+ {
+ print STDERR "could not open $startdir\n";
+ }
+ return $nCountFiles;
+}
+
+our $lcl_sSofficeBinPath;
+our $lcl_sSofficeBinName;
+
+sub searchSofficeBin($$$)
+{
+ my $currentDir = shift;
+ my $currentFile = shift;
+ my $sUserParameter = shift;
+
+ if ($currentFile eq $sUserParameter)
+ {
+ my $sSourceFilename;
+ $sSourceFilename = appendPath($currentDir, $currentFile);
+
+ if ( -e "$sSourceFilename" )
+ {
+ $lcl_sSofficeBinPath = $currentDir;
+ $lcl_sSofficeBinName = $currentFile;
+ }
+ }
+}
+
+# our $lcl_sUnoPkgPath;
+#
+# sub searchUnoPkgBin($$$)
+# {
+# my $currentDir = shift;
+# my $currentFile = shift;
+# my $sUserParameter = shift;
+#
+# if ($currentFile eq $sUserParameter)
+# {
+# my $sSourceFilename;
+# $sSourceFilename = appendPath($currentDir, $currentFile);
+# if ( -e "$sSourceFilename" )
+# {
+# $lcl_sUnoPkgPath = $currentDir;
+# }
+# }
+# }
+
+# our $lcl_sJARPath;
+
+# sub searchJARFile($$$)
+# {
+# my $currentDir = shift;
+# my $currentFile = shift;
+# my $sUserParameter = shift;
+#
+# if ($currentFile eq $sUserParameter)
+# {
+# my $sSourceFilename;
+# $sSourceFilename = appendPath($currentDir, $currentFile);
+# if ( -e "$sSourceFilename" )
+# {
+# $lcl_sJARPath = $currentDir;
+# }
+# }
+# }
+
+# return the PATH, where the file was found
+# sub searchForJAR($$)
+# {
+# my $sPathToInstallOffice = shift;
+# my $sJARFileName = shift;
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sJARPath = "";
+# readdirectory(${sPathToInstallOffice}, ${sJARFileName}, \&searchJARFile);
+#
+# chdir $sCurrentPath;
+# cwd();
+#
+# return $lcl_sJARPath;
+# }
+
+# sub getUnoPkg($)
+# {
+# my $sPathToInstallOffice = shift;
+#
+# my $sUnoPkgName = "unopkg.bin";
+# if (isWindowsEnvironment())
+# {
+# $sUnoPkgName = "unopkg.exe";
+# }
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sUnoPkgPath = "";
+# readdirectory(${sPathToInstallOffice}, ${sUnoPkgName}, \&searchUnoPkgBin);
+#
+# chdir $sCurrentPath;
+# cwd();
+#
+# return ($lcl_sUnoPkgPath, $sUnoPkgName);
+# }
+
+sub getSofficeExe($)
+{
+ my $sPathToOffice = shift;
+
+ my $sSofficeExeName = "soffice";
+ if (isWindowsEnvironment())
+ {
+ $sSofficeExeName = "soffice.exe";
+ }
+
+ my $sCurrentPath = cwd();
+
+ $lcl_sSofficeBinPath = "";
+ $lcl_sSofficeBinName = "";
+ readdirectory(${sPathToOffice}, ${sSofficeExeName}, \&searchSofficeBin);
+
+ chdir $sCurrentPath;
+ cwd();
+
+ return ($lcl_sSofficeBinPath, $lcl_sSofficeBinName);
+}
+
+# sub checkOfficeAlreadyInstalled($)
+# {
+# my $sOfficePath = shift;
+#
+# my $sCurrentPath = cwd();
+#
+# $lcl_sSofficeBinPath = "";
+# my $sOldOfficePath = appendPath($sOfficePath, "program");
+# if ( -d "$sOldOfficePath" )
+# {
+# $sOldOfficePath = appendPath($sOldOfficePath, "soffice.bin");
+# if ( -e $sOldOfficePath )
+# {
+# return 1;
+# }
+# }
+# else
+# {
+# if (isWindowsEnvironment())
+# {
+# my $sThreeLayerOffice = appendPath($sOfficePath, "Sun");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "StarOffice 9");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin");
+#
+# if ( -e "$sThreeLayerOffice" )
+# {
+# return 1;
+# }
+# }
+# else
+# {
+# my $sThreeLayerOffice = appendPath($sOfficePath, "staroffice9");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program");
+# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin");
+# if ( -e "$sThreeLayerOffice" )
+# {
+# return 1;
+# }
+# }
+# }
+#
+# # soffice.bin not found in fast path
+# readdirectory($sOfficePath, "soffice.bin", \&searchSofficeBin);
+# chdir $sCurrentPath;
+# cwd();
+#
+# if ( $lcl_sSofficeBinPath ne "" )
+# {
+# return 1;
+# }
+# return 0;
+# # this is the old check
+# # my $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# #
+# # # check path system of tree layer office
+# # if ( isWindowsEnvironment() )
+# # {
+# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "Sun");
+# # if ( ! -e $sOfficePathCheck)
+# # {
+# # # could be an OpenOffice.org
+# # return 0;
+# # }
+# # else
+# # {
+# #
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "StarOffice 9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # }
+# # elsif ( isUnixEnvironment() )
+# # {
+# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "staroffice9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "staroffice9");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program");
+# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin");
+# # if ( -e $sOfficePathCheck )
+# # {
+# # return 1;
+# # }
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # else
+# # {
+# # print "Error: There exist no Office, maybe an unsupported version?\n";
+# # }
+# # return 0;
+# }
+
+1;
diff --git a/testgraphical/source/compare.pl b/testgraphical/source/compare.pl
new file mode 100644
index 000000000000..4aef877dc2b7
--- /dev/null
+++ b/testgraphical/source/compare.pl
@@ -0,0 +1,408 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+ # print "PATH: " . $1 . "\n";
+}
+
+# my $e;
+# foreach $e (keys %ENV)
+# {
+# print "$e := $ENV{$e}" . "\n";
+# }
+
+use strict;
+use graphical_compare;
+use ConvwatchHelper;
+use filehelper;
+use timehelper;
+use loghelper;
+
+use Cwd;
+use File::Basename;
+use Getopt::Long;
+use English; # $OSNAME, ...
+use File::Path;
+use Cwd 'chdir';
+
+our $help; # Help option flag
+our $version; # Version option flag
+# our $test;
+
+# our $MAJOR;
+# our $MINOR;
+# our $cwsname;
+our $pool;
+our $document;
+our $creatortype;
+our $prepareonly = 0;
+our $force;
+our $verbose = 0;
+our $show = 0;
+our $connectionstring;
+
+# Prototypes
+sub print_usage(*);
+sub prepare();
+sub CompareFiles($$);
+
+# flush STDOUT
+# my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+# $| = 1; # perform flush after each write to STDOUT
+# select ($old_handle); # restore previously selected handle
+
+$OUTPUT_AUTOFLUSH=1; # works only if use English is used.
+
+our $version_info = 'compare.pl';
+
+GetOptions(
+# "MAJOR=s" => \$MAJOR,
+# "MINOR=s" => \$MINOR,
+# "cwsname=s" => \$cwsname,
+ "pool=s" => \$pool,
+ "document=s" => \$document,
+ "creatortype=s" => \$creatortype,
+ "prepareonly=s" => \$prepareonly,
+ "connectionstring=s" => \$connectionstring,
+
+ "force" => \$force,
+ "verbose" => \$verbose,
+ "show" => \$show,
+
+# "test" => \$test,
+ "help" => \$help,
+ "version" => \$version
+ );
+
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+if ($prepareonly)
+{
+ $force=1;
+}
+
+prepare();
+if ($connectionstring)
+{
+ setConnectionString($connectionstring);
+}
+
+my $sDocumentPool = appendPath(getProjectRoot(), "document-pool");
+# print "ProjectRoot: " . getProjectRoot() . "\n";
+if ($ENV{DOCUMENTPOOL})
+{
+ if ( -d $ENV{DOCUMENTPOOL})
+ {
+ print "overwrite default Documentpool: '$sDocumentPool'\n";
+ print " with \$ENV{DOCUMENTPOOL}: $ENV{DOCUMENTPOOL}\n";
+ $sDocumentPool = $ENV{DOCUMENTPOOL};
+ }
+ else
+ {
+ print "Given \$DOCUMENTPOOL doesn't exist.\n";
+ }
+}
+
+my $err = 0;
+my $nCompareTime = getTime();
+
+# if we want to check one file, give -pool and -document
+# if we want to check the whole pool, give -pool
+# if we want to check all, call without parameters
+if ($pool)
+{
+ if ($document)
+ {
+ $err = SingleDocumentCompare( $sDocumentPool,
+ $pool,
+ $document,
+ $creatortype,
+ $prepareonly,
+ $show
+ );
+ }
+ else
+ {
+ $err = CompareFiles($sDocumentPool, $pool);
+ }
+}
+else
+{
+ local *DIR;
+ if (opendir (DIR, $sDocumentPool)) # Directory oeffnen
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ if ($myfile eq "." ||
+ $myfile eq "..")
+ {
+ next;
+ }
+ my $sDocumentPath = appendPath($sDocumentPool, $myfile);
+ if ( -d $sDocumentPath )
+ {
+ $err += CompareFiles($sDocumentPool, $myfile);
+ }
+ elsif ( -f $sDocumentPath )
+ {
+ print "Warning: the file '$myfile' will not compared.\n";
+ }
+ }
+ closedir(DIR);
+ }
+ # my $sPool = "eis-chart";
+ # $err += CompareFiles($sDocumentPool, "eis-chart");
+ # $err += CompareFiles($sDocumentPool, "eis-impress");
+ # $err += CompareFiles($sDocumentPool, "eis-writer");
+ # $err += CompareFiles($sDocumentPool, "eis-calc");
+
+}
+
+printTime(endTime($nCompareTime));
+exit ($err);
+
+# ------------------------------------------------------------------------------
+
+sub CompareFiles($$)
+{
+ my $sDocumentPath = shift;
+ my $sPool = shift;
+ my %aFailedHash;
+ my $startdir = appendPath($sDocumentPath, $sPool);
+
+ local *DIR;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ my $myfile;
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ if ($myfile eq "knownissues.xcl")
+ {
+ next;
+ }
+ my $sAbsoluteFile = appendPath($startdir, $myfile);
+ if (-f $sAbsoluteFile)
+ {
+ my $nIssue;
+ my $sIssueText;
+ ($nIssue, $sIssueText) = checkForKnownIssue($startdir, $myfile);
+ if ($nIssue == 0)
+ {
+ $err = SingleDocumentCompare(
+ # "/net/so-gfxcmp-documents.germany.sun.com/export/gfxcmp/document-pool", # $documentpoolpath,
+ $sDocumentPool,
+ $sPool, # $documentpool,
+ $myfile, # $documentname);
+ $creatortype, # $destinationcreatortype,
+ $prepareonly,
+ $show
+ );
+ $aFailedHash{$myfile} = $err;
+ }
+ else
+ {
+ print "$myfile [KNOWN ISSUE: #$sIssueText#]\n";
+ }
+ }
+ }
+ closedir(DIR);
+ }
+
+ print "***** State for graphical compare of pool: '$sPool' ******\n";
+ my $nErrorCount = 0;
+ my $file;
+ foreach $file (keys %aFailedHash)
+ {
+ if ($aFailedHash{$file} != 0)
+ {
+ print "Failed: $file\n";
+ $nErrorCount++;
+ }
+ }
+ print "Whole unit: ";
+ if ($nErrorCount > 0)
+ {
+ print "PASSED.FAILED\n";
+ }
+ else
+ {
+ print "PASSED.OK\n";
+ }
+ print "************************************************************\n";
+ return $nErrorCount;
+}
+# ------------------------------------------------------------------------------
+# return issue number if file exists in knownissues.xcl file
+sub checkForKnownIssue($$)
+{
+ my $startdir = shift;
+ my $myfile = shift;
+
+ if ($force)
+ {
+ return 0,"";
+ }
+
+ my $sKnownIssueFile = appendPath($startdir, "knownissues.xcl");
+ my $sIssueText = "unknown";
+ local *ISSUES;
+ my $nIssue = 0;
+ my $sCurrentSection;
+
+ if (open(ISSUES, $sKnownIssueFile))
+ {
+ my $line;
+ while ($line = <ISSUES>)
+ {
+ chomp($line);
+ if ($line =~ /\[(.*)\]/ )
+ {
+ $sCurrentSection = $1;
+ next;
+ }
+ if ($sCurrentSection eq $creatortype)
+ {
+ if ($line =~ /\#\#\# (.*) \#\#\#/ )
+ {
+ $sIssueText = $1;
+ }
+ if ($line =~ /^${myfile}$/ )
+ {
+ $nIssue = 1;
+ last;
+ }
+ }
+ }
+ close(ISSUES);
+ }
+ return $nIssue, $sIssueText;
+}
+# ------------------------------------------------------------------------------
+sub prepare()
+{
+ # directory structure:
+ # documents will be found in
+ # ../document-pool/eis-tests
+
+ # references will be found in
+ # ../references/unxlngi/eis-tests
+ # ../references/wntmsci/eis-tests
+
+ # output goes to
+ # ../unxlngi6.pro/misc
+
+ if ($verbose)
+ {
+ setVerbose();
+ }
+
+ # TEST
+ if (!$ENV{INPATH})
+ {
+ if ($OSNAME eq "linux")
+ {
+ # just for debug
+ setINPATH("unxlngi6.pro");
+ }
+ }
+ else
+ {
+ setINPATH($ENV{INPATH});
+ }
+
+ if (! $creatortype)
+ {
+ $creatortype= "ps";
+ }
+
+ my $cwd = getcwd();
+ print "Current Directory: $cwd\n" if ($verbose);
+ my $sProjectBase;
+ if ($ENV{PRJ})
+ {
+ # print "cwd:=$cwd\n";
+ # print "PRJ:=$ENV{PRJ}\n";
+ $sProjectBase = appendPath($cwd, $ENV{PRJ});
+ }
+ else
+ {
+ $sProjectBase = dirname($cwd);
+ }
+ if ($OSNAME eq "cygwin")
+ {
+ $sProjectBase = `cygpath -w $sProjectBase`;
+ chomp($sProjectBase);
+ $sProjectBase = unixpath($sProjectBase);
+ # print "cygwin patch \$sProjectBase := $sProjectBase\n";
+ }
+ # print "Project base path: $sProjectBase\n";
+ setProjectRoot($sProjectBase);
+
+
+ # TEST TEST TEST
+ # exit (0);
+}
+# ------------------------------------------------------------------------------
+sub print_usage(*)
+{
+ local *HANDLE = $_[0];
+ my $tool_name = basename($0);
+
+ print(HANDLE <<END_OF_USAGE);
+
+Usage: $tool_name [OPTIONS]
+
+ -pool Give pool name out of document-pool directory.
+ But all documents list in knownissues.xcl will not check.
+ -document Give a single document to test, the known issue list will ignored.
+ -creatortype=s s:ps create postscript files via print to file.
+ s:pdf create PDF file via export to pdf.
+ -h, --help Print this help, then exit
+ -v, --version Print version number, then exit
+
+END_OF_USAGE
+;
+}
diff --git a/testgraphical/source/cwstestresult.pl b/testgraphical/source/cwstestresult.pl
new file mode 100644
index 000000000000..63c68c827dbd
--- /dev/null
+++ b/testgraphical/source/cwstestresult.pl
@@ -0,0 +1,208 @@
+:
+eval 'exec perl -wS $0 ${1+"$@"}'
+ if 0;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+#
+# cwstestresult.pl - publish results of CWS tests to EIS
+#
+
+use strict;
+use Getopt::Long;
+use Cwd;
+
+#### module lookup
+my @lib_dirs;
+BEGIN {
+ if ( !defined($ENV{SOLARENV}) ) {
+ die "No environment found (environment variable SOLARENV is undefined)";
+ }
+ push(@lib_dirs, "$ENV{SOLARENV}/bin/modules");
+ push(@lib_dirs, "$ENV{COMMON_ENV_TOOLS}/modules") if defined($ENV{COMMON_ENV_TOOLS});
+}
+use lib (@lib_dirs);
+
+use Cws;
+
+#### global #####
+( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
+
+my $is_debug = 1; # enable debug
+my $opt_master; # option: master workspace
+my $opt_child; # option: child workspace
+my $opt_milestone; # option: milestone
+my $opt_testrunName; # option: testrunName
+my $opt_testrunPlatform; # option: testrunPlatfrom
+my $opt_resultPage; # option: resultPage
+
+
+#### main #####
+
+my $arg_status= parse_options();
+testresult($arg_status);
+exit(0);
+
+#### subroutines ####
+
+sub testresult
+{
+ my $status = shift;
+ # get master and child workspace
+ my $masterws = $opt_master ? uc($opt_master) : $ENV{WORK_STAMP};
+ my $milestone = $opt_milestone ? $opt_milestone : $ENV{UPDMINOR};
+ my $childws = $opt_milestone ? undef : ( $opt_child ? $opt_child : $ENV{CWS_WORK_STAMP} );
+
+ if ( !defined($masterws) ) {
+ print_error("Can't determine master workspace environment.\n"
+ . "Please initialize environment with setsolar ...", 1);
+ }
+
+ if ( !defined($childws) && !defined($milestone) ) {
+ print_error("Can't determine child workspace environment or milestone.\n"
+ . "Please initialize environment with setsolar ...", 1);
+ }
+ if ( !defined($opt_resultPage) ) {
+ $opt_resultPage="";
+ }
+ my $cws = Cws->new();
+ if ( defined($childws) ) {
+ $cws->child($childws);
+ }
+ $cws->master($masterws);
+ my $eis = $cws->eis();
+
+ no strict;
+ my $result='';
+
+ if ( defined($childws) ) {
+ $opt_resultPage=SOAP::Data->type(string => $opt_resultPage);
+ my $id = $cws->eis_id();
+ if ( is_valid_cws($cws) ) {
+ $result=$eis->submitTestResult($id,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status);
+ } else {
+ print STDERR "cws is not valid";
+ }
+ } else {
+ $opt_resultPage=SOAP::Data->type(string => $opt_resultPage);
+ $result=$eis->submitTestResultMWS($masterws,$milestone,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status);
+ }
+
+ exit(0)
+}
+
+
+sub is_valid_cws
+{
+ my $cws = shift;
+
+ my $masterws = $cws->master();
+ my $childws = $cws->child();
+ # check if we got a valid child workspace
+ my $id = $cws->eis_id();
+ if ( !$id ) {
+ print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2);
+ }
+ return 1;
+}
+
+sub parse_options
+{
+ # parse options and do some sanity checks
+ Getopt::Long::Configure("no_ignore_case");
+ my $help = 0;
+ my $success = GetOptions('h' => \$help,
+ 'M=s' => \$opt_master,
+ 'm=s' => \$opt_milestone,
+ 'c=s' => \$opt_child,
+ 'n=s' => \$opt_testrunName,
+ 'p=s' => \$opt_testrunPlatform ,
+ 'r=s' => \$opt_resultPage );
+ if ( $help || !$success || $#ARGV < 0 || (!defined($opt_testrunName)) || ( !defined($opt_testrunPlatform)) ) {
+ usage();
+ exit(1);
+ }
+
+ print "$opt_master\n";
+ print "$opt_milestone\n";
+ print "$opt_child\n";
+ print "$opt_testrunName\n";
+ print "$opt_testrunPlatform\n";
+ print "$opt_resultPage\n";
+
+ if ( defined($opt_milestone) && defined($opt_child) ) {
+ print_error("-m and -c are mutually exclusive options",1);
+ }
+
+ return $ARGV[0];
+}
+
+# sub print_message
+# {
+# my $message = shift;
+#
+# print STDERR "$script_name: ";
+# print STDERR "$message\n";
+# return;
+# }
+
+sub print_error
+{
+ my $message = shift;
+ my $error_code = shift;
+
+ print STDERR "$script_name: ";
+ print STDERR "ERROR: $message\n";
+
+ if ( $error_code ) {
+ print STDERR "\nFAILURE: $script_name aborted.\n";
+ exit($error_code);
+ }
+ return;
+}
+
+sub usage
+{
+ print STDERR "Usage: cwstestresult[-h] [-M masterws] [-m milestone|-c childws] <-n testrunName> <-p testrunPlatform> <-r resultPage> statusName\n";
+ print STDERR "\n";
+ print STDERR "Publish result of CWS- or milestone-test to EIS\n";
+ print STDERR "\n";
+ print STDERR "Options:\n";
+ print STDERR "\t-h\t\t\thelp\n";
+ print STDERR "\t-M master\t\toverride MWS specified in environment\n";
+ print STDERR "\t-m milestone\t\toverride milestone specified in environment\n";
+ print STDERR "\t-c child\t\toverride CWS specified in environment\n";
+ print STDERR "\t-n testrunName\t\tspecifiy name of the test\n";
+ print STDERR "\t-p testrunPlatform\tspecify platform where the test ran on\n";
+ print STDERR "\t-r resultPage\t\tspecify name of attachment or hyperlink\n";
+ print STDERR "\t\t\t\tfor resultPage\n";
+
+
+ print STDERR "\nExample:\n";
+ print STDERR "\tcwstestresult -c mycws -n Performance -p Windows -r PerfomanceTestWindows.html ok\n";
+}
diff --git a/testgraphical/source/cwstestresulthelper.pm b/testgraphical/source/cwstestresulthelper.pm
new file mode 100644
index 000000000000..37a5315445af
--- /dev/null
+++ b/testgraphical/source/cwstestresulthelper.pm
@@ -0,0 +1,268 @@
+package cwstestresulthelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+use Cwd;
+use Cwd 'chdir';
+
+use stringhelper;
+use loghelper;
+use oshelper;
+use filehelper;
+use CallExternals;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&cwstestresult);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+sub cwstestresult($$$$$$)
+{
+ my $sStatus = shift;
+ my $sDBdistinct = shift;
+ my $sourceversion = shift;
+ my $destinationversion = shift;
+
+ my $sSOLARENV; # = getSolenvPath();
+ my $nSOLARENV_fake = 0;
+ my $sCOMMON_ENV_TOOLS;
+ my $nCOMMON_ENV_TOOLS_fake = 0;
+
+ my $MAJOR;
+ my $MINOR;
+ # we need an extra state in DB
+ # if this state is given here, we need to add information in cws back.
+ if ( ! $sSOLARENV)
+ {
+ my @MAJORMINOR=split('_', $sourceversion);
+ if ($#MAJORMINOR < 1)
+ {
+ print "Failure with sourceversion '$sourceversion' not splitable.\n";
+ return;
+ }
+ $MAJOR=$MAJORMINOR[0]; # DEV300, OOH310, ...
+ $MINOR=$MAJORMINOR[1]; # m45, ...
+ if (getEnvironment() eq "wntmsci")
+ {
+ $sSOLARENV="o:/$MAJOR/ooo.$MINOR/solenv";
+ if (! -e $sSOLARENV)
+ {
+ # fallback to old before ause103 (treeconfig)
+ $sSOLARENV="o:/$MAJOR/src.$MINOR/solenv";
+ }
+ }
+ elsif (getEnvironment() eq "unxlngi" ||
+ getEnvironment() eq "unxsoli")
+ {
+ $sSOLARENV="/so/ws/$MAJOR/ooo.$MINOR/solenv";
+ # automount
+ system("ls -al $sSOLARENV >/dev/null");
+ sleep(1);
+ if (! -e $sSOLARENV)
+ {
+ # fallback to old before ause103 (treeconfig)
+ $sSOLARENV="/so/ws/$MAJOR/src.$MINOR/solenv";
+ }
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported.");
+ return;
+ }
+ }
+ if ( !defined($ENV{SOLARENV}) || length($ENV{SOLARENV}) == 0 )
+ {
+ $ENV{SOLARENV} = $sSOLARENV;
+ log_print(" SOLARENV is: $ENV{SOLARENV} faked\n");
+ $nSOLARENV_fake = 1;
+ }
+ if ( ! $sCOMMON_ENV_TOOLS)
+ {
+ if (isWindowsEnvironment())
+ {
+ $sCOMMON_ENV_TOOLS="r:/etools";
+ }
+ elsif (isUnixEnvironment() )
+ {
+ $sCOMMON_ENV_TOOLS="/so/env/etools";
+ # automount
+ system("ls -al $sCOMMON_ENV_TOOLS >/dev/null");
+ sleep(1);
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported. (variable COMMON_ENV_TOOLS not set.)");
+ return;
+ }
+ }
+ if ( !defined($ENV{COMMON_ENV_TOOLS}) || length($ENV{COMMON_ENV_TOOLS}) == 0 )
+ {
+ $ENV{COMMON_ENV_TOOLS} = $sCOMMON_ENV_TOOLS;
+ log_print( "COMMON_ENV_TOOLS is: $ENV{COMMON_ENV_TOOLS} faked\n");
+ $nCOMMON_ENV_TOOLS_fake = 1;
+ }
+
+ # if ( !defined($ENV{WORK_STAMP}) )
+ # {
+ # $ENV{WORK_STAMP} = $MAJOR;
+ # log_print( " WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
+ # }
+ # if ( !defined($ENV{UPDMINOR}) )
+ # {
+ # $ENV{UPDMINOR} = $MINOR;
+ # log_print( " UPDMINOR is: $ENV{UPDMINOR} faked\n");
+ # }
+
+ my $nWORK_STAMP_fake = 0;
+ my $nUPDMINOR_fake = 0;
+
+ if ( !defined($ENV{WORK_STAMP}) || length($ENV{WORK_STAMP}) == 0 )
+ {
+ $ENV{WORK_STAMP} = $MAJOR;
+ log_print(" WORK_STAMP is: $ENV{WORK_STAMP} faked\n");
+ $nWORK_STAMP_fake = 1;
+ }
+ if ( !defined($ENV{UPDMINOR}) || length($ENV{WORK_STAMP}) == 0 )
+ {
+ $ENV{UPDMINOR} = $MINOR;
+ log_print(" UPDMINOR is: $ENV{UPDMINOR} faked\n");
+ $nUPDMINOR_fake = 1;
+ }
+
+ # my $sStatus = "ok";
+ # if ($nFailure == 0)
+ # {
+ # $sStatus = $sInfo;
+ # }
+ # elsif ($nFailure == 1)
+ # {
+ # $sStatus = "failed";
+ # }
+ # elsif ($nFailure == 2)
+ # {
+ # $sStatus = "incomplete";
+ # }
+
+ # system("cwstestresult -c mycws -n Performance -p Windows ok");
+ my $sPerlProgram = appendPath($sSOLARENV, "bin/cwstestresult.pl");
+ # if ( -e "cwstestresult.pl" )
+ # {
+ # # use a local version instead
+ # $sPerlProgram = "cwstestresult.pl";
+ # }
+ # else
+ # {
+ # my $currentdir =cwd();
+ # log_print( "We are in $currentdir\n");
+ # }
+
+ my $sPerlParam;
+ # $sPerlParam = " -m $MAJOR"; # master CWS
+ $sPerlParam .= " -c $destinationversion"; # name of CWS
+ $sPerlParam .= " -n ConvWatch"; # ConvWatch need to be capitalised for cwstestresult
+ my $sCWSEnv;
+ if (isWindowsEnvironment())
+ {
+ $sCWSEnv = "Windows";
+ }
+ elsif (getEnvironment() eq "unxlngi")
+ {
+ $sCWSEnv = "Linux";
+ }
+ elsif (getEnvironment() eq "unxsoli")
+ {
+ $sCWSEnv = "SolarisX86";
+ }
+ else
+ {
+ log_print("cwstestresult(): This environment is not supported. (getEnvironment() returns wrong value?)");
+ return;
+ }
+ $sPerlParam .= " -p " . $sCWSEnv;
+ $sPerlParam .= " -r http://so-gfxcmp-lin.germany.sun.com/gfxcmp_ui/status_new.php?distinct=$sDBdistinct";
+
+ $sPerlParam .= " ";
+ $sPerlParam .= $sStatus;
+
+
+ # my $sSetcwsAndPerl = "setcws $destinationversion; " . getPerlExecutable();
+
+ my $err = callperl(getPerlExecutable(), $sPerlProgram, $sPerlParam);
+ if ($err != 0)
+ {
+ log_print( "Can't call cwstestresult.pl\n");
+ }
+ if ($nSOLARENV_fake == 1)
+ {
+ $ENV{SOLARENV} = "";
+ undef( $ENV{SOLARENV} );
+ $nSOLARENV_fake = 0;
+ # if ( defined($ENV{SOLARENV}) )
+ # {
+ # print "SOLARENV always defined.\n";
+ # }
+ }
+ if ($nCOMMON_ENV_TOOLS_fake == 1)
+ {
+ $ENV{COMMON_ENV_TOOLS} = "";
+ undef( $ENV{COMMON_ENV_TOOLS} );
+ $nCOMMON_ENV_TOOLS_fake = 0;
+ }
+
+ if ( $nWORK_STAMP_fake == 1 )
+ {
+ # undef($ENV{WORK_STAMP});
+ $ENV{WORK_STAMP} = "";
+ undef($ENV{WORK_STAMP});
+ $nWORK_STAMP_fake = 0;
+ }
+ if ( $nUPDMINOR_fake == 1 )
+ {
+ $ENV{UPDMINOR} = "";
+ undef($ENV{UPDMINOR});
+ $nUPDMINOR_fake = 0;
+ }
+
+
+}
+
+
+1;
diff --git a/testgraphical/source/dbhelper.pm b/testgraphical/source/dbhelper.pm
new file mode 100644
index 000000000000..0f5c0d5bb5ea
--- /dev/null
+++ b/testgraphical/source/dbhelper.pm
@@ -0,0 +1,209 @@
+#
+# # ------------------------------------------------------------------------------
+#
+# sub DB_INSERT_INTO_TABLE_STATUS()
+# {
+# # my $sDocID = shift;
+# # my $sDBDistinct = shift;
+#
+# my $sHostname = hostname;
+#
+# my $sSQL = "INSERT INTO status (docid, dbdistinct2, hostname)";
+# $sSQL .= " VALUES ($docid, '$dbdistinct', '$sHostname')";
+# ExecSQL($sSQL);
+# }
+# sub DB_UPDATE_TABLE_STATUS_SET_INFO($)
+# {
+# # my $sDocID = shift;
+# # my $sDBDistinct = shift;
+# my $sInfo = shift;
+#
+# # my $sHostname = hostname;
+#
+# my $sInsertSQL = "UPDATE status SET info='$sInfo' WHERE docid=$docid AND dbdistinct2='$dbdistinct'";
+# ExecSQL($sInsertSQL);
+# }
+#
+# sub DB_UPDATE_TABLE_DOCUMENTS_SET_STATE_INFO($$)
+# {
+# # my $sDocID = shift;
+# my $sStatus = shift;
+# my $sError = shift;
+#
+# my $sSQL = "UPDATE documents";
+# $sSQL .= " SET state='" . $sStatus . "'";
+# $sSQL .= ",info='" . $sError . "'";
+# $sSQL .= " WHERE docid=$docid";
+# ExecSQL($sSQL);
+# }
+# sub DB_UPDATE_TABLE_STATUS_SET_STATE($)
+# {
+# # my $sDocID = shift;
+# my $sStatus = shift;
+#
+# my $sSQL = "UPDATE status";
+# $sSQL .= " SET state='" . $sStatus . "'";
+# $sSQL .= " WHERE docid=$docid";
+# ExecSQL($sSQL);
+# }
+#
+# # sub DB_UPDATE_TABLE_STATUS_SET_STATE_FAILED()
+# # {
+# # DB_UPDATE_TABLE_STATUS_SET_STATE("FAILED-FAILED");
+# # }
+# # ------------------------------------------------------------------------------
+# # sub getDBConnectionString()
+# # {
+# # # return "server:jakobus,db:jobs_convwatch,user:admin,passwd:admin";
+# # return "server:unoapi,db:jobs_convwatch,user:convwatch,passwd:convwatch";
+# # }
+# # ------------------------------------------------------------------------------
+# sub getSourceInfo($)
+# {
+# my $sDBStr = shift;
+#
+# my $sSourceVersion;
+# if ( $sDBStr =~ / sourceversion='(.*?)',/ )
+# {
+# $sSourceVersion = $1;
+# log_print( "sSourceVersion: $sSourceVersion\n");
+# }
+# if (! $sSourceVersion)
+# {
+# log_print( "Error: no value for sourceversion found.\n");
+# return;
+# }
+# my $sSourceName;
+# if ( $sDBStr =~ / sourcename='(.*?)',/ )
+# {
+# $sSourceName = $1;
+# log_print( "sSourceName: $sSourceName\n");
+# }
+# my $sSourceCreatorType;
+# if ( $sDBStr =~ / sourcecreatortype='(.*?)',/ )
+# {
+# $sSourceCreatorType = $1;
+# log_print( "sSourceCreatorType: $sSourceCreatorType\n");
+# }
+# return $sSourceVersion, $sSourceName, $sSourceCreatorType;
+# }
+# # ------------------------------------------------------------------------------
+# sub getDestinationInfo($)
+# {
+# my $sDBStr = shift;
+#
+# my $sDestinationVersion;
+# if ( $sDBStr =~ / destinationversion='(.*?)',/ )
+# {
+# $sDestinationVersion = $1;
+# log_print( "sDestinationVersion: $sDestinationVersion\n");
+# }
+# if (! $sDestinationVersion)
+# {
+# log_print( "Error: no value for destinationversion found.\n");
+# return;
+# }
+# my $sDestinationName;
+# if ( $sDBStr =~ / destinationname='(.*?)',/ )
+# {
+# $sDestinationName = $1;
+# log_print( "sDestinationName: $sDestinationName\n");
+# }
+# my $sDestinationCreatorType;
+# if ( $sDBStr =~ / destinationcreatortype='(.*?)',/ )
+# {
+# $sDestinationCreatorType = $1;
+# log_print( "sDestinationCreatorType: $sDestinationCreatorType\n");
+# }
+# return $sDestinationVersion, $sDestinationName, $sDestinationCreatorType;
+# }
+# # ------------------------------------------------------------------------------
+# # sub getMailAddress($)
+# # {
+# # my $sDBStr = shift;
+# # my $sMailAddress = "";
+# # if ( $sDBStr =~ / mailfeedback='(.*?)',/ )
+# # {
+# # $sMailAddress = $1;
+# # log_print( "sMailAddress: $sMailAddress\n");
+# # }
+# # return $sMailAddress;
+# # }
+#
+# # sub getDocumentInfo($)
+# # {
+# # my $sDBStr = shift;
+# #
+# # my $sDocumentPoolPath;
+# # if ( $sDBStr =~ / documentpoolpath='(.*?)',/ )
+# # {
+# # $sDocumentPoolPath = $1;
+# # log_print( "sDocumentPoolPath: $sDocumentPoolPath\n");
+# # }
+# # if (! $sDocumentPoolPath)
+# # {
+# # log_print( "Error: no value for documentpoolpath found.\n");
+# # return;
+# # }
+# # my $sDocumentPool;
+# # if ( $sDBStr =~ / documentpool='(.*?)',/ )
+# # {
+# # $sDocumentPool = $1;
+# # log_print( "sDocumentPool: $sDocumentPool\n");
+# # }
+# # if (! $sDocumentPool)
+# # {
+# # log_print( "Error: no value for documentpool found.\n");
+# # return;
+# # }
+# # my $sDocumentName;
+# # if ( $sDBStr =~ / name='(.*?)',/ )
+# # {
+# # $sDocumentName = $1;
+# # log_print( "sDocumentName: $sDocumentName\n");
+# # }
+# # return $sDocumentPoolPath, $sDocumentPool, $sDocumentName;
+# # }
+#
+# sub getDistinct($)
+# {
+# my $sDBStr = shift;
+# my $sDBDistinct;
+# if ( $sDBStr =~ / dbdistinct2='(\S*?)',/ )
+# {
+# $sDBDistinct = $1;
+# log_print( "dbdistinct2: $sDBDistinct\n");
+# }
+# return $sDBDistinct;
+# }
+#
+# sub getIDInfo($)
+# {
+# my $sDBStr = shift;
+# # my $dbdistinct;
+#
+# my $sDBDistinct = getDistinct($sDBStr);
+# # if ( $sDBStr =~ / dbdistinct2='(\S*?)',/ )
+# # {
+# # $sDBDistinct = $1;
+# # log_print( "dbdistinct2: $sDBDistinct\n");
+# # }
+# if (! $sDBDistinct)
+# {
+# log_print( "Error: no dbdistinct given.\n");
+# return;
+# }
+# my $sDocID;
+# if ( $sDBStr =~ / docid=(\S*?),/ )
+# {
+# $sDocID = $1;
+# log_print( "docid: $sDocID\n");
+# }
+# if (! $sDocID)
+# {
+# log_print( "Error: no docid given.\n");
+# return;
+# }
+# return $sDBDistinct, $sDocID;
+# }
+#
diff --git a/testgraphical/source/filehelper.pm b/testgraphical/source/filehelper.pm
new file mode 100644
index 000000000000..ed1be35cf124
--- /dev/null
+++ b/testgraphical/source/filehelper.pm
@@ -0,0 +1,358 @@
+package filehelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use strict;
+use warnings;
+use strict;
+use English; # $OSNAME, ...
+use stringhelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&dospath &unixpath &appendPath &appendClass &setPrefix &getToolsPrefix &rmkdir &getJavaPathSeparator &getJavaFileDirSeparator &getFromPathes &convertCygwinPath);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+# helper, to change all file separators
+sub dospath($)
+{
+ my $sPath = shift;
+ if ($OSNAME eq "MSWin32")
+ {
+ # make out of '/' a '\'
+ $sPath =~ s/\//\\/g;
+ }
+ else
+ {
+ }
+ return $sPath;
+}
+
+sub unixpath($)
+{
+ my $sPath = shift;
+ if ($OSNAME ne "MSWin32")
+ {
+ # make out of '\' a '/'
+ $sPath =~ s/\\/\//g;
+ }
+ else
+ {
+ }
+ return $sPath;
+}
+
+# ------------------------------------------------------------------------------
+# sub getGlobalInstSet()
+# {
+# my $sJumbo;
+# if ($OSNAME eq "MSWin32")
+# {
+# # $sJumbo = "\\\\so-gfxcmp-lin\\jumbo_ship\\install";
+# $sJumbo = "\\\\jumbo.germany.sun.com\\ship\\install";
+# }
+# elsif ($OSNAME eq "cygwin")
+# {
+# $sJumbo = "//jumbo.germany.sun.com/ship/install";
+# }
+# else
+# {
+# $sJumbo = "/net/jumbo.germany.sun.com/ship/install";
+# }
+# return $sJumbo;
+# }
+
+# ------------------------------------------------------------------------------
+# sub getSolarisLockFile()
+# {
+# my $sSolarisLockFile = "/tmp/.ai.pkg.zone.lock-afdb66cf-1dd1-11b2-a049-000d560ddc3e";
+# return $sSolarisLockFile;
+# }
+#
+# sub checkForSolarisLock()
+# {
+# if ($OSNAME eq "solaris")
+# {
+# # wait until the internal installer lock is gone
+# while ( -e getSolarisLockFile() )
+# {
+# while ( -e getSolarisLockFile() )
+# {
+# log_print( "Warning: Wait active until installer lock is gone. \n");
+# sleep 1;
+# }
+# sleep 5;
+# }
+# log_print( "[ok], lock is gone.\n");
+# }
+# }
+#
+# sub deleteSolarisLock()
+# {
+# if ($OSNAME eq "solaris")
+# {
+# sleep 1;
+# unlink getSolarisLockFile();
+#
+# sleep 1;
+# if ( -e getSolarisLockFile() )
+# {
+# # try delete the file as super user?
+# `sudo rm -f getSolarisLockFile()`;
+# sleep 1;
+# }
+# }
+# }
+
+# ------------------------------------------------------------------------------
+sub appendPath($$)
+{
+ my $sPath = shift;
+ my $sAddPath = shift;
+ if ($sPath && $sAddPath)
+ {
+ if (! endswith($sPath, "/") &&
+ ! endswith($sPath, "\\"))
+ {
+ # getJavaFileDirSeparator();
+ $sPath .= "/";
+ }
+ $sPath .= $sAddPath;
+ }
+ return $sPath;
+}
+
+sub appendClass($$)
+{
+ my $sPath = shift;
+ my $sAddPath = shift;
+
+ my $sSeparator = getJavaPathSeparator();
+ if ($sPath && $sAddPath)
+ {
+ if (! endswith($sPath, $sSeparator))
+ {
+ # getJavaFileDirSeparator();
+ $sPath .= $sSeparator;
+ }
+ $sPath .= $sAddPath;
+ }
+ return $sPath;
+}
+
+# ------------------------------------------------------------------------------
+
+our $sPrefix;
+sub setPrefix($)
+{
+ $sPrefix = shift;
+}
+
+sub getPrefix()
+{
+ return $sPrefix;
+}
+
+# ------------------------------------------------------------------------------
+our $programprefix;
+
+# sub getProgramPrefix($)
+# {
+# my $sDBDistinct = shift;
+#
+# my $sProgramPrefix;
+# if (! $programprefix)
+# {
+# if ($OSNAME eq "MSWin32")
+# {
+# # $programprefix = "C:/gfxcmp/programs";
+# $programprefix = "C:";
+# if (getPrefix() eq "performance")
+# {
+# $programprefix = "D:";
+# }
+# $programprefix = appendPath($programprefix, "gp");
+# }
+# elsif ($OSNAME eq "linux")
+# {
+# $programprefix = "/space/" . getPrefix() . "/programs";
+# }
+# elsif ($OSNAME eq "solaris")
+# {
+# $programprefix = "/space/" . getPrefix() . "/programs";
+# }
+# else
+# {
+# print "Error: This environment isn't supported yet.\n";
+# exit(1);
+# }
+# }
+# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19));
+# return $sProgramPrefix;
+# }
+# ------------------------------------------------------------------------------
+our $toolsprefix;
+
+sub getToolsPrefix()
+{
+ my $sToolsPrefix;
+ if (! $toolsprefix)
+ {
+ if ($OSNAME eq "MSWin32")
+ {
+ $toolsprefix = "C:";
+ if (getPrefix() eq "performance")
+ {
+ $toolsprefix = "D:";
+ }
+ }
+ elsif ($OSNAME eq "linux")
+ {
+ $toolsprefix = "/space";
+ }
+ elsif ($OSNAME eq "solaris")
+ {
+ $toolsprefix = "/space";
+ }
+ else
+ {
+ print "Error: This environment isn't supported yet.\n";
+ exit(1);
+ }
+ $toolsprefix = appendPath($toolsprefix, getPrefix());
+ $toolsprefix = appendPath($toolsprefix, "tools");
+ }
+ $sToolsPrefix = $toolsprefix;
+ return $sToolsPrefix;
+}
+
+# also Windows safe
+sub rmkdir($)
+{
+ my($tpath) = shift;
+ my $dir;
+ my $accum = "";
+
+ my @dirs = split(/\//, $tpath);
+ if ( $#dirs eq 0 )
+ {
+ @dirs = split("\\\\", $tpath);
+ }
+
+ foreach $dir (@dirs)
+ {
+ $accum = "$accum$dir/";
+ if($dir ne "")
+ {
+ if(! -d "$accum")
+ {
+ mkdir ($accum);
+ chmod (0777,$accum);
+ }
+ }
+ }
+}
+
+# ------------------------------------------------------------------------------
+sub getJavaPathSeparator()
+{
+ my $ps = ":";
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ $ps = ";";
+ }
+ return $ps;
+}
+# ------------------------------------------------------------------------------
+sub getJavaFileDirSeparator()
+{
+ my $sfs = "/";
+ if ($OSNAME eq "MSWin32")
+ {
+ $sfs = "\\";
+ }
+ return $sfs;
+}
+# ------------------------------------------------------------------------------
+sub getFromPathes($$)
+{
+ my $sPathesIni = shift;
+ my $searchvalue = shift;
+ my $sResult;
+ if ( -e $sPathesIni)
+ {
+ local *PATHES;
+ if (open(PATHES, "$sPathesIni"))
+ {
+ my $line;
+ while ($line = <PATHES>)
+ {
+ chomp($line);
+ if ($line =~ /^$searchvalue=(.*)$/)
+ {
+ $sResult = $1;
+ }
+ }
+ close(PATHES);
+ }
+ }
+ return $sResult;
+}
+
+sub convertCygwinPath($)
+{
+ my $sPath = shift;
+
+ if ($OSNAME eq "cygwin")
+ {
+ # print "Cygwin Path Patch.\n" if ($verbose);
+ if ($sPath =~ /\/cygdrive\/(.)/)
+ {
+ my $Letter = $1;
+ $sPath =~ s/\/cygdrive\/${Letter}/${Letter}\:/;
+ # print "Cygwin Path Patch: '$sPath'\n" if ($verbose);
+ }
+ }
+ return $sPath;
+}
+
+
+
+1;
diff --git a/testgraphical/source/fill_documents_loop.pl b/testgraphical/source/fill_documents_loop.pl
new file mode 100644
index 000000000000..c1b8174fefe5
--- /dev/null
+++ b/testgraphical/source/fill_documents_loop.pl
@@ -0,0 +1,423 @@
+eval 'exec perl -wS $0 ${1+\"$@\"}'
+ if 0;
+
+# This program has to start for the new convwatch,
+# once on Windows environment and once on Linux environment
+# Solaris is handled by the linux also.
+#
+# This program polls the database (documentcompare) every 60s for new jobs
+# it runs over the given directory from documentpoolpath and pool, and create for every file
+# a new database entry in documents.
+#
+
+BEGIN
+{
+ # Adding the path of this script file to the include path in the hope
+ # that all used modules can be found in it.
+ $0 =~ /^(.*)[\/\\]/;
+ push @INC, $1;
+}
+
+use ConvwatchHelper;
+use CallExternals;
+use stringhelper;
+use filehelper;
+use oshelper;
+use timehelper;
+use cwstestresulthelper;
+
+use strict;
+use Cwd;
+use File::Basename;
+use English; # $OSNAME, ...
+use Getopt::Long;
+use File::Path;
+use Cwd 'chdir';
+
+my $cwd = getcwd();
+
+our $help; # Help option flag
+our $version; # Version option flag
+our $test;
+
+our $version_info = 'convwatch.pl $Revision: 1.24 $ ';
+
+our $SOLARENV;
+our $COMMON_ENV_TOOLS;
+
+
+our $documentpoolname;
+our $documentpoolpath;
+our $dbdistinct;
+our $sParentDistinct;
+our $sCurrentDocumentPool;
+
+our $fs;
+our @aEntries;
+
+# Prototypes
+# sub getJavaFileDirSeparator();
+sub readdirectory($$$);
+sub putDocumentInDB($$$);
+
+# flush STDOUT
+my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle
+$| = 1; # perform flush after each write to STDOUT
+select ($old_handle); # restore previously selected handle
+
+setPrefix("gfxcmp");
+
+if (!GetOptions(
+ "test" => \$test,
+ "help" => \$help,
+ "version" => \$version
+ ))
+{
+ print_usage(*STDERR);
+ exit(1);
+}
+if ($help)
+{
+ print_usage(*STDOUT);
+ exit(0);
+}
+# Check for version option
+if ($version)
+{
+ print STDERR "$version_info\n";
+ exit(0);
+}
+
+# ------------------------------------------------------------------------------
+# within mysql it is better to use only '/'
+$fs = "/"; # getJavaFileDirSeparator();
+# ------------------------------------------------------------------------------
+sub readdirectory($$$)
+{
+ my $startdir = shift;
+ my $sValues = shift;
+ my $hook = shift;
+
+ my $myfile;
+
+ local *DIR;
+ chdir $startdir;
+ cwd();
+ if (! endswith($startdir, $fs))
+ {
+ $startdir .= $fs;
+ }
+
+ my $nCountFiles = 0;
+ if (opendir (DIR, $startdir)) # Directory oeffnen
+ {
+ while ($myfile = readdir(DIR))
+ { # ein filename holen
+ #if (! -l $myfile) # not a link
+ #{
+ if (-d $myfile ) # is a directory
+ {
+ if ( -l $myfile)
+ {
+ next;
+ }
+ if ($myfile ne "." && $myfile ne "..")
+ {
+ my $sNewStartDir = $startdir . $myfile ."/"; # neuen Directorystring erstellen
+ if ($sNewStartDir =~ "^\/proc" ||
+ $sNewStartDir =~ "^\/dev" ||
+ $sNewStartDir =~ "^\/udev" ||
+ $sNewStartDir =~ "lost+found" )
+ {
+ next;
+ }
+ # my $sNewDestDir = $destdir . $myfile ."/";
+ # do a recursive call
+ # $nCountFiles++;
+ my $nFileCount = readdirectory($sNewStartDir, $sValues, $hook);
+ # workOnDir($sNewDir, $nFileCount);
+ $nCountFiles += $nFileCount;
+
+ chdir ($startdir); # zurueckwechseln.
+ cwd();
+ }
+ }
+ else
+ {
+ # File must exist, be a regular file and must not be the $onlyOnFile
+ if (-f $myfile)
+ {
+ # print " $startdir" . "$myfile\n";
+ $nCountFiles++;
+ # workOnFile($startdir, $myfile, $destdir);
+ $hook->($startdir, $myfile, $sValues);
+ }
+ }
+ #}
+ #else
+ #{
+ # print "linked file: $dir/$myfile\n";
+ #}
+ }
+ closedir(DIR);
+ }
+ else
+ {
+ print "could not open $startdir\n";
+ }
+ return $nCountFiles;
+}
+# ------------------------------------------------------------------------------
+sub putDocumentInDB($$$)
+{
+ my $currentDir = shift;
+ my $currentFile = shift;
+ my $sValues = shift;
+
+ my $sSourceFilename = $currentDir . $currentFile;
+ # we cut down all the previous names like documentpoolpath and the documentpoolname
+ $sSourceFilename = substr($sSourceFilename, length($sCurrentDocumentPool . $fs));
+
+ my $sSQL = "INSERT INTO documents (dbdistinct2, name, pagecount, priority, parentdistinct) VALUES";
+ $sSQL .= "('" . $dbdistinct . "', '" . $sSourceFilename . "', 0, 1, '". $sParentDistinct . "')";
+ # print $sSQL . "\n";
+
+ push(@aEntries, $sSQL);
+ # ExecSQL($sSQL);
+}
+
+# ------------------------------------------------------------------------------
+sub createDBEntriesForEveryDocument($)
+{
+ my $sStr = shift;
+ if ($sStr =~ /^MySQL-Error/ )
+ {
+ # we don't do anything if an error occured
+ return;
+ }
+
+ # interpret the follows string
+ # documentpoolpath='//so-gfxcmp-documents/doc-pool', documentpool='demo_lla', dbdistinct=62,
+
+ # my $sDocumentPoolDir;
+ if ( $sStr =~ /documentpoolpath='(.*?)',/ )
+ {
+ $documentpoolpath = $1;
+ }
+ if (! $documentpoolpath)
+ {
+ print "Error: no value for documentpoolpath found.\n";
+ return;
+ }
+
+ # my $sDocumentPool;
+ if ( $sStr =~ /documentpool='(.*?)',/ )
+ {
+ $documentpoolname = $1;
+ }
+ if (! $documentpoolname)
+ {
+ print "Error: no value for documentpool found.\n";
+ return;
+ }
+ # my $dbdistinct;
+ if ( $sStr =~ /dbdistinct2='(\S*?)',/ )
+ {
+ $dbdistinct = $1;
+ }
+ if (! $dbdistinct)
+ {
+ print "Error: no dbdistinct given.\n";
+ return;
+ }
+
+ if (! -d $documentpoolpath )
+ {
+ my $sEnv = getEnvironment();
+ if ( isUnixEnvironment() )
+ {
+ $documentpoolpath = "/net/so-gfxcmp-documents" . $documentpoolpath;
+ }
+ if ( -d $documentpoolpath )
+ {
+ print "Warning: given documentpoolpath seems to be local, fix to '$documentpoolpath'\n";
+ my $sSQL = "UPDATE documentcompare SET documentpoolpath='$documentpoolpath' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ }
+ else
+ {
+ print "Error: documentpoolpath '$documentpoolpath' not found. Don't insert anything.\n";
+ my $sSQL = "UPDATE documentcompare SET state='failed',info='documentpoolpath not found.' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ return;
+ }
+ }
+ # create the documentpool directory, to run through
+ $sCurrentDocumentPool = $documentpoolpath;
+ if (! endswith($sCurrentDocumentPool, $fs))
+ {
+ $sCurrentDocumentPool .= $fs;
+ }
+ $sCurrentDocumentPool .= $documentpoolname;
+
+ if ( -d $sCurrentDocumentPool )
+ {
+ if ( $sStr =~ /parentdistinct='(.*?)',/ )
+ {
+ $sParentDistinct = $1;
+ }
+ else
+ {
+ $sParentDistinct = "";
+ }
+
+ # remove any doubles, if any
+ my $sSQL = "DELETE FROM documents WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+
+ # run over the whole given document pool and store every found document name in the database
+ readdirectory($sCurrentDocumentPool, "", \&putDocumentInDB);
+
+ chdir $cwd;
+ cwd();
+
+ foreach $sSQL (@aEntries)
+ {
+ # print "# $sSQL\n";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ }
+
+ my $sSQL = "UPDATE documentcompare SET state='inprogress' WHERE dbdistinct2='$dbdistinct'";
+ print "$sSQL\n";
+ ExecSQL($sSQL);
+ print "----------------------------------------------------------------------\n";
+ $sParentDistinct = "";
+ @aEntries = ();
+ }
+ else
+ {
+ print "Error: Given document pool '$sCurrentDocumentPool' doesn't exists.\n";
+ my $sSQL = "UPDATE documentcompare SET state='cancelled' WHERE dbdistinct2='$dbdistinct'";
+ ExecSQL($sSQL);
+ return;
+ }
+ # Send Mail, due to startconvwatch now
+ sendMail($sStr, $documentpoolname, $dbdistinct);
+}
+
+# ------------------------------------------------------------------------------
+sub sendMail($$$)
+{
+ my $sStr = shift;
+ my $documentpool = shift;
+ my $dbdistinct = shift;
+ my $sourceversion;
+ if ( $sStr =~ /sourceversion='(.*?)',/ )
+ {
+ $sourceversion = $1;
+ }
+ if (! $sourceversion)
+ {
+ print "Warning: no value for sourceversion found.\n";
+ return;
+ }
+ my $destinationversion;
+ if ( $sStr =~ /destinationversion='(.*?)',/ )
+ {
+ $destinationversion = $1;
+ }
+ if (! $destinationversion)
+ {
+ print "Warning: no value for destinationversion found.\n";
+ return;
+ }
+ my $mailaddress;
+ if ( $sStr =~ /mailfeedback='(.*?)',/ )
+ {
+ $mailaddress = $1;
+ }
+ if (! $mailaddress)
+ {
+ print "Warning: no value for mailfeedback found.\n";
+ return;
+ }
+
+ # state is 'inprogress', so send a mail
+ # my $sMailAddress = getMailAddress($sDoneStr);
+ my $sParams = "$sourceversion";
+ $sParams .= " $destinationversion";
+ $sParams .= " $documentpool";
+ $sParams .= " $dbdistinct";
+ $sParams .= " $mailaddress";
+ $sParams .= " starts"; # run through state of convwatch
+
+ my $sMailProgram = appendPath(getQADEVToolsPath(), "mailsend.php");
+
+ my $err;
+ my @lines;
+ my $sLine;
+ ($err, @lines) = callphp(getPHPExecutable(), $sMailProgram, $sParams);
+ foreach $sLine (@lines)
+ {
+ log_print( "Mail: $sLine\n");
+ }
+
+ if ($documentpool eq "EIS-tests")
+ {
+ cwstestresult("running", $dbdistinct, $sourceversion, $destinationversion, $SOLARENV, $COMMON_ENV_TOOLS);
+ }
+}
+# ------------------------------------------------------------------------------
+# ------------------------------------------------------------------------------
+
+my $sEnvironmentCondition;
+if (isWindowsEnvironment())
+{
+ $sEnvironmentCondition = "environment='" . getEnvironment() . "'";
+}
+elsif (isUnixEnvironment())
+{
+ # $sEnvironmentCondition = " ( environment='unxlngi' OR environment='unxsoli' ) ";
+ $sEnvironmentCondition = " environment='" . getEnvironment() . "'";
+}
+else
+{
+ print "Error: wrong environment.\n";
+ exit(1);
+}
+my $sWhereClause = "WHERE ";
+if ($sEnvironmentCondition)
+{
+ $sWhereClause .= $sEnvironmentCondition . " AND ";
+}
+$sWhereClause .= " state='new'";
+
+setToolsPath(getQADEVToolsPath());
+
+# ---------------------------------- main loop ----------------------------------
+while (1)
+{
+ my @aResult;
+ my $sSQL = "SELECT documentpoolpath,documentpool,dbdistinct2,sourceversion,destinationversion,mailfeedback,parentdistinct FROM documentcompare $sWhereClause";
+ @aResult = ExecSQL($sSQL);
+
+ my $aValue;
+ foreach $aValue (@aResult)
+ {
+ # print "# $nValue\n";
+ createDBEntriesForEveryDocument($aValue);
+ }
+ if ($test)
+ {
+ last;
+ }
+
+ # wait 30sec.
+ # wait30seconds();
+ waitAMinute();
+ checkForStop("stop_fill_documents_loop");
+}
diff --git a/testgraphical/source/graphical_compare.pm b/testgraphical/source/graphical_compare.pm
new file mode 100644
index 000000000000..5cde8d64ea01
--- /dev/null
+++ b/testgraphical/source/graphical_compare.pm
@@ -0,0 +1,586 @@
+package graphical_compare;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use CallExternals;
+use stringhelper;
+use timehelper;
+use filehelper;
+use loghelper;
+use oshelper;
+use cwstestresulthelper;
+use solarenvhelper;
+use ConvwatchHelper;
+
+use strict;
+use Cwd;
+# use File::Basename;
+use Getopt::Long;
+use English; # $OSNAME, ...
+use File::Path;
+use Cwd 'chdir';
+use Sys::Hostname;
+use Time::localtime;
+
+# my $cwd = getcwd();
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&SingleDocumentCompare &setPrefix &setConnectionString);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+our $nTimeOut = 300 * 1000;
+our $viewable = 1;
+our $port;
+our $resolution;
+our $overwritereference;
+our $fixreference;
+our $sConncectionString;
+
+sub setConnectionString($)
+{
+ $sConncectionString=shift;
+}
+
+sub getOOoRunnerClasspath()
+{
+ my $sSourceRoot;
+ my $sUPDExtensions = "";
+ if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION}))
+ {
+ $sSourceRoot = $ENV{SOLARVERSION};
+ }
+ elsif (defined $ENV{SOURCE_ROOT})
+ {
+ $sSourceRoot = $ENV{SOURCE_ROOT};
+ $sSourceRoot = appendPath($sSourceRoot, $ENV{WORK_STAMP});
+ }
+ else
+ {
+ $sSourceRoot = $ENV{SOLARVERSION};
+ $sUPDExtensions = ".$ENV{UPDMINOR}";
+ }
+ $sSourceRoot = appendPath($sSourceRoot, $ENV{INPATH});
+ my $sSourceRootBin = appendPath($sSourceRoot, "bin" . $sUPDExtensions);
+ my $sSourceRootLib = appendPath($sSourceRoot, "lib" . $sUPDExtensions);
+
+ if (! -d $sSourceRoot )
+ {
+ log_print( "SourceRoot not found, search it in '$sSourceRoot'\n");
+ return "";
+ }
+
+ my $sOOoRunnerPath = $sSourceRootBin;
+ my $sUnoilPath = $sSourceRootBin;
+ my $sRidlPath = $sSourceRootBin;
+ my $sJurtPath = $sSourceRootBin;
+ my $sJuhPath = $sSourceRootBin;
+ my $sJavaUnoPath = $sSourceRootBin;
+
+ my $sOOoRunnerClasspath =
+ appendPath( $sRidlPath, "ridl.jar") . getJavaPathSeparator() .
+ appendPath( $sUnoilPath, "unoil.jar") . getJavaPathSeparator() .
+ appendPath( $sJurtPath, "jurt.jar") . getJavaPathSeparator() .
+ appendPath( $sJuhPath, "juh.jar") . getJavaPathSeparator() .
+ appendPath( $sJavaUnoPath, "java_uno.jar") . getJavaPathSeparator() .
+ appendPath( $sOOoRunnerPath, "OOoRunnerLight.jar");
+ if (isWindowsEnvironment())
+ {
+ $sOOoRunnerClasspath .= getJavaPathSeparator() . $sSourceRootBin;
+ }
+ else
+ {
+ $sOOoRunnerClasspath .= getJavaPathSeparator() . $sSourceRootLib;
+ }
+ return $sOOoRunnerClasspath;
+}
+
+# ------------------------------------------------------------------------------
+sub getTempPath()
+{
+ my $sTempPath;
+ if (isWindowsEnvironment())
+ {
+ $sTempPath = "C:/temp";
+ }
+ elsif (isUnixEnvironment())
+ {
+ $sTempPath = "/tmp";
+ }
+ else
+ {
+ die "getTempPath() Failed, due to unsupported environment.\n";
+ }
+ return $sTempPath;
+}
+# ------------------------------------------------------------------------------
+
+sub getProjectOutput()
+{
+ my $sOutput = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sOutput = appendPath($sOutput, "misc");
+ return $sOutput;
+}
+
+# ------------------------------------------------------------------------------
+sub getProjectOutputReference()
+{
+ my $sOutput = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sOutput = appendPath($sOutput, "reference");
+ return $sOutput;
+}
+
+
+sub searchForReference($)
+{
+ my $sFile = shift;
+ if ( -e $sFile )
+ {
+ return 0;
+ }
+ if ( -e $sFile . ".ps")
+ {
+ return 0;
+ }
+ if ( -e $sFile . ".pdf")
+ {
+ return 0;
+ }
+ return 1;
+}
+# ------------------------------------------------------------------------------
+
+# my $sOfficeName = $officeprefixname . $officename;
+sub SingleDocumentCompare($$$$$$)
+{
+ # get all about the document to compare
+ my $sDocumentPoolPath = shift;
+ my $sDocumentPool = shift;
+ my $sDocumentName = shift;
+ my $sDebug = "";
+
+ # get all about the destination office
+ my $sCreatorType = shift;
+ if (! $sCreatorType)
+ {
+ # log_print( "parameter -creatortype not given. Use 'OOo'\n");
+ $sCreatorType = "ps";
+ }
+ my $prepareonly = shift;
+ my $show = shift;
+
+ # my $nSimpleCompareTime = getTime();
+
+ my $nConvwatchFailed = 0;
+ set_logfile( appendPath(getProjectOutput(), $sDocumentName . ".txt" ));
+
+ print("$sDocumentName");
+ log_print("\n");
+ log_print("Graphical compare on document: '$sDocumentName'\n");
+ # ------------------------------------------------------------------------------
+ # create postscript or pdf from first installed office
+ # ------------------------------------------------------------------------------
+
+ my $sOOoRunnerClasspath = quoteIfNeed(getOOoRunnerClasspath());
+ if ($OSNAME eq "cygwin")
+ {
+ if (!startswith($sOOoRunnerClasspath, "\""))
+ {
+ $sOOoRunnerClasspath = quote($sOOoRunnerClasspath);
+ }
+ }
+ if (length($sOOoRunnerClasspath) == 0)
+ {
+ $nConvwatchFailed == 1;
+ }
+ # ------------------------------------------------------------------------------
+ # create postscript or pdf from second installed office
+ # ------------------------------------------------------------------------------
+
+ my $sPathesIni = appendPath(getProjectOutput(), "pathes.ini");
+ my $gspath = getFromPathes($sPathesIni, "gs.path");
+ my $gsexe = getFromPathes($sPathesIni, "gs.exe");
+ my $impath = getFromPathes($sPathesIni, "imagemagick.path");
+ my $javaexe = getFromPathes($sPathesIni, "java.exe");
+ setJavaExecutable($javaexe);
+
+ log_print("----- CREATE POSTSCRIPT OR PDF WITH RUNNING OFFICE -----\n");
+ # my $nPrepareSecondPostscriptTime = getTime();
+ if ($nConvwatchFailed == 0)
+ {
+ my $sInputPath = $sDocumentPoolPath;
+ $sInputPath = appendPath($sInputPath, $sDocumentPool);
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ if (! -f $sInputPath )
+ {
+ $nConvwatchFailed = 1;
+ log_print("ERROR: File '$sInputPath' doesn't exists.\n");
+ }
+ else
+ {
+ my $sOutputPath = getProjectOutput();
+ my $sPropertyFile = appendPath(getProjectOutput() , $sDocumentName . ".build.props");
+
+ local *PROPERTYFILE;
+ if (open(PROPERTYFILE, ">$sPropertyFile"))
+ {
+ print PROPERTYFILE "# This file is automatically created by graphical_compare.pl\n";
+ print PROPERTYFILE "DOC_COMPARATOR_PRINT_MAX_PAGE=9999\n";
+ print PROPERTYFILE "DOC_COMPARATOR_GFX_OUTPUT_DPI_RESOLUTION=180\n";
+ print PROPERTYFILE "DOC_COMPARATOR_REFERENCE_CREATOR_TYPE=$sCreatorType\n";
+ print PROPERTYFILE "TEMPPATH=" . getTempPath() . "\n";
+ if ($sConncectionString)
+ {
+ print PROPERTYFILE "ConnectionString=$sConncectionString\n";
+ }
+ else
+ {
+ print PROPERTYFILE "ConnectionString=pipe,name=" . getUsername() . "\n";
+ }
+ print PROPERTYFILE "OFFICE_VIEWABLE=true\n";
+ print PROPERTYFILE "CREATE_DEFAULT_REFERENCE=true\n";
+ print PROPERTYFILE "DOC_COMPARATOR_INPUT_PATH=$sInputPath\n";
+ print PROPERTYFILE "DOC_COMPARATOR_OUTPUT_PATH=$sOutputPath\n";
+ if (isWindowsEnvironment())
+ {
+ print PROPERTYFILE "DOC_COMPARATOR_PRINTER_NAME=CrossOffice Generic Printer\n";
+ }
+ print PROPERTYFILE "NoOffice=true\n";
+
+ close(PROPERTYFILE);
+ }
+ else
+ {
+ print "Can't open '$sPropertyFile' for write.\n";
+ }
+ if ( -e "$sPropertyFile")
+ {
+ # start OOoRunner
+ # sleep 10;
+ # $sOOoRunnerClasspathFromDestinationName = quoteIfNeed(getOOoRunnerClasspath());
+ my $sParams;
+ if ( $ENV{PERL} )
+ {
+ $sParams = "-Dperl.exe=" . convertCygwinPath($ENV{PERL});
+ }
+
+ $sParams .= " -cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -ini $sPropertyFile" .
+ " -o graphical.PostscriptCreator";
+ # $sParams .= " -cs pipe,name=$USER";
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create Postscript/pdf document for " . $sDocumentName;
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ else
+ {
+ my $sFailure = "There is no propertyfile: $sPropertyFile";
+ log_print( "ERROR: $sFailure\n");
+ $nConvwatchFailed=1;
+ }
+ }
+
+ # set prepareonly and it is possible to only create ps or pdf files
+ if ($prepareonly)
+ {
+ print(" [only create ");
+ if ($sCreatorType eq "ps" || $sCreatorType eq "pdf")
+ {
+ print(" $sCreatorType");
+ }
+ else
+ {
+ print(" (${sCreatorType}?)");
+ }
+ if ($nConvwatchFailed == 0)
+ {
+ print(" ok");
+ }
+ else
+ {
+ print(" failed")
+ }
+ print("]\n");
+ return $nConvwatchFailed;
+ }
+
+
+ # ------------------------------------------------------------------------------
+ # create jpeg from postscript or pdf from second installed office
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- CREATE JPEG FROM POSTSCRIPT OR PDF FROM RUNNING OFFICE -----\n");
+ # start OOoRunner
+ my $sInputPath = getProjectOutput();
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ my $sOutputPath = getProjectOutput();
+
+ my $sParams = "-cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -DOC_COMPARATOR_REFERENCE_CREATOR_TYPE $sCreatorType" .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGCreator";
+ if ($gspath)
+ {
+ $sParams .= " -gs.path " . quoteIfNeed($gspath);
+ }
+ if ($gsexe)
+ {
+ $sParams .= " -gs.exe $gsexe";
+ }
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ # log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create JPEG from Postscript/pdf document for " . $sDocumentName;
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ }
+
+ # ------------------------------------------------------------------------------
+ # create jpeg from postscript or pdf from references
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- CREATE JPEG FROM POSTSCRIPT OR PDF FROM REFERENCE -----\n");
+
+ # start OOoRunner
+ my $sInputPath = appendPath(getProjectRoot(), "references");
+ $sInputPath = appendPath($sInputPath, getEnvironment());
+ $sInputPath = appendPath($sInputPath, $sDocumentPool);
+ $sInputPath = appendPath($sInputPath, $sDocumentName);
+
+ my $err = searchForReference($sInputPath);
+ if ($err != 0)
+ {
+ log_print("ERROR: Can't find Postscript or PDF reference for '$sInputPath'\n");
+ $nConvwatchFailed = 1;
+ }
+ else
+ {
+ my $sOutputPath = getProjectOutputReference();
+ rmkdir $sOutputPath;
+
+ my $sIndexFile = appendPath($sOutputPath, "index.ini");
+ # we need the index.ini for better run through
+ local *INDEXINI;
+ if ( ! -e $sIndexFile)
+ {
+ if (open(INDEXINI, ">$sIndexFile"))
+ {
+ # print INDEXINI "[$sDocumentName]\n";
+ close(INDEXINI);
+ }
+ }
+ my $sParams = "-cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -DOC_COMPARATOR_REFERENCE_CREATOR_TYPE $sCreatorType" .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGCreator";
+ if ($gspath)
+ {
+ $sParams .= " -gs.path " . quoteIfNeed($gspath);
+ }
+ if ($gsexe)
+ {
+ $sParams .= " -gs.exe $gsexe";
+ }
+
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ # log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after try to create JPEG from Postscript/pdf document for references.";
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+ }
+ }
+ }
+ # ------------------------------------------------------------------------------
+ # compare JPEGs
+ # ------------------------------------------------------------------------------
+
+ if ($nConvwatchFailed == 0)
+ {
+ log_print("----- COMPARE JPEGS -----\n");
+ my $sInputPath = appendPath(getProjectOutputReference(), $sDocumentName);
+
+ my $sOutputPath = getProjectOutput();
+
+ my $sParams = "-Xmx512m" .
+ " -cp " . $sOOoRunnerClasspath .
+ " org.openoffice.Runner" .
+ " -TimeOut $nTimeOut" .
+ " -tb java_complex" .
+ " -DOC_COMPARATOR_INPUT_PATH " . quoteIfNeed($sInputPath) .
+ " -DOC_COMPARATOR_OUTPUT_PATH " . quoteIfNeed($sOutputPath) .
+ " -NoOffice" .
+ " -NoSmallPictures" .
+ " -o graphical.JPEGComparator";
+ if ($impath)
+ {
+ $sParams .= " -imagemagick.path " . quoteIfNeed($impath);
+ }
+
+ # start OOoRunner
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava(getJavaExecutable(), $sParams, $sDebug);
+ $sDebug = "";
+ log_print( "\n\n");
+ if ($err != 0)
+ {
+ my $sFailure = "Failed after compare JPEGs $sDocumentName\n";
+ log_print("ERROR: $sFailure\n");
+ $nConvwatchFailed = 1;
+
+ if ($show)
+ {
+ # try to execute new java tool to show graphical compare
+ my $sJavaProgram = appendPath(getProjectRoot(), $ENV{INPATH});
+ $sJavaProgram = appendPath($sJavaProgram, "class");
+ $sJavaProgram = appendPath($sJavaProgram, "ConvwatchGUIProject.jar");
+ if ( -e "$sJavaProgram")
+ {
+ my $sInputPath = appendPath(getProjectOutput(), $sDocumentName . ".ps.ini");
+ if (! -e $sInputPath)
+ {
+ $sInputPath = appendPath(getProjectOutput(), $sDocumentName . ".pdf.ini");
+ if (! -e $sInputPath)
+ {
+ $sInputPath = 0;
+ }
+ }
+ if ($sInputPath)
+ {
+ my $sParams = "-Xms128m -Xmx512m -jar $sJavaProgram $sInputPath";
+ # $sParams .= " -cs pipe,name=$USER";
+ # my $sJavaExe = "C:/Program Files/Java/jdk1.6.0_16/bin/java.exe"; # getJavaExecutable()
+ my $sJavaExe = getJavaExecutable();
+ # $sDebug = "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=9001,suspend=y";
+ my $err = calljava($sJavaExe, $sParams, $sDebug);
+ # $sDebug = "";
+ # log_print( "\n\n");
+ # if ($err != 0)
+ # {
+ # my $sFailure = "Failed after try to create Postscript/pdf document for " . $sDocumentName;
+ # log_print("ERROR: $sFailure\n");
+ # $nConvwatchFailed = 1;
+ # }
+ }
+ }
+ else
+ {
+ print "WARNING: The show program '$sJavaProgram' doesn't exists.\n";
+ }
+ }
+ }
+ }
+
+ log_print( "\n\n");
+ close_logfile();
+
+ if ($nConvwatchFailed == 0)
+ {
+ print(" [ok]\n");
+ }
+ else
+ {
+ print(" [FAILED]\n");
+ print("\nPrint output of test: $sDocumentName\n");
+ my $sLogFile = appendPath(getProjectOutput(), $sDocumentName . ".txt");
+ showFile($sLogFile);
+ }
+ # printTime(endTime($nSimpleCompareTime));
+
+ return $nConvwatchFailed;
+}
+
+# ------------------------------------------------------------------------------
+# cat $file
+sub showFile($)
+{
+ my $logfile = shift;
+ local *LOGFILE;
+ if (open(LOGFILE, "$logfile"))
+ {
+ my $line;
+ while ($line = <LOGFILE>)
+ {
+ chomp($line);
+ print $line ."\n";
+ }
+ close(LOGFILE);
+ }
+}
+
+
+1;
diff --git a/testgraphical/source/loghelper.pm b/testgraphical/source/loghelper.pm
new file mode 100644
index 000000000000..6dad31c7761a
--- /dev/null
+++ b/testgraphical/source/loghelper.pm
@@ -0,0 +1,94 @@
+package loghelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use strict;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&set_logfile &close_logfile &log_print &setVerbose);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# ------------------------------- Log into a file -------------------------------
+local *LOGFILE;
+our $nGlobalLog = 0;
+our $nGlobalVerbose = 0;
+
+sub setVerbose()
+{
+ $nGlobalVerbose = 1;
+}
+
+sub set_logfile($)
+{
+ my $sLogFile = shift;
+
+ if (open(LOGFILE, ">$sLogFile"))
+ {
+ $nGlobalLog = 1;
+ }
+}
+sub close_logfile()
+{
+ close(LOGFILE);
+ $nGlobalLog = 0;
+}
+
+sub log_print($)
+{
+ my $sLine = shift;
+ if ($nGlobalLog)
+ {
+ print LOGFILE $sLine;
+ }
+ if ($nGlobalVerbose == 1)
+ {
+ print $sLine;
+ }
+ else
+ {
+ # In this special case for NetBeans, which show if a debugger can access.
+ # The Line should print anyway.
+ if ($sLine =~ /Listening for transport/)
+ {
+ print $sLine;
+ }
+ }
+}
+
+1;
diff --git a/testgraphical/source/makefile.mk b/testgraphical/source/makefile.mk
new file mode 100644
index 000000000000..619fd7786f93
--- /dev/null
+++ b/testgraphical/source/makefile.mk
@@ -0,0 +1,112 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=..
+
+PRJNAME=gfxcmp
+TARGET=notargetyet
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+# call with PDF=1 to use office pdf exporter instead of the XPrinter API
+.IF "$(PDF)"!=""
+ CREATORTYPE="-creatortype" pdf
+.ELSE
+ CREATORTYE="-creatortype" ps
+.ENDIF
+
+.IF "$(SHOW)"!=""
+ P_SHOW=-show
+.ENDIF
+
+
+# call with PREPARE=1 to only create new reference files
+# copy these files by hand into the corresponding directories
+.IF "$(PREPARE)"!=""
+ PREPAREONLY="-prepareonly" 1
+.ELSE
+ PREPAREONLY=
+.ENDIF
+
+.IF "$(DOCUMENTPOOL)"==""
+ DOCUMENTPOOL=$PRJ$/document-pool
+.ENDIF
+
+# PERLDEBUG=-d:ptkdb
+ALLTAR: selftest
+# pwd
+# $(PERL) $(PERLDEBUG) compare.pl -MAJOR $(WORK_STAMP) -MINOR $(UPDMINOR) -cwsname "$(CWS_WORK_STAMP)"
+# $(PERL) $(PERLDEBUG) compare.pl -pool singletest
+
+# $(PRJ)$/util$/makefile.pmk contains ALLTAR stuff
+
+# selftest is the default run through at the moment and use pdf export to create output.
+# dmake
+selftest:
+ $(PERL) $(PERLDEBUG) compare.pl -creatortype pdf $(PREPAREONLY) -pool singletest -document eis-test.odt $(P_SHOW)
+
+# selftest_ps is like the default run through but use always postscript print out
+# dmake selftest_ps
+selftest_ps:
+ $(PERL) $(PERLDEBUG) compare.pl -creatortype ps $(PREPAREONLY) -pool singletest -document eis-test.odt $(P_SHOW)
+
+#
+#
+# The follows are demonstration targets, DO NOT DELETE
+#
+#
+
+# dmake demo SHOW=1
+demo:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -pool $@ $(P_SHOW)
+
+# failtest is a demonstration of a failure, with SHOW=1 it should open a java windows which shows 3 pictures,
+# the current document, the reference document and the difference between both.
+# dmake failtest SHOW=1
+# dmake failtest PREPARE=1
+# This test will most the time fail, it is just a demonstration.
+failtest:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -force -pool demo -document CurrentTime.ods $(P_SHOW)
+
+# manual runs through all documents found in document-pool
+# dmake manual
+# dmake manual PDF=1 SHOW=1
+# dmake manual PREPARE=1 PDF=1
+# should help to create a lot of references at one time.
+manual:
+ $(PERL) $(PERLDEBUG) compare.pl $(CREATORTYPE) $(PREPAREONLY) -force $(P_SHOW)
+
+# msoffice:
+# $(PERL) $(PERLDEBUG) compare.pl -creatortype msoffice $(PREPAREONLY) -pool msoffice -document calc_cellformat_import_biff8.xls $(P_SHOW)
+
+clean:
diff --git a/testgraphical/source/oshelper.pm b/testgraphical/source/oshelper.pm
new file mode 100644
index 000000000000..3f2ed1c44e38
--- /dev/null
+++ b/testgraphical/source/oshelper.pm
@@ -0,0 +1,110 @@
+package oshelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use English;
+use warnings;
+use strict;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getEnvironment &isWindowsEnvironment &isUnixEnvironment &getUsername);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+sub getEnvironment()
+{
+ my $sEnvironment;
+ if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin")
+ {
+ $sEnvironment = "wntmsci";
+ }
+ elsif ( $OSNAME eq "linux")
+ {
+ $sEnvironment = "unxlngi";
+ }
+ elsif ( $OSNAME eq "solaris")
+ {
+ $sEnvironment = "unxsoli";
+ }
+ else
+ {
+ print "Unknown Environment please check OSNAME: '$OSNAME'\n";
+ $sEnvironment = "unknown";
+ }
+ return $sEnvironment;
+}
+
+# ------------------------------------------------------------------------------
+
+sub isWindowsEnvironment()
+{
+ if ($OSNAME eq "MSWin32" ||
+ $OSNAME eq "cygwin")
+ {
+ return 1;
+ }
+ return 0;
+}
+
+sub isUnixEnvironment()
+{
+ if ($OSNAME eq "linux" ||
+ $OSNAME eq "solaris")
+ {
+ return 1;
+ }
+ return 0;
+}
+
+sub getUsername()
+{
+ my $sUser = $ENV{USER};
+ if (!$sUser)
+ {
+ $sUser = $ENV{USERNAME};
+ }
+ if (!$sUser)
+ {
+ die "Username not set.\n";
+ }
+ return $sUser;
+}
+
+1;
diff --git a/testgraphical/source/solarenvhelper.pm b/testgraphical/source/solarenvhelper.pm
new file mode 100644
index 000000000000..f8ec17ece12b
--- /dev/null
+++ b/testgraphical/source/solarenvhelper.pm
@@ -0,0 +1,63 @@
+package solarenvhelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use strict;
+use warnings;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&setSolenvPath &getSolenvPath);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+our $sSolenvPath;
+sub setSolenvPath($)
+{
+ $sSolenvPath = shift;
+}
+sub getSolenvPath()
+{
+ if ($sSolenvPath)
+ {
+ return $sSolenvPath;
+ }
+ print "INTERNAL ERROR: You must set the solenv path to the performancetest, by call setSolenvPath()\n";
+ exit 1;
+}
+
+1;
diff --git a/testgraphical/source/stringhelper.pm b/testgraphical/source/stringhelper.pm
new file mode 100644
index 000000000000..e7d19256bf1b
--- /dev/null
+++ b/testgraphical/source/stringhelper.pm
@@ -0,0 +1,69 @@
+package stringhelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use strict;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&endswith &startswith);
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+# string helper like java endsWith
+sub endswith($$)
+{
+ my $string = shift;
+ my $search = shift;
+ if ( $string =~ /${search}$/ )
+ {
+ return 1;
+ }
+ return 0;
+}
+sub startswith($$)
+{
+ my $string = shift;
+ my $search = shift;
+ if ( $string =~ /^${search}/ )
+ {
+ return 1;
+ }
+ return 0;
+}
+
+1;
diff --git a/testgraphical/source/timehelper.pm b/testgraphical/source/timehelper.pm
new file mode 100644
index 000000000000..38bd56fc4b20
--- /dev/null
+++ b/testgraphical/source/timehelper.pm
@@ -0,0 +1,99 @@
+package timehelper;
+
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+use POSIX qw(strftime);
+use POSIX qw(time difftime);
+# use POSIX qw(localtime);
+use strict;
+# use Time::localtime;
+use loghelper;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+
+ $VERSION = 1.00;
+ # if using RCS/CVS, this may be preferred
+ $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
+ @ISA = qw(Exporter);
+ @EXPORT = qw(&getTime &endTime &printTime &waitAMinute );
+ %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ],
+ # your exported package globals go here,
+ # as well as any optionally exported functions
+ @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3);
+}
+
+
+# ------------------------------------------------------------------------------
+# our $starttime;
+sub getTime()
+{
+ my $nValue;
+ # $nValue = localtime->sec();
+ # $nValue += 60 * localtime->min();
+ # $nValue += 3600 * localtime->hour();
+ $nValue = time();
+ return $nValue;
+}
+# sub startTime()
+# {
+# $starttime = getTime();
+# }
+sub endTime($)
+{
+ my $starttime = shift;
+
+ my $endtime = getTime();
+ my $nTime = difftime($endtime, $starttime);
+ # my $nTime = $endtime - $starttime;
+ # if ($nTime < 0)
+ # {
+ # $nTime += 24 * 3600; # add 24 hours
+ # }
+ return $nTime;
+}
+sub printTime($)
+{
+ my $nTime = shift;
+ print( "Time: " . $nTime . " seconds.\n\n");
+}
+
+
+# sub waitAMinute()
+# {
+# # _waitInSeconds(20);
+# # _waitInSeconds(20);
+# my $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime;
+# print $now_string . "\n";
+# # print getCurrentDateString() . "\n";
+# sleep(60);
+# }
+#
+
+1;
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/build.xml b/testgraphical/ui/java/ConvwatchGUIProject/build.xml
new file mode 100644
index 000000000000..e4d82212f35d
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/build.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- You may freely edit this file. See commented blocks below for -->
+<!-- some examples of how to customize the build. -->
+<!-- (If you delete it and reopen the project it will be recreated.) -->
+<!-- By default, only the Clean and Build commands use this build script. -->
+<!-- Commands such as Run, Debug, and Test only use this build script if -->
+<!-- the Compile on Save feature is turned off for the project. -->
+<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
+<!-- in the project's Project Properties dialog box.-->
+<project name="ConvwatchGUIProject" default="default" basedir=".">
+ <description>Builds, tests, and runs the project ConvwatchGUIProject.</description>
+ <import file="nbproject/build-impl.xml"/>
+ <!--
+
+ There exist several targets which are by default empty and which can be
+ used for execution of your tasks. These targets are usually executed
+ before and after some main targets. They are:
+
+ -pre-init: called before initialization of project properties
+ -post-init: called after initialization of project properties
+ -pre-compile: called before javac compilation
+ -post-compile: called after javac compilation
+ -pre-compile-single: called before javac compilation of single file
+ -post-compile-single: called after javac compilation of single file
+ -pre-compile-test: called before javac compilation of JUnit tests
+ -post-compile-test: called after javac compilation of JUnit tests
+ -pre-compile-test-single: called before javac compilation of single JUnit test
+ -post-compile-test-single: called after javac compilation of single JUunit test
+ -pre-jar: called before JAR building
+ -post-jar: called after JAR building
+ -post-clean: called after cleaning build products
+
+ (Targets beginning with '-' are not intended to be called on their own.)
+
+ Example of inserting an obfuscator after compilation could look like this:
+
+ <target name="-post-compile">
+ <obfuscate>
+ <fileset dir="${build.classes.dir}"/>
+ </obfuscate>
+ </target>
+
+ For list of available properties check the imported
+ nbproject/build-impl.xml file.
+
+
+ Another way to customize the build is by overriding existing main targets.
+ The targets of interest are:
+
+ -init-macrodef-javac: defines macro for javac compilation
+ -init-macrodef-junit: defines macro for junit execution
+ -init-macrodef-debug: defines macro for class debugging
+ -init-macrodef-java: defines macro for class execution
+ -do-jar-with-manifest: JAR building (if you are using a manifest)
+ -do-jar-without-manifest: JAR building (if you are not using a manifest)
+ run: execution of project
+ -javadoc-build: Javadoc generation
+ test-report: JUnit report generation
+
+ An example of overriding the target for project execution could look like this:
+
+ <target name="run" depends="ConvwatchGUIProject-impl.jar">
+ <exec dir="bin" executable="launcher.exe">
+ <arg file="${dist.jar}"/>
+ </exec>
+ </target>
+
+ Notice that the overridden target depends on the jar target and not only on
+ the compile target as the regular run target does. Again, for a list of available
+ properties which you can use, check the target you are overriding in the
+ nbproject/build-impl.xml file.
+
+ -->
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar b/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar
new file mode 100644
index 000000000000..3b0ac20afa74
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/dist/ConvwatchGUIProject.jar
Binary files differ
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/makefile.mk b/testgraphical/ui/java/ConvwatchGUIProject/makefile.mk
new file mode 100644
index 000000000000..5cb16f1d4c31
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/makefile.mk
@@ -0,0 +1,71 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=../../..
+
+PRJNAME=gfxcmp_ui_java_convwatchgui
+TARGET=notargetyet
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- ANT build environment ---------------------------------------
+
+.INCLUDE : antsettings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(SHOW)" == ""
+nothing .PHONY:
+
+.ELSE
+
+
+ALLTAR: dist/ConvwatchGUIProject.jar
+
+dist/ConvwatchGUIProject.jar: src/ConvwatchGUI.java src/IniFile.java
+# .if $(JDK_VERSION) < 160
+# echo "You need at least java 6"
+# error
+# .endif
+#
+.IF "$(GUI)"=="WNT"
+ $(ANT)
+.ELSE
+ ant
+.END
+
+.END
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+clean:
+ $(ANT) clean
+
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf b/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf
new file mode 100644
index 000000000000..328e8e5bc3b7
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/manifest.mf
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+X-COMMENT: Main-Class will be added automatically by build
+
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml
new file mode 100644
index 000000000000..e493afec4fc3
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/build-impl.xml
@@ -0,0 +1,805 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+*** GENERATED FROM project.xml - DO NOT EDIT ***
+*** EDIT ../build.xml INSTEAD ***
+
+For the purpose of easier reading the script
+is divided into following sections:
+
+ - initialization
+ - compilation
+ - jar
+ - execution
+ - debugging
+ - javadoc
+ - junit compilation
+ - junit execution
+ - junit debugging
+ - applet
+ - cleanup
+
+ -->
+<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="ConvwatchGUIProject-impl">
+ <fail message="Please build using Ant 1.7.1 or higher.">
+ <condition>
+ <not>
+ <antversion atleast="1.7.1"/>
+ </not>
+ </condition>
+ </fail>
+ <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
+ <!--
+ ======================
+ INITIALIZATION SECTION
+ ======================
+ -->
+ <target name="-pre-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init" name="-init-private">
+ <property file="nbproject/private/config.properties"/>
+ <property file="nbproject/private/configs/${config}.properties"/>
+ <property file="nbproject/private/private.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private" name="-init-user">
+ <property file="${user.properties.file}"/>
+ <!-- The two properties below are usually overridden -->
+ <!-- by the active platform. Just a fallback. -->
+ <property name="default.javac.source" value="1.4"/>
+ <property name="default.javac.target" value="1.4"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user" name="-init-project">
+ <property file="nbproject/configs/${config}.properties"/>
+ <property file="nbproject/project.properties"/>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init">
+ <available file="${manifest.file}" property="manifest.available"/>
+ <condition property="main.class.available">
+ <and>
+ <isset property="main.class"/>
+ <not>
+ <equals arg1="${main.class}" arg2="" trim="true"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class">
+ <and>
+ <isset property="manifest.available"/>
+ <isset property="main.class.available"/>
+ </and>
+ </condition>
+ <condition property="do.mkdist">
+ <and>
+ <isset property="libs.CopyLibs.classpath"/>
+ <not>
+ <istrue value="${mkdist.disabled}"/>
+ </not>
+ </and>
+ </condition>
+ <condition property="manifest.available+main.class+mkdist.available">
+ <and>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available+mkdist.available">
+ <and>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </and>
+ </condition>
+ <condition property="manifest.available-mkdist.available">
+ <or>
+ <istrue value="${manifest.available}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="manifest.available+main.class-mkdist.available">
+ <or>
+ <istrue value="${manifest.available+main.class}"/>
+ <isset property="do.mkdist"/>
+ </or>
+ </condition>
+ <condition property="have.tests">
+ <or>
+ <available file="${test.src.dir}"/>
+ </or>
+ </condition>
+ <condition property="have.sources">
+ <or>
+ <available file="${src.dir}"/>
+ </or>
+ </condition>
+ <condition property="netbeans.home+have.tests">
+ <and>
+ <isset property="netbeans.home"/>
+ <isset property="have.tests"/>
+ </and>
+ </condition>
+ <condition property="no.javadoc.preview">
+ <and>
+ <isset property="javadoc.preview"/>
+ <isfalse value="${javadoc.preview}"/>
+ </and>
+ </condition>
+ <property name="run.jvmargs" value=""/>
+ <property name="javac.compilerargs" value=""/>
+ <property name="work.dir" value="${basedir}"/>
+ <condition property="no.deps">
+ <and>
+ <istrue value="${no.dependencies}"/>
+ </and>
+ </condition>
+ <property name="javac.debug" value="true"/>
+ <property name="javadoc.preview" value="true"/>
+ <property name="application.args" value=""/>
+ <property name="source.encoding" value="${file.encoding}"/>
+ <property name="runtime.encoding" value="${source.encoding}"/>
+ <condition property="javadoc.encoding.used" value="${javadoc.encoding}">
+ <and>
+ <isset property="javadoc.encoding"/>
+ <not>
+ <equals arg1="${javadoc.encoding}" arg2=""/>
+ </not>
+ </and>
+ </condition>
+ <property name="javadoc.encoding.used" value="${source.encoding}"/>
+ <property name="includes" value="**"/>
+ <property name="excludes" value=""/>
+ <property name="do.depend" value="false"/>
+ <condition property="do.depend.true">
+ <istrue value="${do.depend}"/>
+ </condition>
+ <path id="endorsed.classpath.path" path="${endorsed.classpath}"/>
+ <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'">
+ <length length="0" string="${endorsed.classpath}" when="greater"/>
+ </condition>
+ <property name="javac.fork" value="false"/>
+ </target>
+ <target name="-post-init">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check">
+ <fail unless="src.dir">Must set src.dir</fail>
+ <fail unless="test.src.dir">Must set test.src.dir</fail>
+ <fail unless="build.dir">Must set build.dir</fail>
+ <fail unless="dist.dir">Must set dist.dir</fail>
+ <fail unless="build.classes.dir">Must set build.classes.dir</fail>
+ <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail>
+ <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail>
+ <fail unless="build.test.results.dir">Must set build.test.results.dir</fail>
+ <fail unless="build.classes.excludes">Must set build.classes.excludes</fail>
+ <fail unless="dist.jar">Must set dist.jar</fail>
+ </target>
+ <target name="-init-macrodef-property">
+ <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute name="name"/>
+ <attribute name="value"/>
+ <sequential>
+ <property name="@{name}" value="${@{value}}"/>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-javac">
+ <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="${javac.debug}" name="debug"/>
+ <attribute default="${empty.dir}" name="sourcepath"/>
+ <attribute default="${empty.dir}" name="gensrcdir"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <property location="${build.dir}/empty" name="empty.dir"/>
+ <mkdir dir="${empty.dir}"/>
+ <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}">
+ <src>
+ <dirset dir="@{gensrcdir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </src>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <compilerarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <compilerarg line="${javac.compilerargs}"/>
+ <customize/>
+ </javac>
+ </sequential>
+ </macrodef>
+ <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${src.dir}" name="srcdir"/>
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <attribute default="${javac.classpath}" name="classpath"/>
+ <sequential>
+ <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </depend>
+ </sequential>
+ </macrodef>
+ <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${build.classes.dir}" name="destdir"/>
+ <sequential>
+ <fail unless="javac.includes">Must set javac.includes</fail>
+ <pathconvert pathsep="," property="javac.includes.binary">
+ <path>
+ <filelist dir="@{destdir}" files="${javac.includes}"/>
+ </path>
+ <globmapper from="*.java" to="*.class"/>
+ </pathconvert>
+ <delete>
+ <files includes="${javac.includes.binary}"/>
+ </delete>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-junit">
+ <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${includes}" name="includes"/>
+ <attribute default="${excludes}" name="excludes"/>
+ <attribute default="**" name="testincludes"/>
+ <sequential>
+ <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}">
+ <batchtest todir="${build.test.results.dir}">
+ <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
+ <filename name="@{testincludes}"/>
+ </fileset>
+ </batchtest>
+ <classpath>
+ <path path="${run.test.classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <formatter type="brief" usefile="false"/>
+ <formatter type="xml"/>
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ </junit>
+ </sequential>
+ </macrodef>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-nbjpda">
+ <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="name"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <attribute default="" name="stopclassname"/>
+ <sequential>
+ <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}">
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ </nbjpdastart>
+ </sequential>
+ </macrodef>
+ <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${build.classes.dir}" name="dir"/>
+ <sequential>
+ <nbjpdareload>
+ <fileset dir="@{dir}" includes="${fix.classes}">
+ <include name="${fix.includes}*.class"/>
+ </fileset>
+ </nbjpdareload>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-debug-args">
+ <property name="version-output" value="java version &quot;${ant.java.version}"/>
+ <condition property="have-jdk-older-than-1.4">
+ <or>
+ <contains string="${version-output}" substring="java version &quot;1.0"/>
+ <contains string="${version-output}" substring="java version &quot;1.1"/>
+ <contains string="${version-output}" substring="java version &quot;1.2"/>
+ <contains string="${version-output}" substring="java version &quot;1.3"/>
+ </or>
+ </condition>
+ <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none">
+ <istrue value="${have-jdk-older-than-1.4}"/>
+ </condition>
+ <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem">
+ <os family="windows"/>
+ </condition>
+ <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}">
+ <isset property="debug.transport"/>
+ </condition>
+ </target>
+ <target depends="-init-debug-args" name="-init-macrodef-debug">
+ <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${debug.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg line="${debug-args-line}"/>
+ <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-macrodef-java">
+ <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <attribute default="${main.class}" name="classname"/>
+ <attribute default="${run.classpath}" name="classpath"/>
+ <element name="customize" optional="true"/>
+ <sequential>
+ <java classname="@{classname}" dir="${work.dir}" fork="true">
+ <jvmarg line="${endorsed.classpath.cmd.line.arg}"/>
+ <jvmarg value="-Dfile.encoding=${runtime.encoding}"/>
+ <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/>
+ <jvmarg line="${run.jvmargs}"/>
+ <classpath>
+ <path path="@{classpath}"/>
+ </classpath>
+ <syspropertyset>
+ <propertyref prefix="run-sys-prop."/>
+ <mapper from="run-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <customize/>
+ </java>
+ </sequential>
+ </macrodef>
+ </target>
+ <target name="-init-presetdef-jar">
+ <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
+ <jar compress="${jar.compress}" jarfile="${dist.jar}">
+ <j2seproject1:fileset dir="${build.classes.dir}"/>
+ </jar>
+ </presetdef>
+ </target>
+ <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-junit,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar" name="init"/>
+ <!--
+ ===================
+ COMPILATION SECTION
+ ===================
+ -->
+ <target name="-deps-jar-init" unless="built-jar.properties">
+ <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/>
+ <delete file="${built-jar.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.jar.${basedir}" name="-warn-already-built-jar">
+ <echo level="warn" message="Cycle detected: ConvwatchGUIProject was already built"/>
+ </target>
+ <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-jar.properties}" verbose="false"/>
+ <property file="${built-jar.properties}" prefix="already.built.jar."/>
+ <antcall target="-warn-already-built-jar"/>
+ <propertyfile file="${built-jar.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/>
+ <target depends="init" name="-check-automatic-build">
+ <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/>
+ </target>
+ <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build">
+ <antcall target="clean"/>
+ </target>
+ <target depends="init,deps-jar" name="-pre-pre-compile">
+ <mkdir dir="${build.classes.dir}"/>
+ </target>
+ <target name="-pre-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-depend">
+ <pathconvert property="build.generated.subdirs">
+ <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="*"/>
+ </dirset>
+ </pathconvert>
+ <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
+ <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
+ <copy todir="${build.classes.dir}">
+ <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/>
+ <target name="-pre-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile/>
+ <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
+ </target>
+ <target name="-post-compile-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/>
+ <!--
+ ====================
+ JAR BUILDING SECTION
+ ====================
+ -->
+ <target depends="init" name="-pre-pre-jar">
+ <dirname file="${dist.jar}" property="dist.jar.dir"/>
+ <mkdir dir="${dist.jar.dir}"/>
+ </target>
+ <target name="-pre-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" name="-do-jar-without-manifest" unless="manifest.available-mkdist.available">
+ <j2seproject1:jar/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available" name="-do-jar-with-manifest" unless="manifest.available+main.class-mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class" name="-do-jar-with-mainclass" unless="manifest.available+main.class+mkdist.available">
+ <j2seproject1:jar manifest="${manifest.file}">
+ <j2seproject1:manifest>
+ <j2seproject1:attribute name="Main-Class" value="${main.class}"/>
+ </j2seproject1:manifest>
+ </j2seproject1:jar>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <pathconvert property="run.classpath.with.dist.jar">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/>
+ </pathconvert>
+ <echo>java -cp "${run.classpath.with.dist.jar}" ${main.class}</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+main.class+mkdist.available" name="-do-jar-with-libraries">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Main-Class" value="${main.class}"/>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ <echo>To run this application from the command line without Ant, try:</echo>
+ <property location="${dist.jar}" name="dist.jar.resolved"/>
+ <echo>java -jar "${dist.jar.resolved}"</echo>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="manifest.available+mkdist.available" name="-do-jar-with-libraries-without-mainclass" unless="main.class.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target depends="init,compile,-pre-pre-jar,-pre-jar" if="do.mkdist" name="-do-jar-with-libraries-without-manifest" unless="manifest.available">
+ <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
+ <pathconvert property="run.classpath.without.build.classes.dir">
+ <path path="${run.classpath}"/>
+ <map from="${build.classes.dir.resolved}" to=""/>
+ </pathconvert>
+ <pathconvert pathsep=" " property="jar.classpath">
+ <path path="${run.classpath.without.build.classes.dir}"/>
+ <chainedmapper>
+ <flattenmapper/>
+ <globmapper from="*" to="lib/*"/>
+ </chainedmapper>
+ </pathconvert>
+ <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
+ <copylibs compress="${jar.compress}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
+ <fileset dir="${build.classes.dir}"/>
+ <manifest>
+ <attribute name="Class-Path" value="${jar.classpath}"/>
+ </manifest>
+ </copylibs>
+ </target>
+ <target name="-post-jar">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-jar-with-libraries-without-mainclass,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
+ <!--
+ =================
+ EXECUTION SECTION
+ =================
+ -->
+ <target depends="init,compile" description="Run a main class." name="run">
+ <j2seproject1:java>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <target name="-do-not-recompile">
+ <property name="javac.includes.binary" value=""/>
+ </target>
+ <target depends="init,compile-single" name="run-single">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}"/>
+ </target>
+ <target depends="init,compile-test-single" name="run-test-with-main">
+ <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
+ <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
+ </target>
+ <!--
+ =================
+ DEBUGGING SECTION
+ =================
+ -->
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger">
+ <j2seproject1:nbjpdastart name="${debug.class}"/>
+ </target>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
+ </target>
+ <target depends="init,compile" name="-debug-start-debuggee">
+ <j2seproject3:debug>
+ <customize>
+ <arg line="${application.args}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/>
+ <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto">
+ <j2seproject1:nbjpdastart stopclassname="${main.class}"/>
+ </target>
+ <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/>
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}"/>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
+ <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
+ <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
+ <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
+ <target depends="init" name="-pre-debug-fix">
+ <fail unless="fix.includes">Must set fix.includes</fail>
+ <property name="javac.includes" value="${fix.includes}.java"/>
+ </target>
+ <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix">
+ <j2seproject1:nbjpdareload/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/>
+ <!--
+ ===============
+ JAVADOC SECTION
+ ===============
+ -->
+ <target depends="init" name="-javadoc-build">
+ <mkdir dir="${dist.javadoc.dir}"/>
+ <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
+ <classpath>
+ <path path="${javac.classpath}"/>
+ </classpath>
+ <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
+ <filename name="**/*.java"/>
+ </fileset>
+ <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
+ <include name="**/*.java"/>
+ </fileset>
+ </javadoc>
+ </target>
+ <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
+ <nbbrowse file="${dist.javadoc.dir}/index.html"/>
+ </target>
+ <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/>
+ <!--
+ =========================
+ JUNIT COMPILATION SECTION
+ =========================
+ -->
+ <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test">
+ <mkdir dir="${build.test.classes.dir}"/>
+ </target>
+ <target name="-pre-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target if="do.depend.true" name="-compile-test-depend">
+ <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test">
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/>
+ <target name="-pre-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single">
+ <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
+ <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/>
+ <j2seproject3:javac classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"/>
+ <copy todir="${build.test.classes.dir}">
+ <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
+ </copy>
+ </target>
+ <target name="-post-compile-test-single">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/>
+ <!--
+ =======================
+ JUNIT EXECUTION SECTION
+ =======================
+ -->
+ <target depends="init" if="have.tests" name="-pre-test-run">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
+ <j2seproject3:junit testincludes="**/*Test.java"/>
+ </target>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init" if="have.tests" name="test-report"/>
+ <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
+ <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/>
+ <target depends="init" if="have.tests" name="-pre-test-run-single">
+ <mkdir dir="${build.test.results.dir}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
+ <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
+ <j2seproject3:junit excludes="" includes="${test.includes}"/>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
+ <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
+ </target>
+ <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
+ <!--
+ =======================
+ JUNIT DEBUGGING SECTION
+ =======================
+ -->
+ <target depends="init,compile-test" if="have.tests" name="-debug-start-debuggee-test">
+ <fail unless="test.class">Must select one file in the IDE or set test.class</fail>
+ <property location="${build.test.results.dir}/TEST-${test.class}.xml" name="test.report.file"/>
+ <delete file="${test.report.file}"/>
+ <mkdir dir="${build.test.results.dir}"/>
+ <j2seproject3:debug classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner" classpath="${ant.home}/lib/ant.jar:${ant.home}/lib/ant-junit.jar:${debug.test.classpath}">
+ <customize>
+ <syspropertyset>
+ <propertyref prefix="test-sys-prop."/>
+ <mapper from="test-sys-prop.*" to="*" type="glob"/>
+ </syspropertyset>
+ <arg value="${test.class}"/>
+ <arg value="showoutput=true"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"/>
+ <arg value="formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test.report.file}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test">
+ <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/>
+ </target>
+ <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/>
+ <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test">
+ <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/>
+ </target>
+ <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/>
+ <!--
+ =========================
+ APPLET EXECUTION SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" name="run-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject1:java classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject1:java>
+ </target>
+ <!--
+ =========================
+ APPLET DEBUGGING SECTION
+ =========================
+ -->
+ <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet">
+ <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail>
+ <j2seproject3:debug classname="sun.applet.AppletViewer">
+ <customize>
+ <arg value="${applet.url}"/>
+ </customize>
+ </j2seproject3:debug>
+ </target>
+ <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/>
+ <!--
+ ===============
+ CLEANUP SECTION
+ ===============
+ -->
+ <target name="-deps-clean-init" unless="built-clean.properties">
+ <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/>
+ <delete file="${built-clean.properties}" quiet="true"/>
+ </target>
+ <target if="already.built.clean.${basedir}" name="-warn-already-built-clean">
+ <echo level="warn" message="Cycle detected: ConvwatchGUIProject was already built"/>
+ </target>
+ <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps">
+ <mkdir dir="${build.dir}"/>
+ <touch file="${built-clean.properties}" verbose="false"/>
+ <property file="${built-clean.properties}" prefix="already.built.clean."/>
+ <antcall target="-warn-already-built-clean"/>
+ <propertyfile file="${built-clean.properties}">
+ <entry key="${basedir}" value=""/>
+ </propertyfile>
+ </target>
+ <target depends="init" name="-do-clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/>
+ </target>
+ <target name="-post-clean">
+ <!-- Empty placeholder for easier customization. -->
+ <!-- You can override this target in the ../build.xml file. -->
+ </target>
+ <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/>
+ <target name="-check-call-dep">
+ <property file="${call.built.properties}" prefix="already.built."/>
+ <condition property="should.call.dep">
+ <not>
+ <isset property="already.built.${call.subproject}"/>
+ </not>
+ </condition>
+ </target>
+ <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep">
+ <ant antfile="${call.script}" inheritall="false" target="${call.target}">
+ <propertyset>
+ <propertyref prefix="transfer."/>
+ <mapper from="transfer.*" to="*" type="glob"/>
+ </propertyset>
+ </ant>
+ </target>
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties
new file mode 100644
index 000000000000..1b4512b96265
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/genfiles.properties
@@ -0,0 +1,8 @@
+build.xml.data.CRC32=d17eccb2
+build.xml.script.CRC32=a183e208
+build.xml.stylesheet.CRC32=958a1d3e@1.32.1.45
+# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
+# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
+nbproject/build-impl.xml.data.CRC32=d17eccb2
+nbproject/build-impl.xml.script.CRC32=ea0e5dc9
+nbproject/build-impl.xml.stylesheet.CRC32=576378a2@1.32.1.45
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/config.properties
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties
new file mode 100644
index 000000000000..18af3f70309a
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.properties
@@ -0,0 +1,7 @@
+application.args=D:\\sources\\gfxcmp02\\DEV300\\ooo\\testgraphical\\wntmsci12.pro\\misc\\CurrentTime.ods.ps.ini
+compile.on.save=true
+do.depend=false
+do.jar=true
+javac.debug=true
+javadoc.preview=true
+user.properties.file=C:\\Documents and Settings\\ll93751\\.netbeans\\6.8\\build.properties
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml
new file mode 100644
index 000000000000..c1f155a782bd
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/private/private.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
+ <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
+</project-private>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties
new file mode 100644
index 000000000000..3ec3fae330ae
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.properties
@@ -0,0 +1,71 @@
+application.desc=This Program shows three pictures in one line.
+application.title=ConvwatchGUIProject
+application.vendor=Oracle and/or its affiliates
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+ ${run.classpath}
+debug.test.classpath=\
+ ${run.test.classpath}
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/ConvwatchGUIProject.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+endorsed.classpath=
+excludes=
+includes=**
+jar.compress=false
+javac.classpath=
+# Space-separated list of extra javac options
+javac.compilerargs=
+javac.deprecation=false
+javac.source=1.5
+javac.target=1.5
+javac.test.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}:\
+ ${libs.junit.classpath}:\
+ ${libs.junit_4.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+jnlp.codebase.type=local
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.offline-allowed=false
+jnlp.signed=false
+main.class=ConvwatchGUI
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+platform.active=default_platform
+run.classpath=\
+ ${javac.classpath}:\
+ ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project
+# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value
+# or test-sys-prop.name=value to set system properties for unit tests):
+run.jvmargs=
+run.test.classpath=\
+ ${javac.test.classpath}:\
+ ${build.test.classes.dir}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml
new file mode 100644
index 000000000000..0bc513904c86
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/nbproject/project.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.java.j2seproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
+ <name>ConvwatchGUIProject</name>
+ <source-roots>
+ <root id="src.dir"/>
+ </source-roots>
+ <test-roots>
+ <root id="test.src.dir"/>
+ </test-roots>
+ </data>
+ </configuration>
+</project>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form
new file mode 100644
index 000000000000..ad0552d1efd5
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.form
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="3"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <Events>
+ <EventHandler event="componentResized" listener="java.awt.event.ComponentListener" parameters="java.awt.event.ComponentEvent" handler="formComponentResized"/>
+ <EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="formPropertyChange"/>
+ </Events>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ </AuxValues>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jPanel5" alignment="0" max="32767" attributes="0"/>
+ <Component id="jPanel4" alignment="0" max="32767" attributes="0"/>
+ <Group type="102" alignment="1" attributes="0">
+ <Component id="jPanelOriginal" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanelReference" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanelDifference" max="32767" attributes="0"/>
+ </Group>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jPanel5" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jPanelReference" alignment="1" max="32767" attributes="1"/>
+ <Component id="jPanelOriginal" alignment="1" max="32767" attributes="1"/>
+ <Component id="jPanelDifference" alignment="0" max="32767" attributes="1"/>
+ </Group>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ <Component id="jPanel4" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanelOriginal">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Picture"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelOriginalImage" pref="299" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelOriginalImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelOriginalImage">
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanelReference">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Reference Picture"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelReferenceImage" pref="299" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelReferenceImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelReferenceImage">
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanelDifference">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Difference"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jLabelDifferenceImage" pref="298" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabelDifferenceImage" pref="514" max="32767" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabelDifferenceImage">
+ <Properties>
+ <Property name="name" type="java.lang.String" value="DifferenceImage" noResource="true"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Action"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jButton2" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ <Component id="jButton3" min="-2" max="-2" attributes="0"/>
+ <EmptySpace type="separate" max="-2" attributes="0"/>
+ <Component id="jLabelCurrentPage" min="-2" pref="107" max="-2" attributes="0"/>
+ <EmptySpace pref="614" max="32767" attributes="0"/>
+ <Component id="jButton1" min="-2" max="-2" attributes="0"/>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="32767" attributes="0"/>
+ <Group type="103" groupAlignment="3" attributes="0">
+ <Component id="jButton1" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jButton3" alignment="3" min="-2" max="-2" attributes="0"/>
+ <Component id="jLabelCurrentPage" alignment="3" min="-2" max="-2" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JButton" name="jButton1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Close"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="jButton2">
+ <Properties>
+ <Property name="label" type="java.lang.String" value="prev page"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton2ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JButton" name="jButton3">
+ <Properties>
+ <Property name="label" type="java.lang.String" value="next page"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton3ActionPerformed"/>
+ </Events>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabelCurrentPage">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Current page: 1"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel5">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Information"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout>
+ <DimensionLayout dim="0">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="1" attributes="0">
+ <EmptySpace max="-2" attributes="0"/>
+ <Group type="103" groupAlignment="1" attributes="0">
+ <Component id="jLabel1" alignment="0" pref="972" max="32767" attributes="0"/>
+ <Component id="jLabelDocumentName" alignment="0" pref="972" max="32767" attributes="0"/>
+ </Group>
+ <EmptySpace max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ <DimensionLayout dim="1">
+ <Group type="103" groupAlignment="0" attributes="0">
+ <Group type="102" alignment="0" attributes="0">
+ <Component id="jLabel1" pref="50" max="32767" attributes="0"/>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ <Component id="jLabelDocumentName" min="-2" pref="19" max="-2" attributes="0"/>
+ <EmptySpace min="-2" max="-2" attributes="0"/>
+ </Group>
+ </Group>
+ </DimensionLayout>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="&lt;html&gt;Here you see a graphical compare by pictures created with a current running office, a stored reference picture and the difference between those both pictures created by ImageMagicks &apos;composite&apos;.&#xa;&lt;/html&gt;" noResource="true"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabelDocumentName">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="jLabel2"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java
new file mode 100644
index 000000000000..625e7b80c6e0
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/ConvwatchGUI.java
@@ -0,0 +1,535 @@
+
+import java.awt.Dimension;
+import java.awt.Image;
+import java.io.File;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.SwingWorker;
+
+/*
+**************************************************************************
+*
+* 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.
+*
+**************************************************************************
+ */
+
+/*
+ * Simple windows, which should show differences if there are some
+ */
+
+public class ConvwatchGUI extends javax.swing.JFrame
+{
+ private ImageIcon[] m_aImageIcon;
+ private String m_sInifile;
+ private int m_nMaxPages;
+ private int m_nCurrentPage;
+
+ /** Creates new form ConvwatchGUI
+ * @param args
+ */
+
+ private ConvwatchGUI(String args[])
+ {
+ if (args.length > 0)
+ {
+ if (args[0].endsWith(".ini"))
+ {
+ m_sInifile = args[0];
+ fillImageIconsFromInifile();
+ }
+ else
+ {
+ fillImageIcons(args);
+ }
+ }
+
+ String sVersion = System.getProperty("java.version");
+ Float f = Float.valueOf(sVersion.substring(0,3));
+ if (f.floatValue() < (float)1.6)
+ {
+ System.out.println("You need at least Java version 1.6");
+ System.exit(1);
+ }
+
+ initComponents();
+ jLabelDocumentName.setText("Document: " + m_sInifile);
+ }
+
+ void fillImageIconsFromInifile()
+ {
+ File aFile = new File(m_sInifile);
+ if (!aFile.exists())
+ {
+ GlobalLogWriter.println("Inifile '" + m_sInifile + "' not found.");
+ printUsage();
+ System.exit(1);
+ }
+
+ IniFile aIniFile = new IniFile(aFile);
+ int nPages = aIniFile.getIntValue("global", "pages", 0);
+ if (nPages < 1)
+ {
+ System.out.println("No pages found.");
+ }
+ m_nMaxPages = nPages;
+ m_nCurrentPage = 1;
+ fillImageIcons();
+ }
+
+ private void fillImageIcons()
+ {
+ File aFile = new File(m_sInifile);
+ IniFile aIniFile = new IniFile(aFile);
+ String sSection = "page" + m_nCurrentPage;
+ String[] files = new String[3];
+ files[0] = aIniFile.getValue(sSection, "newgfx"); // current created picture
+ files[1] = aIniFile.getValue(sSection, "oldgfx"); // reference picture
+ files[2] = aIniFile.getValue(sSection, "diffgfx");
+ fillImageIcons(files);
+ }
+
+ /**
+ * Give 3 file names
+ * @param args
+ */
+ private void fillImageIcons(String args[])
+ {
+ boolean bLoadImages = false;
+ m_aImageIcon = new ImageIcon[3];
+ for (int i=0;i<3;i++)
+ {
+ if (args.length > i && args[i] != null)
+ {
+ File aFile = new File(args[i]);
+ if (aFile.exists())
+ {
+ // TODO: Load images
+ // Image aImage = new BufferedImage(100,100, BufferedImage.TYPE_INT_RGB);
+ // aImage.
+ m_aImageIcon[i] = new ImageIcon(args[i]);
+ if (m_aImageIcon[i] != null)
+ {
+ bLoadImages = true;
+ }
+ }
+ else
+ {
+ System.out.println("Can't read file: " + aFile.getName());
+ bLoadImages = false;
+ }
+ }
+ else
+ {
+ System.out.println("There is no #" + (i + 1) + " image given.");
+ bLoadImages = false;
+ }
+ }
+// if (!bLoadImages)
+// {
+// printUsage();
+// System.exit(1);
+// }
+
+
+
+ // TODO: Set images.
+
+ // formComponentResized(null);
+ }
+
+ private void printUsage()
+ {
+ System.out.println("Usage:");
+ System.out.println(" ConvwatchGUI <pic1> <pic2> <pic3>");
+ System.out.println("or ConvwatchGUI <inifile>");
+ }
+
+// private int m_nOldWidth;
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanelOriginal = new javax.swing.JPanel();
+ jLabelOriginalImage = new javax.swing.JLabel();
+ jPanelReference = new javax.swing.JPanel();
+ jLabelReferenceImage = new javax.swing.JLabel();
+ jPanelDifference = new javax.swing.JPanel();
+ jLabelDifferenceImage = new javax.swing.JLabel();
+ jPanel4 = new javax.swing.JPanel();
+ jButton1 = new javax.swing.JButton();
+ jButton2 = new javax.swing.JButton();
+ jButton3 = new javax.swing.JButton();
+ jLabelCurrentPage = new javax.swing.JLabel();
+ jPanel5 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ jLabelDocumentName = new javax.swing.JLabel();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ addComponentListener(new java.awt.event.ComponentAdapter() {
+ public void componentResized(java.awt.event.ComponentEvent evt) {
+ formComponentResized(evt);
+ }
+ });
+ addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+ public void propertyChange(java.beans.PropertyChangeEvent evt) {
+ formPropertyChange(evt);
+ }
+ });
+
+ jPanelOriginal.setBorder(javax.swing.BorderFactory.createTitledBorder("Picture"));
+
+ javax.swing.GroupLayout jPanelOriginalLayout = new javax.swing.GroupLayout(jPanelOriginal);
+ jPanelOriginal.setLayout(jPanelOriginalLayout);
+ jPanelOriginalLayout.setHorizontalGroup(
+ jPanelOriginalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelOriginalLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelOriginalImage, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelOriginalLayout.setVerticalGroup(
+ jPanelOriginalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelOriginalLayout.createSequentialGroup()
+ .addComponent(jLabelOriginalImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanelReference.setBorder(javax.swing.BorderFactory.createTitledBorder("Reference Picture"));
+
+ javax.swing.GroupLayout jPanelReferenceLayout = new javax.swing.GroupLayout(jPanelReference);
+ jPanelReference.setLayout(jPanelReferenceLayout);
+ jPanelReferenceLayout.setHorizontalGroup(
+ jPanelReferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelReferenceLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelReferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 299, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelReferenceLayout.setVerticalGroup(
+ jPanelReferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelReferenceLayout.createSequentialGroup()
+ .addComponent(jLabelReferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanelDifference.setBorder(javax.swing.BorderFactory.createTitledBorder("Difference"));
+
+ jLabelDifferenceImage.setName("DifferenceImage"); // NOI18N
+
+ javax.swing.GroupLayout jPanelDifferenceLayout = new javax.swing.GroupLayout(jPanelDifference);
+ jPanelDifference.setLayout(jPanelDifferenceLayout);
+ jPanelDifferenceLayout.setHorizontalGroup(
+ jPanelDifferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelDifferenceLayout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabelDifferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+ jPanelDifferenceLayout.setVerticalGroup(
+ jPanelDifferenceLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanelDifferenceLayout.createSequentialGroup()
+ .addComponent(jLabelDifferenceImage, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE)
+ .addContainerGap())
+ );
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Action"));
+
+ jButton1.setText("Close");
+ jButton1.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton1ActionPerformed(evt);
+ }
+ });
+
+ jButton2.setLabel("prev page");
+ jButton2.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton2ActionPerformed(evt);
+ }
+ });
+
+ jButton3.setLabel("next page");
+ jButton3.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jButton3ActionPerformed(evt);
+ }
+ });
+
+ jLabelCurrentPage.setText("Current page: 1");
+
+ javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
+ jPanel4.setLayout(jPanel4Layout);
+ jPanel4Layout.setHorizontalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jButton2)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jButton3)
+ .addGap(18, 18, 18)
+ .addComponent(jLabelCurrentPage, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 614, Short.MAX_VALUE)
+ .addComponent(jButton1)
+ .addContainerGap())
+ );
+ jPanel4Layout.setVerticalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jButton1)
+ .addComponent(jButton2)
+ .addComponent(jButton3)
+ .addComponent(jLabelCurrentPage))
+ .addContainerGap())
+ );
+
+ jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Information"));
+
+ jLabel1.setText("<html>Here you see a graphical compare by pictures created with a current running office, a stored reference picture and the difference between those both pictures created by ImageMagicks 'composite'.\n</html>"); // NOI18N
+
+ jLabelDocumentName.setText("jLabel2");
+
+ javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
+ jPanel5.setLayout(jPanel5Layout);
+ jPanel5Layout.setHorizontalGroup(
+ jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 972, Short.MAX_VALUE)
+ .addComponent(jLabelDocumentName, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 972, Short.MAX_VALUE))
+ .addContainerGap())
+ );
+ jPanel5Layout.setVerticalGroup(
+ jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel5Layout.createSequentialGroup()
+ .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 50, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabelDocumentName, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jPanel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jPanelOriginal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanelReference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanelDifference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
+ .addContainerGap())
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(jPanelReference, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanelOriginal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanelDifference, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
+ );
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private boolean bAdd = false;
+
+ private void formComponentResized(java.awt.event.ComponentEvent evt)//GEN-FIRST:event_formComponentResized
+ {//GEN-HEADEREND:event_formComponentResized
+ // TODO add your handling code here:
+ // we need to set icons to null
+ // if we don't do this, icons can only grow, but not shrink :-(
+
+ initialiseImages();
+ }
+ private void initialiseImages()
+ {
+ if (jLabelOriginalImage.getIcon() != null)
+ {
+ jLabelOriginalImage.setIcon(null);
+ jLabelReferenceImage.setIcon(null);
+ jLabelDifferenceImage.setIcon(null);
+
+ int w = getWidth();
+ int h = getHeight();
+ if (bAdd)
+ {
+ this.setSize(w, h + 1);
+ bAdd = false;
+ }
+ else
+ {
+ this.setSize(w, h - 1);
+ bAdd = true;
+ }
+ }
+ else
+ {
+ new ResizeImage(jLabelOriginalImage, m_aImageIcon[0]).execute();
+ new ResizeImage(jLabelReferenceImage, m_aImageIcon[1]).execute();
+ new ResizeImage(jLabelDifferenceImage, m_aImageIcon[2]).execute();
+ }
+ int dummy=0;
+ }//GEN-LAST:event_formComponentResized
+
+ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed
+ {//GEN-HEADEREND:event_jButton1ActionPerformed
+ // TODO add your handling code here:
+ System.exit(1);
+ }//GEN-LAST:event_jButton1ActionPerformed
+
+ private void formPropertyChange(java.beans.PropertyChangeEvent evt)//GEN-FIRST:event_formPropertyChange
+ {//GEN-HEADEREND:event_formPropertyChange
+ // TODO add your handling code here:
+ int dummy = 0;
+ }//GEN-LAST:event_formPropertyChange
+
+ private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton2ActionPerformed
+ {//GEN-HEADEREND:event_jButton2ActionPerformed
+ // TODO add your handling code here:
+ int nOldPage = m_nCurrentPage;
+ if (m_nCurrentPage > 1)
+ {
+ m_nCurrentPage--;
+ }
+ if (nOldPage != m_nCurrentPage)
+ {
+ jLabelCurrentPage.setText("Current page: " + m_nCurrentPage);
+ fillImageIcons();
+ initialiseImages();
+ }
+ }//GEN-LAST:event_jButton2ActionPerformed
+
+ private void jButton3ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton3ActionPerformed
+ {//GEN-HEADEREND:event_jButton3ActionPerformed
+ // TODO add your handling code here:
+ int nOldPage = m_nCurrentPage;
+ if (m_nCurrentPage < m_nMaxPages)
+ {
+ m_nCurrentPage++;
+ }
+ if (nOldPage != m_nCurrentPage)
+ {
+ jLabelCurrentPage.setText("Current page: " + m_nCurrentPage);
+ fillImageIcons();
+ initialiseImages();
+ }
+ }//GEN-LAST:event_jButton3ActionPerformed
+
+ class ResizeImage extends SwingWorker <ImageIcon, Object>
+ {
+ private JLabel m_jLabel;
+ private ImageIcon m_aImageIcon;
+ private int w;
+ private int h;
+
+ public ResizeImage(JLabel _aLabel, ImageIcon _aImageIcon)
+ {
+ m_jLabel = _aLabel;
+ m_aImageIcon = _aImageIcon;
+ w = _aLabel.getWidth();
+ h = _aLabel.getHeight();
+ }
+
+ // dont access here anything to "Event Swing Thread"
+ @Override
+ public ImageIcon doInBackground()
+ {
+ Image aImage = m_aImageIcon.getImage().getScaledInstance(w, h, Image.SCALE_AREA_AVERAGING); // SCALE_SMOOTH
+ final ImageIcon aIcon = new ImageIcon(aImage);
+ // m_jLabel.setIcon(aIcon);
+ return aIcon;
+ }
+
+ @Override
+ protected void done()
+ {
+ try
+ {
+ m_jLabel.setIcon(get());
+ }
+ catch (Exception e)
+ {}
+ }
+
+ }
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(final String args[])
+ {
+
+ // Start GUI
+
+ java.awt.EventQueue.invokeLater(new Runnable()
+ {
+
+ public void run()
+ {
+ ConvwatchGUI aGUI = new ConvwatchGUI(args);
+ aGUI.setTitle("Graphical Compare");
+ aGUI.setPreferredSize(new Dimension(1024, 768));
+
+ aGUI.setVisible(true);
+ }
+ });
+ }
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton jButton1;
+ private javax.swing.JButton jButton2;
+ private javax.swing.JButton jButton3;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabelCurrentPage;
+ private javax.swing.JLabel jLabelDifferenceImage;
+ private javax.swing.JLabel jLabelDocumentName;
+ private javax.swing.JLabel jLabelOriginalImage;
+ private javax.swing.JLabel jLabelReferenceImage;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JPanel jPanel5;
+ private javax.swing.JPanel jPanelDifference;
+ private javax.swing.JPanel jPanelOriginal;
+ private javax.swing.JPanel jPanelReference;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java b/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java
new file mode 100644
index 000000000000..20cede5b1c33
--- /dev/null
+++ b/testgraphical/ui/java/ConvwatchGUIProject/src/IniFile.java
@@ -0,0 +1,718 @@
+/*************************************************************************
+ *
+ * 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.
+ *
+ ************************************************************************/
+
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
+import java.util.Enumeration;
+
+
+/**
+ * Simple implementation of a inifile manager
+ */
+class GlobalLogWriter
+{
+ public static void println(String _s)
+ {
+ System.out.println(_s);
+ }
+}
+
+/**
+ Helper class to give a simple API to read/write windows like ini files
+*/
+
+/* public */ // is only need, if we need this class outside package convwatch
+public class IniFile implements Enumeration
+{
+
+ /**
+ * internal representation of the ini file content.
+ * Problem, if ini file changed why other write something difference, we don't realise this.
+ */
+ private String m_sFilename;
+ // private File m_aFile;
+ private ArrayList<String> m_aList;
+ boolean m_bListContainUnsavedChanges = false;
+ private int m_aEnumerationPos = 0;
+
+ /**
+ open a ini file by it's name
+ @param _sFilename string a filename, if the file doesn't exist, a new empty ini file will create.
+ write back to disk only if there are really changes.
+ */
+ public IniFile(String _sFilename)
+ {
+ m_sFilename = _sFilename;
+ // m_aFile = new File(_sFilename);
+ m_aList = loadLines();
+ m_aEnumerationPos = findNextSection(0);
+ }
+
+ /**
+ open a ini file by it's name
+ @param _aFile a java.io.File object, if the file doesn't exist, a new empty ini file will create.
+ write back to disk only if there are really changes.
+ */
+ public IniFile(File _aFile)
+ {
+ m_sFilename = _aFile.getAbsolutePath();
+ m_aList = loadLines();
+ m_aEnumerationPos = findNextSection(0);
+ }
+
+ public void insertFirstComment(String[] _aList)
+ {
+ if (m_aList.size() == 0)
+ {
+ // can only insert if there is nothing else already in the ini file
+ for (int i = 0; i < _aList.length; i++)
+ {
+ m_aList.add(_aList[i]);
+ }
+ }
+ }
+
+ private ArrayList<String> loadLines()
+ {
+ ArrayList<String> aLines = new ArrayList<String>();
+ File aFile = new File(m_sFilename);
+ if (!aFile.exists())
+ {
+ // GlobalLogWriter.println("couldn't find file '" + m_sFilename + "', will be created.");
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ // m_bListContainUnsavedChanges = false;
+ return aLines;
+ }
+ RandomAccessFile aReader = null;
+ // BufferedReader aReader;
+ try
+ {
+ aReader = new RandomAccessFile(aFile, "r");
+ String aLine = "";
+ while (aLine != null)
+ {
+ aLine = aReader.readLine();
+ if (aLine != null && aLine.length() > 0)
+ {
+ aLines.add(aLine);
+ }
+ }
+ }
+ catch (java.io.FileNotFoundException fne)
+ {
+ GlobalLogWriter.println("couldn't open file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Exception occurs while reading from file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ try
+ {
+ aReader.close();
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Couldn't close file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ return aLines;
+ }
+
+ /**
+ * @return true, if the ini file contain some readable data
+ */
+ public boolean is()
+ {
+ return m_aList.size() > 1 ? true : false;
+ }
+
+ /**
+ * Check if a given Section and Key exists in the ini file
+ * @param _sSectionName
+ * @param _sKey
+ * @return true if the given Section, Key exists, now you can get the value
+ */
+ public boolean hasValue(String _sSectionName, String _sKey)
+ {
+ int n = findKey(_sSectionName, _sKey);
+ if (n > 0)
+ {
+ return true;
+ }
+ return false;
+ }
+ // -----------------------------------------------------------------------------
+
+ private boolean isRemark(String _sLine)
+ {
+ if (((_sLine.length() < 2)) ||
+ (_sLine.startsWith("#")) ||
+ (_sLine.startsWith(";")))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ private String getItem(int i)
+ {
+ return m_aList.get(i);
+ }
+
+ private String buildSectionName(String _sSectionName)
+ {
+ String sFindSection = "[" + _sSectionName + "]";
+ return sFindSection;
+ }
+
+ private String sectionToString(String _sSectionName)
+ {
+ String sKeyName = _sSectionName;
+ if (sKeyName.startsWith("[") &&
+ sKeyName.endsWith("]"))
+ {
+ sKeyName = sKeyName.substring(1, sKeyName.length() - 1);
+ }
+ return sKeyName;
+ }
+
+ private String toLowerIfNeed(String _sName)
+ {
+ return _sName.toLowerCase();
+ }
+
+ // return the number where this section starts
+ private int findSection(String _sSection)
+ {
+ String sFindSection = toLowerIfNeed(buildSectionName(_sSection));
+ // ----------- find _sSection ---------------
+ int i;
+ for (i = 0; i < m_aList.size(); i++)
+ {
+ String sLine = toLowerIfNeed(getItem(i).trim());
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+ if (sFindSection.equals("[]"))
+ {
+ // special case, empty Section.
+ return i - 1;
+ }
+ if (sLine.startsWith(sFindSection))
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Checks if a given section exists in the ini file
+ * @param _sSection
+ * @return true if the given _sSection was found
+ */
+ public boolean hasSection(String _sSection)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ // return the line number, where the key is found.
+ private int findKey(String _sSection, String _sKey)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ // Section not found, therefore the value can't exist
+ return -1;
+ }
+ return findKeyFromKnownSection(i, _sKey);
+ }
+
+ // i must be the index in the list, where the well known section starts
+ private int findKeyFromKnownSection(int _nSectionIndex, String _sKey)
+ {
+ _sKey = toLowerIfNeed(_sKey);
+ for (int j = _nSectionIndex + 1; j < m_aList.size(); j++)
+ {
+ String sLine = getItem(j).trim();
+
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+ if (sLine.startsWith("[") /* && sLine.endsWith("]") */)
+ {
+ // TODO: due to the fact we would like to insert an empty line before new sections
+ // TODO: we should check if we are in an empty line and if, go back one line.
+
+ // found end.
+ break;
+ }
+
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = toLowerIfNeed(sLine.substring(0, nEqual).trim());
+ if (sKey.equals(_sKey))
+ {
+ return j;
+ }
+ }
+ }
+ return -1;
+ }
+
+ // i must be the index in the list, where the well known section starts
+ private int findLastKnownKeyIndex(int _nSectionIndex, String _sKey)
+ {
+ _sKey = toLowerIfNeed(_sKey);
+ int i = _nSectionIndex + 1;
+ for (int j = i; j < m_aList.size(); j++)
+ {
+ String sLine = getItem(j).trim();
+
+ if (isRemark(sLine))
+ {
+ continue;
+ }
+
+ if (sLine.startsWith("[") /* && sLine.endsWith("]") */)
+ {
+ // found end.
+ return j;
+ }
+
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = toLowerIfNeed(sLine.substring(0, nEqual).trim());
+ if (sKey.equals(_sKey))
+ {
+ return j;
+ }
+ }
+ }
+ return i;
+ }
+
+ private String getValue(int _nIndex)
+ {
+ String sLine = getItem(_nIndex).trim();
+ if (isRemark(sLine))
+ {
+ return "";
+ }
+ int nEqual = sLine.indexOf("=");
+ if (nEqual >= 0)
+ {
+ String sKey = sLine.substring(0, nEqual).trim();
+ String sValue = sLine.substring(nEqual + 1).trim();
+ return sValue;
+ }
+ return "";
+ }
+
+ /**
+ @param _sSection string
+ @param _sKey string
+ @return the value found in the inifile which is given by the section and key parameter
+ */
+ // private int m_nCurrentPosition;
+ // private String m_sOldKey;
+ public String getValue(String _sSection, String _sKey)
+ {
+ String sValue = "";
+ int m_nCurrentPosition = findKey(_sSection, _sKey);
+ if (m_nCurrentPosition == -1)
+ {
+ // Section not found, therefore the value can't exist
+ return "";
+ }
+
+ // m_sOldKey = _sKey;
+ sValue = getValue(m_nCurrentPosition);
+
+ return sValue;
+ }
+
+// private String getNextValue()
+// {
+// if (m_nCurrentPosition >= 0)
+// {
+// ++m_nCurrentPosition;
+// String sValue = getValue(m_nCurrentPosition);
+// return sValue;
+// }
+// return "";
+// }
+ /**
+ * Returns the value at Section, Key converted to an integer
+ * Check with hasValue(Section, Key) to check before you get into trouble.
+ * @param _sSection
+ * @param _sKey
+ * @param _nDefault if there is a problem, key not found... this value will return
+ * @return the value as integer if possible to convert, if not return default value.
+ */
+ public int getIntValue(String _sSection, String _sKey, int _nDefault)
+ {
+ String sValue = getValue(_sSection, _sKey);
+ int nValue = _nDefault;
+ if (sValue.length() > 0)
+ {
+ try
+ {
+ nValue = Integer.valueOf(sValue).intValue();
+ }
+ catch (java.lang.NumberFormatException e)
+ {
+ GlobalLogWriter.println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
+ }
+ }
+ return nValue;
+ }
+
+/**
+ * close a open inifile.
+ * If there are changes, all changes will store back to disk.
+ */
+ public void close()
+ {
+ store();
+ }
+
+ /**
+ write back the ini file to the disk, only if there exist changes
+ * @deprecated use close() instead!
+ */
+
+ // TODO: make private
+ private void store()
+ {
+ if (m_bListContainUnsavedChanges == false)
+ {
+ // nothing has changed, so no need to store
+ return;
+ }
+
+ File aFile = new File(m_sFilename);
+ if (aFile.exists())
+ {
+ // System.out.println("couldn't find file " + m_sFilename);
+ // TODO: little bit unsafe here, first rename, after write is complete, delete the old.
+ aFile.delete();
+ if (aFile.exists())
+ {
+ GlobalLogWriter.println("Couldn't delete the file " + m_sFilename);
+ return;
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "Couldn't delete the file " + m_sFilename);
+ }
+ }
+ // if (! aFile.canWrite())
+ // {
+ // System.out.println("Couldn't write to file " + m_sFilename);
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, "");
+ // }
+ try
+ {
+ RandomAccessFile aWriter = new RandomAccessFile(aFile, "rw");
+ for (int i = 0; i < m_aList.size(); i++)
+ {
+ String sLine = getItem(i);
+ if (sLine.startsWith("["))
+ {
+ // write an extra empty line before next section.
+ aWriter.writeByte((int) '\n');
+ }
+ aWriter.writeBytes(sLine);
+ aWriter.writeByte((int) '\n');
+ }
+ aWriter.close();
+ }
+ catch (java.io.FileNotFoundException fne)
+ {
+ GlobalLogWriter.println("couldn't open file for writing " + m_sFilename);
+ GlobalLogWriter.println("Message: " + fne.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
+ }
+ catch (java.io.IOException ie)
+ {
+ GlobalLogWriter.println("Exception occurs while writing to file " + m_sFilename);
+ GlobalLogWriter.println("Message: " + ie.getMessage());
+ // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
+ }
+ }
+
+ public void insertValue(String _sSection, String _sKey, int _nValue)
+ {
+ insertValue(_sSection, _sKey, String.valueOf(_nValue));
+ }
+
+ public void insertValue(String _sSection, String _sKey, long _nValue)
+ {
+ insertValue(_sSection, _sKey, String.valueOf(_nValue));
+ }
+
+ /**
+ insert a value
+ there are 3 cases
+ 1. section doesn't exist, goto end and insert a new section, insert a new key value pair
+ 2. section exist but key not, search section, search key, if key is -1 get last known key position and insert new key value pair there
+ 3. section exist and key exist, remove the old key and insert the key value pair at the same position
+ * @param _sSection
+ * @param _sKey
+ * @param _sValue
+ */
+ public void insertValue(String _sSection, String _sKey, String _sValue)
+ {
+ int i = findSection(_sSection);
+ if (i == -1)
+ {
+ // case 1: section doesn't exist
+ String sFindSection = buildSectionName(_sSection);
+
+ // TODO: before create a new Section, insert a empty line
+ m_aList.add(sFindSection);
+ if (_sKey.length() > 0)
+ {
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.add(sKeyValuePair);
+ }
+ m_bListContainUnsavedChanges = true;
+ return;
+ }
+ int j = findKeyFromKnownSection(i, _sKey);
+ if (j == -1)
+ {
+ // case 2: section exist, but not the key
+ j = findLastKnownKeyIndex(i, _sKey);
+ if (_sKey.length() > 0)
+ {
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.add(j, sKeyValuePair);
+ m_bListContainUnsavedChanges = true;
+ }
+ return;
+ }
+ else
+ {
+ // case 3: section exist, and also the key
+ String sKeyValuePair = _sKey + "=" + _sValue;
+ m_aList.set(j, sKeyValuePair);
+ m_bListContainUnsavedChanges = true;
+ }
+ }
+ // -----------------------------------------------------------------------------
+ // String replaceEvaluatedValue(String _sSection, String _sValue)
+ // {
+ // String sValue = _sValue;
+ // int nIndex = 0;
+ // while (( nIndex = sValue.indexOf("$(", nIndex)) >= 0)
+ // {
+ // int nNextIndex = sValue.indexOf(")", nIndex);
+ // if (nNextIndex >= 0)
+ // {
+ // String sKey = sValue.substring(nIndex + 2, nNextIndex);
+ // String sNewValue = getValue(_sSection, sKey);
+ // if (sNewValue != null && sNewValue.length() > 0)
+ // {
+ // String sRegexpKey = "\\$\\(" + sKey + "\\)";
+ // sValue = sValue.replaceAll(sRegexpKey, sNewValue);
+ // }
+ // nIndex = nNextIndex;
+ // }
+ // else
+ // {
+ // nIndex += 2;
+ // }
+ // }
+ // return sValue;
+ // }
+ // -----------------------------------------------------------------------------
+
+ // public String getLocalEvaluatedValue(String _sSection, String _sKey)
+ // {
+ // String sValue = getValue(_sSection, _sKey);
+ // sValue = replaceEvaluatedValue(_sSection, sValue);
+ // return sValue;
+ // }
+
+ // -----------------------------------------------------------------------------
+
+ // this is a special behaviour.
+ // public String getGlobalLocalEvaluatedValue(String _sSection, String _sKey)
+ // {
+ // String sGlobalValue = getKey("global", _sKey);
+ // String sLocalValue = getKey(_sSection, _sKey);
+ // if (sLocalValue.length() == 0)
+ // {
+ // sGlobalValue = replaceEvaluatedKey(_sSection, sGlobalValue);
+ // sGlobalValue = replaceEvaluatedKey("global", sGlobalValue);
+ // return sGlobalValue;
+ // }
+ // sLocalValue = replaceEvaluatedKey(_sSection, sLocalValue);
+ // sLocalValue = replaceEvaluatedKey("global", sLocalValue);
+ //
+ // return sLocalValue;
+ // }
+ public void removeSection(String _sSectionToRemove)
+ {
+ // first, search for the name
+ int i = findSection(_sSectionToRemove);
+ if (i == -1)
+ {
+ // Section to remove not found, do nothing.
+ return;
+ }
+ // second, find the next section
+ int j = findNextSection(i + 1);
+ if (j == -1)
+ {
+ // if we are at the end, use size() as second section
+ j = m_aList.size();
+ }
+ // remove all between first and second section
+ for (int k = i; k < j; k++)
+ {
+ m_aList.remove(i);
+ }
+ // mark the list as changed
+ m_bListContainUnsavedChanges = true;
+ }
+
+ /**
+ * some tests for this class
+ */
+// public static void main(String[] args)
+// {
+// String sTempFile = System.getProperty("java.io.tmpdir");
+// sTempFile += "inifile";
+//
+//
+// IniFile aIniFile = new IniFile(sTempFile);
+// String sValue = aIniFile.getValue("Section", "Key");
+// // insert a new value to a already exist section
+// aIniFile.insertValue("Section", "Key2", "a new value in a existing section");
+// // replace a value
+// aIniFile.insertValue("Section", "Key", "replaced value");
+// // create a new value
+// aIniFile.insertValue("New Section", "Key", "a new key value pair");
+// aIniFile.insertValue("New Section", "Key2", "a new second key value pair");
+//
+// String sValue2 = aIniFile.getValue("Section2", "Key");
+//
+// aIniFile.removeSection("Section");
+// aIniFile.removeSection("New Section");
+//
+// aIniFile.close();
+// }
+
+ /**
+ * Enumeration Interface
+ * @return true, if there are more Key values
+ */
+ public boolean hasMoreElements()
+ {
+ if (m_aEnumerationPos >= 0 &&
+ m_aEnumerationPos < m_aList.size())
+ {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Find the next line, which starts with '['
+ * @param i start position
+ * @return the line where '[' found or -1
+ */
+ private int findNextSection(int i)
+ {
+ if (i >= 0)
+ {
+ while (i < m_aList.size())
+ {
+ String sLine = m_aList.get(i);
+ if (sLine.startsWith("["))
+ {
+ return i;
+ }
+ i++;
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Enumeration Interface
+ * @return a key without the enveloped '[' ']'
+ */
+ public Object nextElement()
+ {
+ int nLineWithSection = findNextSection(m_aEnumerationPos);
+ if (nLineWithSection != -1)
+ {
+ String sSection = m_aList.get(nLineWithSection);
+ m_aEnumerationPos = findNextSection(nLineWithSection + 1);
+ sSection = sectionToString(sSection);
+ return sSection;
+ }
+ else
+ {
+ m_aEnumerationPos = m_aList.size();
+ }
+ return null;
+ }
+
+ /**
+ * Helper to count the occurence of Sections
+ * @return returns the count of '^['.*']$' Elements
+ */
+ public int getElementCount()
+ {
+ int nCount = 0;
+ int nPosition = 0;
+ while ((nPosition = findNextSection(nPosition)) != -1)
+ {
+ nCount++;
+ nPosition++;
+ }
+ return nCount;
+ }
+}
+
diff --git a/testgraphical/ui/java/makefile.mk b/testgraphical/ui/java/makefile.mk
new file mode 100644
index 000000000000..134787a17a08
--- /dev/null
+++ b/testgraphical/ui/java/makefile.mk
@@ -0,0 +1,53 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=gfxcmp_ui_java
+TARGET=notargetyet
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(SHOW)" == ""
+nothing .PHONY:
+
+.ELSE
+
+# PERLDEBUG=-d:ptkdb
+ALLTAR:
+ $(COPY) ConvwatchGUIProject$/dist/ConvwatchGUIProject.jar $(CLASSDIR)
+
+.END
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
diff --git a/testgraphical/util/makefile.pmk b/testgraphical/util/makefile.pmk
new file mode 100644
index 000000000000..98b94dca0779
--- /dev/null
+++ b/testgraphical/util/makefile.pmk
@@ -0,0 +1,34 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+# this file will include by other makefiles only
+
+demo: ALLTAR
+selftest: ALLTAR
+failtest: ALLTAR
+
+clean: clean_all